Log in

View Full Version : AvsPmod 2.5.1


Pages : 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Yellow_
9th February 2011, 00:50
ok, thanks I'll look into it a bit more.

poisondeathray
9th February 2011, 01:23
yes, gavino says it uses "the DrawDib functions (part of VfW)" for the renderer

http://forum.doom9.org/showthread.php?p=1458645

Zarxrax
12th February 2011, 23:58
Thanks to the hard work of Angel_Su, we finally have a new version of AvsPmod!

Version 2.0.6:
(All fixes and additions by Angel_Su)
- Updated the code base to be compatible with Python 2.7 and wxPython 2.8
- rework the code causing customized filter definitions lost
- add a new 'using Dissolve' option for trim dialog.
- shortcuts dialog is resizable, no longer displays an error
- fix 'tab' character having the wrong width when using monospaced font
- build process has been simplified
- many other minor bugfixes and changes
- Several user function definitions contributed by RiCON

Download link at first post.

RiCON
13th February 2011, 04:56
Oops, missed the release. I'll post an update to the user functions tomorrow or Monday.

matfra
15th February 2011, 16:10
Thank you Zarxrax.
I use AVSP. Its awesome. I would like you to add a option to right click on the error message and copy it. So its gonna be easier to search for help in google. I always have to retype the whole error. Also, It would be nice to have a FTP where people could host there function definitions. I create a lot of slide bars for plugins. I would like to share it with people and download some other too.
Good job,

bidmead
16th February 2011, 18:25
I've been embroiled in hardware troubles and some other less interesting problems for the past couple of weeks, so sorry not to have stepped in to cheer the latest release. I haven't got to grips with it fully yet -- in particular, haven't been able to check the changes to ../src -- but a big thanks for incorporating the Dissolve option in the Trim Editor.

You guys are doing a great job continuing the work of qwerpoi. And, incidentally, the project is a superb advert for Python. For those interested in the language, note that there's a remarkably thorough course on the language on YouTube's MIT channel. It's actually a course about computer programming in general, but uses Python as the basis throughout.

--
Chris

ANGEL_SU
17th February 2011, 03:39
... I would like you to add a option to right click on the error message and copy it. So its gonna be easier to search for help in google...
Do you mean the Avisynth's error message shown on the preview windows?

Zarxrax
17th February 2011, 16:03
Thank you Zarxrax.
...
It would be nice to have a FTP where people could host there function definitions. I create a lot of slide bars for plugins. I would like to share it with people and download some other too.
Good job,

Thank Angel_Su :)

About the function definitions, I think that manually supplying definitions for every function is very clunky.
What I would really like to see happen, is perhaps a function under the 'tools' menu that scans your plugins folder for functions, and automatically creates the definitions for any functions that you have. I think this would be the best way of doing it.

If Angel_su doesnt feel up to working on that, maybe I can give it a shot one of these days.

Gavino
17th February 2011, 17:12
About the function definitions, I think that manually supplying definitions for every function is very clunky.
What I would really like to see happen, is perhaps a function under the 'tools' menu that scans your plugins folder for functions, and automatically creates the definitions for any functions that you have. I think this would be the best way of doing it.
It's already there. ;)

For functions from plugins in Avisynth's plugins folder (and hence loaded automatically), AvsP will find the information it requires (parameter names and types) to give you the floating tooltips. It cannot give sliders as it does not know the parameter defaults or their possible ranges. That information has to be supplied manually as it's not available from the plugin.

Zarxrax
17th February 2011, 18:48
Gavino, I'm talking about from avisynth functions (avs or avsi files) rather than plugins. These don't currently get recognized, but it shouldn't be difficult because all the needed information is right there in plain text, usually even with default values.

Floatingshed
23rd February 2011, 01:44
I find that I'm using Freezeframe() a lot to mask bad frames. Is it possible to configure AvsPmod shortcuts to insert the frame numbers?
i.e. if I press (say) F1 the current frame will be inserted in a new Freezeframe statement as the source frame, etc.
Thanks.

Chikuzen
23rd February 2011, 15:15
I find that I'm using Freezeframe() a lot to mask bad frames. Is it possible to configure AvsPmod shortcuts to insert the frame numbers?
i.e. if I press (say) F1 the current frame will be inserted in a new Freezeframe statement as the source frame, etc.
Thanks.

Insert Frame number

#Insert current frame number.py
currentframe = avsp.GetFrameNumber()
avsp.InsertText("%i" % currentframe, pos = None)

Save this script into macros folder as "Insert frame number.py" and allocate shortcut key.


#Bookmarks to FreezeFrame.py
bmlist = avsp.GetBookmarkList()
bmlist.sort()
if len(bmlist) % 2 == 0:
for i in xrange(0, len(bmlist), 2):
avsp.InsertText("\nFreezeFrame(%i, %i, %i)" % (bmlist[i], bmlist[i + 1], bmlist[i]))
avsp.ShowVideoFrame(forcerefresh = True)
else:
avsp.MsgBox("The number of bookmarks is odd.", title = 'Error')

This macro will set FreezeFrame statement between two bookmarks.
e.g.
If you put bookmarks on 100, 200, 300, 400, 500 and 600 frame, the following lines will be inserted to the last.
FreezeFrame(100, 200, 100)
FreezeFrame(300, 400, 300)
FreezeFrame(500, 600, 500)

Floatingshed
23rd February 2011, 19:41
Great, thanks.
Can't wait to get home to try it out.

RiCON
24th February 2011, 04:25
F11 already inserts the current frame number, iirc.

Floatingshed
24th February 2011, 14:40
This works very nicely. Except it throws this error...
MacroShowVideoFrame got an unexpected keyword argument 'Forcerefresh'
Any thoughts?

Edit: Fixed it, just removed spaces in Forcerefresh = True.

Floatingshed
25th February 2011, 11:57
This is my first use of macros and it has got me rather excited about possibilities. My brain doesn't seem to be able to use python very well so help would be appreciated...

I often need to repair individual frames in photoshop. Is it possible to create a macro to copy the frame out of the script and then put it back in after repair. i.e. automatically create the necessary Trim statements to re-insert? I would usually do it manually like this:



a=Trim(0, 4606)
c=Trim(4608, 71555)
b=ImageReader("\Frame4607.bmp",fps=25,end=0).converttoyv12()
a++b++c

Zarxrax
26th February 2011, 20:55
Yes, it should be possible.
What you would need to do is have it create a file browser so you can select your edited file.
Then, assuming the filename contains the correct frame number, you could get the frame number out of the filename, and then use it to create the trim statements.

I don't have time to work on it for you though (but maybe later, if no one else gets around to it).
But if anyone is curious about learning some basic python for the macros, there is a really good tutorial series here: http://www.youtube.com/watch?v=4Mf0h3HphEA

ANGEL_SU
27th February 2011, 02:11
@Floatingshed

I wrote one here (http://www.mediafire.com/?a53nve9kh3iqcmd).
If you want to copy out bad frames, create bookmarks or use selections in trim dialog. Run this macro and type a filename such as 'a'. It will save images using 'a%06d.bmp' pattern. If 6 digits is not enough, explictly specify your pattern - ex. 'Frame%08d'.
Once those images repaired, run this macro again and pick up any one of them. It will find others and insert relative statements into the current script.

Floatingshed
27th February 2011, 13:02
Thanks, I'll have a play!

Floatingshed
28th February 2011, 00:17
Well, I haven't been entirely happy with the few solutions around so I wrote my first macro.
Until yesterday I had never done any programming of any kind so what follows is bound to be inelegant, clumsy and far from optimal but... it works!

As you scroll through a clip and spot frames that need manual repair run this macro (I have it on an 'f' key). It will save the frame to HDD and automatically open it in whatever photo package is set to open .bmp's. It will also put the necessary trim statements in the script to re-insert the repaired frame. If anyone wants to optimise it...


#Frame repair by Floatingshed (with bits pinched from all and sundry!)

#Determine length of video

g=avsp.GetVideoFramecount(index=None)
end=str(g)

cf = avsp.GetFrameNumber()
frame=str(cf)
beforeframe=str(cf-1)
afterframe=str(cf+1)


#Save image


avsp.SaveImage(filename='D:\\images\\'+frame, framenum=cf, index=None)


#Create Trim statements


avsp.InsertText('arq'+frame)
avsp.InsertText('=Getchannel(last,1,2)\n')
avsp.InsertText("cuta"+frame+"=Trim(0,", pos=-1, index=None)
avsp.InsertText(beforeframe)
avsp.InsertText(')\n')

avsp.InsertText("cutb"+frame+"=Trim(")
avsp.InsertText(afterframe)
avsp.InsertText(",",)
avsp.InsertText(end)
avsp.InsertText(')\n')


#Convert missing frame to video

unique="pic"+frame
avsp.InsertText(unique+"=ImageReader(\"D:\\images\\")
avsp.InsertText(frame)
avsp.InsertText('.bmp\",fps=25,end=0)\n')
avsp.InsertText('blk=Black(1)\n')
avsp.InsertText('rep'+frame)
avsp.InsertText('=Audiodub('+unique+',blk)')
avsp.InsertText('.ConvertToYV12()\n')

#Re-insert frame

avsp.InsertText('cuta'+frame)
avsp.InsertText('++rep'+frame)
avsp.InsertText('++cutb'+frame)
avsp.InsertText('\n')
avsp.InsertText('Audiodub(last,arq')
avsp.InsertText(frame+')\n')
avsp.InsertText('\n')

#Open image for editing

import os
os.system('D:\images\\'+frame+".bmp")


As you can see I really had no idea what I was doing, especially with line returns, but hey it was fun and kept me up very late.

Zarxrax
1st March 2011, 18:44
Very big new update for AvsPmod!
Once again all thanks to Angel_Su!

Changelog
Version 2.0.7:
- Function definitions can be imported from avs/avsi files.
- Many new bookmarking features including titles and matroska importer
- Error messages can be grabbed using OCR via a macro
- more formats for saving images
- YUV->RGB menu for selecting different color matrix for preview
- several small changes and bugfixes

The download can be found in the first post.

I'll now be explaining some of the new features.

Zarxrax
1st March 2011, 19:14
About the New Features

Import user functions from avs/avsi files
Previously, if you wanted function definitions for functions that are contained in avs/avsi files, you either had to manually define the functions, or we had to include the premade definitions with avspmod.
Now, this is all unnecessary, as AvspMod can parse the avs or avsi files and automatically create definitions from them!
You can access this feature from the menu under Options > AviSynth function definition, and then clicking "Import from files".
Simply select one or more avs/avsi files, and then a menu will pop up showing all of the functions that were detected within the files. Simply put a checkmark by the ones that you would like to import, and press OK.

YUV->RGB menu
This new menu that can be found either under the Video menu, or by right-clicking on the video itself, allows you to change the RGB conversion method that is used for the preview.
YUV videos have to be converted to RGB in order to be displayed. Traditionally, the RGB conversion was always done using Rec601, but many newer videos, especially HD videos, should be converted using Rec709 if their colors are to appear correctly.
By using this menu, you can select which type of conversion should be used for displaying the output.
Please note that this ONLY affects the preview image that is displayed in AvsPmod. It does NOT effect the actual output of the AVS script.

Titled Bookmarks
AvsPmod now supports titles for your bookmarks.
Bookmarks can be imported or exported using the available macros.
For setting bookmarks manually, you can use the Ctrl+B shortcut, or right-click on the timeline marker.
Once bookmarks are set, you can either assign names to them automatically or manually, using the options found under the menu Video > Titled Bookmarks.

AvsPmod has a concept called "historic titles". When bookmarks are deleted, whether on purpose or accidentally, if you later decide that you wanted to keep that bookmark, it might be a slight hassle to have to have to find the correct frame number, and then re-type the title for the bookmark. So in order to make the process of recovering deleted bookmarks easier, AvsPmod uses "historic titles". Any titled bookmark that is deleted is kept around as a "historic title", but is hidden, and they can be restored whenever you like.
To restore a single historic titled bookmark, simply move to near the frame where the bookmark existed, and press Ctrl+M.
Ctrl+M moves the nearest titled bookmark to the current location, but if there is a historic titled bookmark in that location, it will be restored.

Custom Autocomplete keywords
You can edit the autocomplete keywords list at:
Options > Program settings > Autocomplete > customize autocomplete keyword list
Here, you can uncheck any items that you dont want to appear in the autocomplete list. Also in the right-click menu, you can select 'exclude long names', which you may find useful.

Now for instance, maybe you frequently use the "AssumeFPS" keyword. Because there are also keywords for AssumeBFF and AssumeFieldBased, then you have to at least type "AssumeFP" every time! But, if you deselect those other two, then you can autocomplete after just typing "Assu".

But you may be thinking that you might want to access those other commands at some point. Thats not a problem, because we can use the "autocomplete all" shortcut to bring up the FULL autocomplete list! Just press Alt+space, or go to the menu item at Edit>Avisynth function>autocomplete all.

User Slider values rescaling
When creating a user slider in your script (Edit > Insert > Insert User Slider), we can rescale the values to something more convenient by adding some characters in the sliders label.

As an example, lets create a slider for the Tweak filter's "hue" setting.
Tweak([<"hue +", -180, 180, -180>])
Normally, this would create a slider that goes from -180 to 180. But by adding the + symbol after the label, it will rescale it to use values from 0 to 100.
If you instead use a minus symbol, like Tweak([<"hue -", -180, 180, -180>]) , it will be rescaled to use values from -100 to 100.
This may be useful for functions that use very strange values. I wouldn't actually recommend using it for something as simple as Tweak.

Dogway
1st March 2011, 21:34
Hello, I must say I love avspmod, it makes me work fast.
But still there are a few things that could make it near perfect.

-Zoom (It takes time, like if reloading the script)
-An option to recover the working project when a program crashes (somewhere, not rewriting my working projects, but maybe autosaving dummies somewhere)
-Improve status bar, I have some options enabled, like position, and color in some formats. When I check these the right part where Res,AR,FPS,Color Space are, become partly hidden.
-Option to go to a frame without rendering video (just when F5), when theres no current video rendered.
-And write a framenumber (in the box) and ability to F5 (no Enter as for now 2.0.5 I use)
-When I F5 and get an error, next time I F5 the frame rendered is another one.
-Separate function call window and function highlighting (There are some filters I may not want to call but want to see they are there working and may have options to edit)

That said Im going to update to 2.0.7 right now, but a last question, if I import the functions from .avs and .avsi will they rewrite my actual function definitions? (in case it matches the function name)

Zarxrax
1st March 2011, 22:03
Hello, I must say I love avspmod, it makes me work fast.
But still there are a few things that could make it near perfect.

-Zoom (It takes time, like if reloading the script)
-An option to recover the working project when a program crashes (somewhere, not rewriting my working projects, but maybe autosaving dummies somewhere)
-Improve status bar, I have some options enabled, like position, and color in some formats. When I check these the right part where Res,AR,FPS,Color Space are, become partly hidden.
-Option to go to a frame without rendering video (just when F5), when theres no current video rendered.
-And write a framenumber (in the box) and ability to F5 (no Enter as for now 2.0.5 I use)
-When I F5 and get an error, next time I F5 the frame rendered is another one.
-Separate function call window and function highlighting (There are some filters I may not want to call but want to see they are there working and may have options to edit)

That said Im going to update to 2.0.7 right now, but a last question, if I import the functions from .avs and .avsi will they rewrite my actual function definitions? (in case it matches the function name)

Thanks for you feedback. I'll try to address some of your issues:

- Yes, the zoom function does render the script again when you change the zoom level. I'm not sure if its possible to change this behavior
- The last session is automatically saved. If you launch avspmod without loading any script, the last session should be automatically restored.
- Regarding the status bar, are you working on a small screen or with a small sized window? I don't seem to have any issues when AvsPmod is maximized. If you are saying that there isn't enough room on your screen to display all of the information, how would you suggest improving this?
- Why do you want to seek to a frame but not preview that frame? I can't understand the purpose of this.
- Can you rephrase your last suggestion, so that I can understand it better?

Regarding importing function definitions, yes, I believe that existing definitions will be overwritten. However, when you import functions, it will popup a box asking you which functions you want to import. If you don't want to import certain functions, you can just deselect them.

Dogway
2nd March 2011, 02:20
-Yes, autoload last session can make it. I disabled it because it forced me to close tabs before quitting program if I wanted to start clean next time. (Pretty annoying)

-It doesnt matter if windowed or full (Im on 1080p screen res), there's room in the bar but the right part information autohides when I roll my mouse over the image. I use these parameters:
Frame %F / %FC - (%T)(%TT) %POS %HEX %CLR \t\t%Z %Wx%H (%AR) - %FR fps - %CS

-For example when I want to go to a certain second, not to a certain frame. Or when I just input a framenumber to access, I make some work modification, then when I finish I wrongly hit F5, and my reference framenumber is lost. I know there is the scrap window, but hopely you get what I wanted to say.
It makes no sense to render video when you place the timer in a new location, it only makes sense if you are already previewing the video.

-for example, all the masktools functions. I want to see them highlighted, to visually place them, and probably edit them. But when writting up a mt_function I might only want for example mt_lut to appear in the box (call window ,"ctrl+space") because I use it oftenly and have a custom preset for it. But the shortcut becomes a bit of a long way while looking for the function among all of them started with "m" or "mt", or "mt_". So yeah, highlight all the functions (or those selected in the function definition options), but only make appear in my call box those I use commonly. Well, its only a suggestion.


I have avspmod heavily customised, colors, shortcuts, functions, options, macros, etc So I copied options.dat to the 2.0.7 folder, it changes color but nothing else seems to work.

Hockey Man
2nd March 2011, 05:08
Associating avs files with AvsPmod worked for me in all previous versions and the original AvsP. But it only worked correctly if I did it while I was running AvsP/AvsPmod as a administrator. I'm using Windows 7 x64 Home Premium.

Zarxrax
2nd March 2011, 06:01
Associating avs files with AvsPmod worked for me in all previous versions and the original AvsP. But it only worked correctly if I did it while I was running AvsP/AvsPmod as a administrator. I'm using Windows 7 x64 Home Premium.

Odd, I couldn't get it to work for me on anything besides windows xp, even running as administrator.
I was planning on making an installer which could set up the associations, but I'm having some trouble with that.

Hockey Man
2nd March 2011, 07:44
I had the same problem with file associations with mpc-hc. If I tried to associate any file types it wouldn't work unless I ran the executable as an administrator. That's the only reason I tried doing it also in AvsPmod, and luckily it worked.

Yellow_
2nd March 2011, 14:26
It's great to see the development of AVSPmod continue.

Just wish I could get it to work on Linux with Wine, from previous comments I'm aware it's VfW but so is Virtualdub and that runs sweet via Wine.

Some way to use SDL, ffplay or the nominated external player within AVSPMod interface would be excellent.

Other comment would be that in your New Features you've added Rec709 for HD playback, which is great but I'd query whether it it is correct to say "should" "be converted using Rec709 if their colors are to appear" "correctly."

Canon DSLR h264 is HD BT709 primaries and transfer but has a BT601 color matrix as one example.

RiCON
2nd March 2011, 15:16
Can't remember if I put this here already but here is a macro that I consider very useful: Trims.py (https://gist.github.com/850977).
How to use it: For each bookmark, it creates a pair of frames in a Trim().
Ex:
Bookmarks on frames 100, 1000, 2000 and the last frame of the video is 2999.
The macro inserts the line "Trim(100,999)++Trim(1000,1999)++Trim(2000,2999)" to the end of the script.

The .avs association in AvsP also worked with me, running it as Administrator in Win7.

Zarxrax
2nd March 2011, 16:59
-It doesnt matter if windowed or full (Im on 1080p screen res), there's room in the bar but the right part information autohides when I roll my mouse over the image. I use these parameters:
Frame %F / %FC - (%T)(%TT) %POS %HEX %CLR \t\t%Z %Wx%H (%AR) - %FR fps - %CS


I can't reproduce this. Can you provide a screenshot showing the problem?

Dogway
2nd March 2011, 19:58
StatusBar.mp4 80Kb:
http://www.sendspace.com/file/zmwe9b

ANGEL_SU
2nd March 2011, 21:25
@Dogway

I have dealed the statusbar problem. See this photo (http://www.dumpt.com/img/viewer.php?file=0gsfyxwg1b9okui0m8ft.png). If lack of space, truncate the text as the upper. Otherwise, no any truncation as the lower.

I will provide a new control character '\T\T' to do this. If you don't like, just keep on using '\t\t' - it still works as before.

Dogway
2nd March 2011, 22:06
@ANGEL_SU: \T\T doesn't work. What do you recommend me doing?

ANGEL_SU
2nd March 2011, 22:18
Sorry,i means i solved today. So, You need to wait for next version...

Zarxrax
3rd March 2011, 00:55
By the way, if anyone has function definitions for plugins or built-in avisynth commands that you would like to see included in AvsPmod, please send them my way, and I will see that they are included in the next version.

LigH
3rd March 2011, 09:39
Function definition import ... hooray! A bunch of flowers for you!

AlanHK
4th March 2011, 12:27
I'm having a problem with v 2.06 and 2.07.
edit: (and 2.08)

If I try to execute a command line:
p:\AvsPmod\AvsPmod "MoV_2004.avs"

Which worked with version 2.05; AvsPmod opened the named file in the current directory. In 2.06 and 2.07 it fails with this in the logfile:
Traceback (most recent call last):
File "run.py", line 5, in <module>
File "AvsP.pyo", line 67, in <module>
File "wx\__init__.pyo", line 45, in <module>
File "wx\_core.pyo", line 4, in <module>
File "wx\_core_.pyo", line 12, in <module>
File "wx\_core_.pyo", line 10, in __load
ImportError: DLL load failed: The specified module could not be found.

However, it will open the script if I run the complete filename:

p:\AvsPmod\AvsPmod "o:\merchant\MoV_2004.avs"

If I open a non-existent filename,
p:\AvsPmod\AvsPmod "o:\merchant\XXX.avs"

AVSPMod opens with a blank screen, with no errors reported. So it's not just that it can't find the file.

So it seems the command line syntax has changed and instead of interpreting the argument as a file in the current directory, as before, it now thinks it's something else (a "module"?).

This is on Windows 2000, using the FAR command shell.


The problem, for me, in using full paths is that my scripts don't have full paths, just the filenames.
eg: AVISource("MoV_2004_1.avi")

So if I click on the tab to clone a script to test something, I now get an error

AVISource autodetect: couldn't open file 'MoV_2004_1 .avi'
Error code: 2
(New File (1), line 1 )

As Avisynth can't find the source file.

Whereas with 2.05, opening the initial script without a path, it put all files in the context of the current directory and so cloning a tab gave me a viable script.

AlanHK
4th March 2011, 13:51
By the way, if anyone has function definitions for plugins or built-in avisynth commands that you would like to see included in AvsPmod, please send them my way, and I will see that they are included in the next version.

Some of these are just extended by including defaults.

[COREFILTERS]

SSRC(
clip,
int samplerate=48000,
bool "fast"=false
)

[PLUGINS]
AGC_HDRAGC
(
clip clip,
float max_gain=6.3 (0.00 to 8.00),
float min_gain=1.0,
float coef_gain=0.5 (0.00 to 0.5),
float max_gain=6.3 (0.00 to 8.00),
float min_sat=1.19 (0.00 to 2.00),
float coef_sat=0.9 (0.0 to 2.0)
int avg_window=16 (0 to 120),
int response=100,
int debug=0,
int mode=2 (0 to 2),
int protect=2 (0 to 2),
int passes=1 (1 to 9),
int shift=0,
bool shadows=true,
int shift_u= -31 (-100 to 100),
int shift_v=0 (-100 to 100),
float corrector=1.31 (0.50 to 1.50),
float reducer=2.0 (0.0 to 2.0),
int avg_lum=2000 (128 to 2000),
float black_clip=0.0,
int freezer=-1
)

deblock_Deblock(
clip,
int quant=25 (0 to 60),
int aOffset=0 (0 to 50),
int bOffset=0 (0 to 50)
)


Dup_Dup(
float "threshold"=3.0 (0.0 to 10.0),
bool "chroma"=true,
bool "show"=false,
bool "copy"=true,
int "maxcopies"=20 (1 to 20),
bool "blend"=false,
bool "debug"=false,
string "log"=""
)

FFT3DFilter_FFT3DFilter(
clip,
float "sigma"=2.0 (0.1 to 10),
float "beta"=1.0 (1 to 10),
int "plane"=0 (0 to 4),
int "bw"=48,
int "bh"=48,
int "bt"=3 (-1 to 5),
int "ow"=bw/3 (2 to bw),
int "oh"=bh/3 (2 to bh),
float "kratio"=2.0 (1.5 to 3.0),
float "sharpen"=0 (0 to 4.0),
float "scutoff"=0.3,
float "svr"=1.0 (0 to 4),
float "smin"=4.0,
float "smax"=20.0,
bool "measure"=true,
bool "interlaced"=false,
int "wintype"=0 (0 to 2),
int "pframe"=0,
int "px"=0,
int "py"=0,
bool "pshow"=false,
float "pcutoff"=0.1,
float "pfactor"=0 (0 to 1),
float "sigma2"=sigma (0.01 to 10),
float "sigma3"=sigma (0.01 to 10),
float "sigma4"=sigma (0.01 to 10),
float "degrid"=1.0 (0.01 to 10),
float "dehalo"=0 (0.0 to 10.0),
float "hr"=2.0 (0.01 to 10),
float "ht"=50.0 (0.01 to 100),
int "ncpu"=1
)

framenumber_FrameNumber(
clip,
int offset=0,
int left=0 (0 to 1)
)

Grid_Grid(
clip,
int sf,
int ef,
int lineint,
int bold,
int vbold,
int color=$FFFFFF,
int bcolor,
int vbcolor,
bool grid,
bool axis
)

MSharpen_MSharpen(
int "threshold"=10 (0 to 255),
int "strength"=100 (0 to 255),
bool "mask"=false,
bool "highq"=true,
)

Msmooth_MSmooth(
int "threshold"=15 (0 to 255),
int "strength"=3 (0 to 25),
bool "highq"=true,
bool "chroma"=false,
bool "mask"=false,
bool "show"=false,
)

Rotate_Rotate(clip clip,
float "angle"=0 (0 to 360),
int "color"=0,
int "start"=0,
int "end"=-1,
float "endangle",
int "width"=0,
int "height"=0,
)

Toon-v1.0_Toon(clip,
float "strength"=1.0 (0.0 to 1.0),
)

warpsharp_UnsharpMask(
clip,
int strength=64 (0 to 64 by 1),
int radius=3 (0 to 64 by 1),
int threshold=8 (0 to 64 by 1)
)


[USERFUNCTIONS]
DeHalo_alpha(
clip,
float "rx"= 2.0 (1.0 to 3.0),
float "ry"= 2.0 (1.0 to 3.0),
float "darkstr"= 1.0 (0.0 to 4.0),
float "brightstr"= 1.0 (0.0 to 4.0),
float "lowsens"= 50 (0 to 100),
float "highsens"= 50 (0 to 100),
float "ss" = 1.5 (1.0 to 4.0),
)

FillMargins(
int left=0 (0 to 500),
int top=0 (0 to 500),
int right=0 (0 to 500),
int bottom=0 (0 to 500)
)

LSFmod(
clip input,
int "strength"=100 (0 to 255 by 5),
int "Smode"=3,
int "Smethod"=2,
int "kernel"=11,
string "preblur"="OFF" ("OFF"/ "ON"),
bool "secure"=True,
clip "source",
int "Szrp"=16,
int "Spwr"=4,
int "SdmpLo"=4,
int "SdmpHi"=48,
int "Lmode"=1,
int "overshoot"=1,
int "undershoot"=1,
int "overshoot2"=2,
int "undershoot2"=2,
int "soft"=0,
bool "soothe"=True,
int "keep"=20,
int "edgemode"=0,
bool "edgemaskHQ"=False,
float "ss_x"=1.25,
float "ss_y"=1.25,
int "dest_x"=clip.width,
int "dest_y"=clip.height,
bool "show"=False,
int "screenW"=1280,
int "screenH"=1024,
string "defaults"="fast" ("fast"/ "old"/ "slow")
)

RemoveDirt(
bool _grey=True
)

YLevels(
clip clip,
int input_low=0 (0 to 255),
float gamma=1.00 (0.01 to 10.00),
int input_high=255 (0 to 255),
int output_low=0 (0 to 255),
int output_high=255 (0 to 255)
)

YLevelsG(
clip clip,
int input_low=0 (0 to 255),
float gamma=1.00 (0.00 to 10.00 by 0.1),
int input_high=255 (0 to 255),
int output_low=0 (0 to 255),
int output_high=255 (0 to 255)
)

YLevelsS(
clip clip,
int input_low=0 (0 to 255),
float gamma=1.00 (0.01 to 10.00),
int input_high=255 (0 to 255),
int output_low=0 (0 to 255),
int output_high=255 (0 to 255)
)

wOxxOm
5th March 2011, 09:28
maybe AvsPmod could provide such macro functions as GetCurrentColumn/GetCurrentLine or GetCursorPos(line,col), GetTextAtPosition(line,col,count), DeleteText(line1,col1,line2,col2), ReplaceSelectedText(txt), InsertTextAt(txt,line1,col1), SetCursorPos(line,col) - this will allow an infinitely much more flexible control over scripts.

Caroliano
5th March 2011, 21:15
I can't use the x264 encoder:
Traceback (most recent call last):
File "D:\Programas\A-B\AvsP\AvsPmod_v2.0.7\tools\encoder_gui.py", line 548, in OnButtonRun
wx.MessageBox('%s\n\n%s' % (s1, s2), _('Error'), style=wxOK|wx.ICON_ERROR)
NameError: global name 'wxOK' is not defined

besides that, look at the comandline that it generates:
x264.exe --preset veryfast --crf $video_quality --zones $credits_frame,596,q=40 --sar 1:1 --output "I:\191CANON\MVI_2932_smdegrain.mp4" "I:\191CANON\MVI_2932_smdegrain.avs"
When I put "0" in the CRF value (I want lossless), the --crf number disapears. I also left the "Credit startframe" in blank because my video don't have such a thing, and I don't like to use it anyway. My video has 597 frames.

The x264 GUI is, simply put, horrible... I know that I don't need to use it, and that you haven't put much effort fixing it, but it would be nice to encode to lossless rigtht from the avsp.

It only needs a input and output box, a mode selection (CRF, 2-pass, ABR, etc), one drop-down or slider for the --preset, one drop-down for tune, and a box for inputing the CRF/bitrate (the current 2 boxes are good too). A writebox for adding aditional comandline options, level and profile selection, PAR input, and some other things are nice to have too. And then construct the comandline from those options, w/o a need for an global preset.
Take a look at the MultiX264 gui (http://www.64k.it/andres/data/microx264/multix264-1.png), or the Main configuration screen for x264 in Megui, for inspiration, if you decide to do it.

Oh, being able to Zoom w/o reloading the script would be very nice for heavy scripts with temporal denoising.

Version 2.0.7 brought some very nice additions. Thanks for your hardwork!
:thanks:

ANGEL_SU
5th March 2011, 22:53
@Caroliano
Replace encoder_gui.py with this new one (http://www.easy-share.com/1914114075/encoder_gui.py). 'NameError' and 'missing 0' have been fixed.

If '--zone' is not needed, you can add your own preset to file 'x264.presets'. Open this file with any text editor and append something like:

[CRF Very Fast 2]
x264.exe --preset veryfast --crf $video_quality $extra_options --sar $par_x:$par_y --output "$video_output" "$video_input"

TurboPascal7
7th March 2011, 05:00
Please, if it possible do something with its speed with lots of bookmarks. I happened to have more than 700 bookmarks (one for every scenechange) and it works really slow.

ANGEL_SU
7th March 2011, 07:56
Please, if it possible do something with its speed with lots of bookmarks. I happened to have more than 700 bookmarks (one for every scenechange) and it works really slow.

I try to import 1000 bookmarks from a file, and then, navigate through. But I can't see any trouble in speed. Could you discribe in detail?

TurboPascal7
7th March 2011, 09:56
I try to import 1000 bookmarks from a file, and then, navigate through. But I can't see any trouble in speed. Could you discribe in detail?
Looks like speed is based not on the amount of bookmarks, but on the amount of bookmarks that points to a similar frame/time. When you occasionally or intentionally load the same bookmarks file twice or this file contains some similar parts from the beginning, AvsP doesn't check if the same bookmark already exists and based on the number of such collisions becomes laggy (though it may work just fine with much greater amount of unique bookmarks). It's not really AvsP bug since you can't add same bookmark twice via GUI, more like a problem of "Bookmarks from Chapter" macros.

ANGEL_SU
7th March 2011, 11:33
It's not really AvsP bug since you can't add same bookmark twice via GUI, more like a problem of "Bookmarks from Chapter" macros.

Yes, you are right. Although, I can import 1000 bookmarks without any trouble, but I encounter a very long delay when restart avsp to reload this session. I also try to import 1000 bookmarks with 300 duplicated. It indeed has a very long delay.

PS:
When loading a session or adding an already existing boomark(delete a bookmark), AvsP will refresh the program one time/one bookmark - destroy/rebuild bookmarks menu and redraw marks on the video slider. I have fixed this issue in the source to excute updating only at handling the last one of bookmarks. Currently, for lots of bookmarks, you should not import same bookmark file twice and also don't save them in the session - manually import from file again.

Yellow_
11th March 2011, 19:55
A few queries:

Is it possible to have a flip preview for RGB output? Some odd apps I have to add flipvertical() to to get it right way up. :-)

And a couple with a script 'consumer' pov rather than script 'writer/editor' pov.

How difficult is it to add tooltips or alias names for sliders filter variables, some are self explanatory, like 'hue' in Tweak :-) but in something like GrainFactory3 there's g1str, g2str, g1tex etc, again as a writer/editor ok we learn the purpose of the variables, but for script 'consumers'?

Ability to toggle a function on or off, in affect 'hash out' a function but by using a tick box for each filter in the slider view.

A waveform / RGB Parade /Vectorscope would be useful for the UI

Dogway
11th March 2011, 21:32
-I have another suggestion for improve or bugfix, dont know really. The ability to open function definition options without having the plugins/scripts in its folder.

It's very inconvenient when you are moving files in and out from the plugins folder. Which for me at least is at daily basis (updates, error tests, ram, dropped usage plugins...). I also said it in another post, but it would be cool to export/import function definition.

@Yellow_: add tooltips in the function definition options of your filters. For turn a filter off/on I ctrl+q the filter line.

Zarxrax
12th March 2011, 00:52
A few queries:

Is it possible to have a flip preview for RGB output? Some odd apps I have to add flipvertical() to to get it right way up. :-)

And a couple with a script 'consumer' pov rather than script 'writer/editor' pov.

How difficult is it to add tooltips or alias names for sliders filter variables, some are self explanatory, like 'hue' in Tweak :-) but in something like GrainFactory3 there's g1str, g2str, g1tex etc, again as a writer/editor ok we learn the purpose of the variables, but for script 'consumers'?

Ability to toggle a function on or off, in affect 'hash out' a function but by using a tick box for each filter in the slider view.

A waveform / RGB Parade /Vectorscope would be useful for the UI

If you are viewing your scripts in external applications, then this has nothing to do with avspmod, and adding a flip option to the interface would not affect anything in those external apps.

The names of variables in external filters are created by whoever made those filters. I agree that they should use better names a lot of the time, but, there's really not much that could be done about that. You can create an avisynth function to "Rename" the parameters to something more friendly. But its honestly easier (as a user) to just read the documentation and memorize what they do rather than going through so much trouble.

Being able to disable some filters with a checkbox might be neat, but I don't think it would be possible to do this in a way that makes sense. Avspmod interprets the script as you have it written, so in order to disable anything, it would need to modify the script as well. (if it DIDNT do this, then things would get very confusing)
It's easy enough to just comment out any lines that you want to disable.

Waveform/vectorscope and other visualisations are available from various plugins or possibly built-in avisynth functions.

Zarxrax
12th March 2011, 00:54
Dogway: you can import/export function definitions.