View Full Version : AvsPmod 2.5.1
Zarxrax
8th March 2010, 18:26
See this thread for the latest updated version of AvsPmod:
https://forum.doom9.org/showthread.php?t=175823
AvsP (http://avisynth.org/qwerpoi/)was an awesome script editor for AviSynth, so it was sad to see that the project was apparently dead.
We have been continuing this project under the name AvsPmod, and there are now many new features and bug fixes, primarily thanks to the work of Angel_Su, vdcrim, and others.
I am personally not going to be working on this project much anymore, but I never did much anyways aside from bringing together other people's source code and compiling new builds.
vdcrim has created a git repository for the project here: http://avspmod.github.io/
As of version 2.4.2, function definitions can be imported from the wiki at https://github.com/AvsPmod/AvsPmod/wiki/Filter-database
This can be done via Options menu -> Avisynth function definition -> Import.
Download
Both the windows build and source code can be downloaded from the git repository:
Download here (https://github.com/AvsPmod/AvsPmod/releases)
Pre-release r426 Windows build (http://files.line0.in/builds/AvsPmod-2.5.1-r426-x86-04874ed.7z)
Changelog
Version 2.5.1
- Add 'toggle preview placement' menu option - the video preview can be placed now to the right of the script
- Add 'open script's directory' menu option
- Add 'interpret escape sequences' and accelerator keys to the find/replace dialog
- Fixes to the handling of function definitions
- Other minor changes and fixes
Version 2.5.0
- Tabs can be assigned to groups. Tabs on the same group share the timeline, optionally applying offsets
- Add 'enable scroll wheel through tabs on the same group' setting
- Snippets of text can be associated to a tag and inserted in the script
- Remove 'customize autocomplete keyword list' and add its functionality to the 'AviSynth function definition' dialog
- Improve 'autocomplete parameter' menu option and add filename string auto-completation
- Add highlighting styles for unknown functions, parameters and assignments
- Add setting for highlighting words as functions when in doubt
- Fix slow typing on very large scripts
- Scripts can be exported as HTML
- Add 'quick save image' menu option
- Add setting for customizing the default filename pattern used for saving images
- Add setting for not prompting for JPEG quality when saving
- Allow to save RGB48 data as 16-bit PNG
- Improve output path options in the 'Save Image Sequence' macro
- Update the current frame number when switching tabs also when the preview is hidden
- Check that requesting a frame succeeded before attempting to use it
- Fix error message appearing on preview refresh for user sliders with a custom modulo on its label
- Fix empty translation files not being filled on start
- Other minor changes and fixes
Version 2.4.2
- Function definitions can be imported now from a new wiki
- Allow specifying what sources of function definitions to read on start
- Updates to the filter database
- Add syntax for function parameters not included by default in autocomplete, [arg info]
- Add 'autocomplete parameter' menu option, Ctrl+Alt+Space shortcut
- Add 'copy image to clipboard' menu option
- Speed-up handling of a large number of bookmarks
- Fix corruption of the margin of the video preview
- Fix tab renaming
- Add a new macro function 'ClearBookmarks'
- Improve 'Bookmarks at Intervals' macro
- Other minor changes and fixes
Version 2.4.1
- Add 'reload script' menu option
- Add 'use large size video controls' setting
- Add 'invert scroll wheel direction' setting
- Improve video zooming on Ctrl + mouse wheel
- Fix the 'navigate' menu options needing to be pressed two times when using a separate window for the video preview
- Fix the dragging of the handle of the separate window preview's slider
- Fix ScriptFile and ScriptName being swapped
- Accept several clip properties on the Pipe macro function's command line
- Other minor fixes
Version 2.4.0
- Add AvxSynth support. AvsPmod runs now natively on *nix
- Add script playback (video only)
- Add 'keep variables on refreshing' menu option, useful for dealing with heavy scripts
- Detect correctly AviSynth 2.6.0 new color spaces
- Add temporary support for VapourSynth AVIFile scripts (.vpy)
- Add option to specify directly the location of avisynth.dll/libavxsynth.so
- Add option to change the autoload plugins directory
- Add option to choose an alternative working directory
- Accept some variables on 'program settings' paths: %programdir%, %avisynthdir%, %pluginsdir%.
Useful for portable use.
- Add 'undo close tab':
- file menu -> undo close tab
- middle click on empty tab bar space
- Ctrl+Shift+N default hotkey
- New find and replace dialogs with added features
- Add auto-crop option to the crop editor
- The crop editor can be used now with the video preview zoomed or flipped
- Add a new variable to the video status bar - bookmark title (%BM)
- Improve avs and avsi files association option:
- on Windows, prompt to associate files for all users or only the current one and ask for permissions
for the former
- on *nix, this choice is made by starting AvsPmod as root to associate for all users. The application
is also registered on the desktop environment's menu.
- make the option toggleable
- Improve default filename on prompts:
- add two new settings to the options dialog, 'save/load' tab
- better basename choice on save image dialog and fix last saved image's name still being used when
changing tabs
- add 'default' parameter to several macro functions
- The mouse wheel can be used now to scroll through tabs
- Ctrl + mouse wheel can be used to zoom the video preview
- If 'enable scroll wheel through similar tabs' is off the mouse wheel can be used to scroll vertically
the video preview, or horizontally with Shift pressed.
- The CLI script encoder now checks PATH and the tools subdirectory before asking for the path to the
executable
- Fix opening and saving Unicode scripts
- Fix decoding of command line arguments
- Fix ScriptFile, ScriptName and ScriptDir functions not returning the right value [AviSynth 2.6.0]
- Fix 'share timeline' option being always in effect
- Fix 'last scrolled frame' menu option for 'update video while dragging' on
- Fix tabs without filename still being closed when canceling a save dialog
- Fix stop button of the avs2avi GUI tool
- Add new macro function Pipe, for sending video frame data to external applications
- Add 'propose' and 'only' parameters to the GetScriptFilename macro function
- Add 'clean' parameter to the GetText macro function
- Improvements on the 'Import bookmarks from file' macro:
- add timecode format v1 parsing
- add support for list of frames on TFM log u/b section and optimize its parsing
- Merge 'Save bookmarks to images' macro into 'Save Image Sequence'
- Fix Python 2.6 compatibility
- Other minor changes and fixes
Version 2.3.1
- Add detached video preview window visibility options:
- Always on top of other windows ('Options' menu)
- Always on top of the main window ('Program Settings' dialog, needs restart)
- Add printing support
- Disable showing line numbers if 'line margin width' option is 0
- Don't fail to launch AvsPmod if the option files are damaged
- Work around event ID overlapping when working with a large number of bookmarks by disabling 'Go to bookmark' submenu for more than 1000
- Add version info to the macro API
- Add draw lines option to the GetPixelInfo macro function, and fix marks position
- Rename the last executed macro return value from 'last' to 'avsp.Last'. The former is still accepted.
- Add 'Macros - Extra' section to the translation files. Strings that no longer exist are deleted from the translation files when updating to a new version.
- Rename 'Bookmarks from Chapter' macro to 'Import bookmarks from file' and add support for some other file types:
- TFM log (combed, possible combed and u/v mismatches)
- x264 QP file
- XviD and SCXviD log
- Fix performance issues in the 'Bookmarks at Intervals' macro
- Other minor changes and fixes
Version 2.3.0
- Add an option to decide based on the video resolution the coefficients used in the conversion to RGB for the video preview
- Add 'Run analysis pass' to the 'Video' menu (for two-pass filters)
- Add periodic session backup option
- Add an option to not prompt to save a script if it doesn't already exist on the filesystem
- Add original source time (%ST) and encoded frame type (%EFT) to the video status bar options
- (only works with ffms as source filter and no temporal filters in the script)
- VirtualDub and VFAPI plugins can be also inserted now with the 'Insert plugin...' menu option and the 'GetPluginString' macro function, and be dropped over a script
- Fix exception opening the crop editor
- The default filename in a save script dialog wasn't taken from the first source in the script in some cases
- Saving an image with an unsaved script not longer causes to include a '*' in the default output filename
- Solved single instance + restart AvsPmod + child process still running -> socket error
- The interface language can be chosen now from the options. Several translations are included.
- Add macro files to the translations
- The macro documentation can be checked now with 'help(avsp.function)' or 'help(avsp)' from a macro
- All included macros and macro functions support unicode strings now
- Add persistent storage to macros - 'Options' dictionary
- Macros can run now in its own thread by including a comment line like: # run macro in new thread
- The macro API functions are now thread-safe
- Add a new macro function 'SafeCall' for thread-safe calls in separate-thread macros and tools
- Add a new macro function 'GetPixelInfo' that waits for the user to click on the video preview and returns the coordinates and colour of that point
- Add a new macro function 'GetVar' to retrieve the contents of a specified Avisynth variable. Some limitations apply.
- Update GetTextEntry macro function with new types of entry, multiple entries per row and customizable width, backwards compatible
- Add an optional cancel button to the MsgBox macro function
- SaveImage macro function also accepts now JPEG quality as a parameter
- Fix ProgressBox macro function 'Cancel' button
- Fix SaveScript macro function 'filename' parameter
- Add new macro 'ConditionalReader file from bookmarks'
- Update some macros with the improvements in GetTextEntry
- A number of intervals can be specified directly now in the 'Bookmarks at Intervals' macro
- Set the Large Address Aware flag
- Python 2.6-2.7 is required now
- Other minor changes and fixes
Previous changes listed in changelog.txt
Extra Documentation
Import User Functions, YUV->RGB, Titled Bookmarks, Custom autocomplete list, user slider rescaling
http://forum.doom9.org/showthread.php?p=1481609#post1481609
Path settings, Keep variables on refreshing, Pipe macro function, AvxSynth/*nix
http://forum.doom9.org/showthread.php?p=1602917#post1602917
Zarxrax
8th March 2010, 19:01
Reserved
nurbs
8th March 2010, 19:02
Nice, thank you for your effort.
poisondeathray
8th March 2010, 19:10
Thanks zarxrax
@rfmmars - there are 5 mirrors listed in that link. If none of them work for you here is another
http://www.mediafire.com/?zz005nxqvyw
Cheers
rfmmars
8th March 2010, 19:22
You do something good then upload it to this crumy download site, I don't have time to waste.
Richard
EDIT: Thanks for taking the time in your PM to solve my problem !!!
tin3tin
8th March 2010, 19:42
Nice initiative. Would it be possible to upload it to this site?
www.avisynth.org/warpenterprises
AvsP is listed there, but no link.
One nifty feature someone asked some time ago, was the ability to hear the audio at the current frame, when moving frame by frame. I don't know how much python knowlege a thing like this would need?
Zarxrax
8th March 2010, 20:16
One nifty feature someone asked some time ago, was the ability to hear the audio at the current frame, when moving frame by frame. I don't know how much python knowlege a thing like this would need?
Would be a very nice feature, but unfortunately its way out of my league. What I do to work around it is I set virtualdub as my external player, seek the the spot I need, and press the play button to hear the audio there.
osgZach
8th March 2010, 20:54
I know some Python, but this is way out of my league :(
Zarxrax
8th March 2010, 21:43
I know some Python, but this is way out of my league :(
You might still be able to help out with some stuff if you like. I was quite surprised at how straightforward and readable the source code was, despite my not knowing python.
Soulhunter
9th March 2010, 00:13
Thx Zarxrax! ^^
buzzqw
9th March 2010, 08:27
direct link (my site) -> http://www.64k.it/andres/data/a/avspmod-2.0.3.zip
thanks Zarxrax
BHH
Gavino
9th March 2010, 11:48
What I do to work around it is I set virtualdub as my external player, seek the the spot I need, and press the play button to hear the audio there.
See also this post for a macro to play from the current AvsP position.
nurbs
9th March 2010, 12:41
When I try to run the program it tells me that msvcp71.dll is missing. I'm on windows 7 64bit. While I have found some downloads with google, I'd like to have some "legitimate" download link that I can trust. I don't just want to download it from some random site.
Wilbert
9th March 2010, 15:24
http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71
Zarxrax
9th March 2010, 17:08
When I try to run the program it tells me that msvcp71.dll is missing. I'm on windows 7 64bit. While I have found some downloads with google, I'd like to have some "legitimate" download link that I can trust. I don't just want to download it from some random site.
Hmm, interesting. I guess I might need to include that DLL file next time.
Gavino: very nice macro! Thanks for pointing it out!
nurbs
9th March 2010, 21:16
Thanks.
By the way I'd be interested who had the idea to name the directory for 32bit DLLs on 64bit Windows "syswow64". Not very intuitive. :confused:
Zarxrax
13th March 2010, 23:44
A pretty nasty bug has been found. You are unable to use the arrow keys or home/end etc to move around the text, because these keys always change focus to the video.
I didn't cause this bug, it already exists in the original source code.
I'll try to learn Python and fix it.
tin3tin
14th March 2010, 00:14
Here on Vista the functions of those keys changes correctly after what part of the interface has the focus. Meaning I can move the cursor around in the text, when the text has the focus and when the slider has to focus the keys work as expected on the preview video-image.
Zarxrax
14th March 2010, 00:55
Here on Vista the functions of those keys changes correctly after what part of the interface has the focus. Meaning I can move the cursor around in the text, when the text has the focus and when the slider has to focus the keys work as expected on the preview video-image.
Really? That's odd, because it doesn't function correctly for me, and for at least one other person who reported it to me.
Zarxrax
14th March 2010, 20:00
I believe I have solved the problem by compiling with an old version of wxpython that was mentioned in the source code. I'll need to do some further testing and decide whether or not to just stick with that old version.
osgZach
15th March 2010, 02:21
A pretty nasty bug has been found. You are unable to use the arrow keys or home/end etc to move around the text, because these keys always change focus to the video.
I didn't cause this bug, it already exists in the original source code.
I'll try to learn Python and fix it.
Are they defined in a config somewhere as being bound to functions that do editing on the video?
Just thinking out loud here.. (I haven't even used the program before) cause I wonder if its a simple routine to not allow those keys to reset the focus or something when eidting text, or if they need to not be bound as editing keys for video in the first place.
In either case, sounds like something someone should mention to the wxforms/wxpython people, if its a bug with the Win32 interface it should fall on them to fix it.
However I am interested in learning how it interfaces to load/display video in the first place.. Does it use Avisynth wrapper? Is that part well documented? I'm interested in it for a project of my own.. But if it doesn't pan out I may be able to contribute the fruits of that effort to AvsP in some form.. Mainly for dealing with Hybrid Anime content.
Also may want to consider porting it to Python 3.x branch now since its the most recent.. It may or may not be difficult depending on what syntax changes need to be made, but I'm betting there will be some advantages to that.. If I can find time to sit down and "get into" this project, maybe I will assess the possibility of moving it over.
Gavino
15th March 2010, 13:18
However I am interested in learning how it interfaces to load/display video in the first place.. Does it use Avisynth wrapper?
It uses the Avisynth library interface via a wrapper to the C functions - see source files avisynth.py and pyavs.py.
XadoX
15th March 2010, 15:20
Great News :thanks:
osgZach
15th March 2010, 16:29
Thanks Gavino, will look inside those.. it's all GPL'ed right? I remember some uproar-ish thread here about someone making an Avisynthwrapper or something like that, but wanting to charge money for it.
mel2000
16th March 2010, 00:54
I have AviSynth 2.57a installed. I get the following error when I launched v2.0.3 of AvsPmod.exe.
[Mon Mar 15 18:24:44 2010]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 11359, in main
File "wx\_core.pyo", line 7978, in __init__
File "wx\_core.pyo", line 7552, in _BootstrapApp
File "AvsP.pyo", line 11349, in OnInit
File "AvsP.pyo", line 3368, in __init__
File "AvsP.pyo", line 3901, in getOptionsDict
File "ntpath.pyo", line 270, in isdir
TypeError: coercing to Unicode: need string or buffer, int found
Any recommendations for a solution appreciated.
Zarxrax
16th March 2010, 01:26
@mel2000: I'll release a new build soon that is compiled differently. Let me know if that helps or not, after I release it. I think it might.
@others:
After AvsP 2.0.2 was released, qwerpoi released a bugfix patch, that fixed a few bugs which are mentioned here: http://forum.doom9.org/showthread.php?p=1059559#post1059559
I have been trying to look into these bugs to see if I could fix them as well, but, I can't actually reproduce any of the bugs (or even figure out the exact details of some of them). Does anyone have any information about them?
XadoX
16th March 2010, 11:03
Somehow the arrow keys are not working for me as they should.
While pressing up or down the programm always starts the preview windows und tries to skip through the video. But I want to move through the test file.
Alex_ander
16th March 2010, 12:17
While pressing up or down... But I want to move through the test file.
Why not left/right?
XadoX
16th March 2010, 12:20
If I am in text editing mode I want to use the arrow keys for navigation through the text file.
While in videopreview mode the arrow keys have to navigate through the video.
Zarxrax
16th March 2010, 16:25
Somehow the arrow keys are not working for me as they should.
While pressing up or down the programm always starts the preview windows und tries to skip through the video. But I want to move through the test file.
Did you not read the thread? It will be fixed soon :)
Zarxrax
17th March 2010, 02:06
Ok here is version 2.0.4
Changes:
- Fixed arrow keys not working in the text area
- Fixed icon not appearing in vista/7
- Fixed custom function definitions not being saved (bug existed in avsp 2.0.2) [this fix may introduce a new bug]
- Included MSVCP71.dll, which may be needed on some systems
- Added some additional default file extension templates
- Added some macros
mel2000
17th March 2010, 04:53
@mel2000: I'll release a new build soon that is compiled differently. Let me know if that helps or not, after I release it. I think it might.
Thanks Zarxrax. Unfortunately I got the same errors after installing 2.0.4. However, since 2.0.2 is working adequately, I'm still grateful.
levi
17th March 2010, 06:33
thx for taking this up, I love it too & will test it out
Zarxrax
17th March 2010, 06:36
Thanks Zarxrax. Unfortunately I got the same errors after installing 2.0.4. However, since 2.0.2 is working adequately, I'm still grateful.
Hmmm, that's really odd that it doesn't work for you. What version of windows are you using? Are you launching it from the exe?
XadoX
17th March 2010, 06:59
Did you not read the thread? It will be fixed soon :)
In that case I think I have to say the truth: No :(
I am sorry.
XadoX
18th March 2010, 11:07
Better interaction between DGdecNV (in that case DGMultiSource) and AvsPmod.
While working with DGSource and the Cuvid-Server everything works fine. If I am using DGMultiSource instead AvsPmod often crashes.
Maybe its more a feature request for DGdecNV?
Zarxrax
18th March 2010, 15:22
Better interaction between DGdecNV (in that case DGMultiSource) and AvsPmod.
While working with DGSource and the Cuvid-Server everything works fine. If I am using DGMultiSource instead AvsPmod often crashes.
Maybe its more a feature request for DGdecNV?
Sorry, I don't own a license to that software.
Can anyone else confirm that it doesn't work in AvsP?
nautilus7
18th March 2010, 23:18
Yes, I experience the *exact* same problem mentioned by XadoX. It only happens with DGmultiSource and only with the "previous frame" button at random times.
Zarxrax
18th March 2010, 23:45
Yes, I experience the *exact* same problem mentioned by XadoX. It only happens with DGmultiSource and only with the "previous frame" button at random times.
Seems like a strange problem. Does it happen in avsp 2.0.2? What about other apps like virtualdub?
What exactly happens when it crashes? Is there an error message?
sjakke
19th March 2010, 00:25
I'm not an avsp user. But I have to give you a thumbs up for taking initiative. And it's a good way to start learning some python:)
mel2000
19th March 2010, 08:39
Hmmm, that's really odd that it doesn't work for you. What version of windows are you using? Are you launching it from the exe?
I'm using Vista SP2 and launched AvsPmod from the exe (as administrator).
shambles
19th March 2010, 11:16
i always wished that i could switch to fullscreen and hide the gui with avsp. i guess such a feature is out of scope but i'm not a programmer so i don't have any idea how hard it would be to implement.
just thought i'd throw it out there :)
Zarxrax
19th March 2010, 16:06
i always wished that i could switch to fullscreen and hide the gui with avsp. i guess such a feature is out of scope but i'm not a programmer so i don't have any idea how hard it would be to implement.
just thought i'd throw it out there :)
Do you mean you would like the video to be fullscreen?
I think there are 2 things that you can do to sort of accomplish this right now.
1) Options > Program Settings > Video 1 > "Seperate Video Preview Window"
Then restart avsp and rightclick the preview, and choose Zoom > Fill window.
This isn't true fullscreen, as it will leave the title bar and the navigation controls onscreen. I believe it also just resizes the video with one of avisynth's resizers, which might be fairly processor-intensive.
2) Use a macro to define a secondary application to preview the video in. You can then set a shortcut to launch that macro. As it happens, there is already an example macro that shows you how to launch "mplayer" in fullscreen mode.
nautilus7
19th March 2010, 18:26
Seems like a strange problem. Does it happen in avsp 2.0.2? What about other apps like virtualdub?
What exactly happens when it crashes? Is there an error message?
Well, it seems the problem only happens in avsp 2.0.2. I can't crash your version (I'm on win 7 ultimate x64). If it happens again, I'll report back to you. Thanks!
XadoX
22nd March 2010, 08:50
Better interaction between DGdecNV (in that case DGMultiSource) and AvsPmod.
While working with DGSource and the Cuvid-Server everything works fine. If I am using DGMultiSource instead AvsPmod often crashes.
Maybe its more a feature request for DGdecNV?
Added Screenshot:
Zarxrax
22nd March 2010, 16:28
It looks like that error message is coming from the DGMultiSource plugin, rather than from AvsP, so you might want to check with the author of that plugin and see what he says.
Guest
22nd March 2010, 16:44
Other apps such as MEGUI, staxrip, etc., do not invoke this error. And since AvsP is written in Python (I believe) I will not be able to try to see what it is doing wrong.
doc_dvxm
22nd March 2010, 21:00
Hii there.... I am using AvsPmod 2.04 on Win 7 Ultimate 32 Bit system and everything is fine :)
Can you add a shortcut key for "Save image as..." - Shift + anything or Ctrl + anything for example ??
Thanx for your great work and efforts during developing this wonderful tool..
Best Regards...
Zarxrax
23rd March 2010, 00:34
Hii there.... I am using AvsPmod 2.04 on Win 7 Ultimate 32 Bit system and everything is fine :)
Can you add a shortcut key for "Save image as..." - Shift + anything or Ctrl + anything for example ??
Thanx for your great work and efforts during developing this wonderful tool..
Best Regards...
You can already do this. Options>configure shortcuts
doc_dvxm
23rd March 2010, 20:24
You can already do this. Options>configure shortcuts
Cool :) Thank you!
stax76
24th March 2010, 02:33
StaxRip works only with DGSource.
shambles
24th March 2010, 13:41
Do you mean you would like the video to be fullscreen?
I think there are 2 things that you can do to sort of accomplish this right now.
i need fullscreen when comparing encodes with interleave(). currently i open my scripts in mpchc but framestepping backwards and forwards is very slow and inconsistent so it's easier to do interleave(a,b,a,b,a,b,a,b,a,b) and only step forward. though it works pretty good it's still a far cry from the ease-of-use of avsp
i tried mplayer (smplayer gui) but it didn't even seem to have a step backward hotkey
Zarxrax
24th March 2010, 14:56
i need fullscreen when comparing encodes with interleave(). currently i open my scripts in mpchc but framestepping backwards and forwards is very slow and inconsistent so it's easier to do interleave(a,b,a,b,a,b,a,b,a,b) and only step forward. though it works pretty good it's still a far cry from the ease-of-use of avsp
i tried mplayer (smplayer gui) but it didn't even seem to have a step backward hotkey
I'll check to see if there is any way to implement a fullscreen mode, but I suspect that it is either not possible, or very difficult to do.
tin3tin
24th March 2010, 20:19
i need fullscreen when comparing encodes with interleave()
Why don't you just use Video > Zoom > 100%(Normal) or higher and the use the scrollbars to locate the troublesome areas?
levi
25th March 2010, 03:06
I'm getting an error "The current Avisynth script contains errors."
http://img534.imageshack.us/img534/3725/whaterros.png (http://img534.imageshack.us/i/whaterros.png/)
I think I figured out it's because it's not auto-loading all of my plugins directory. When I add:
import("C:\Program Files (x86)\AviSynth 2.5\plugins64\srestore.avsi")
it works. Can I specify the plugins dir somewhere?
shambles
25th March 2010, 08:36
Why don't you just use Video > Zoom > 100%(Normal) or higher and the use the scrollbars to locate the troublesome areas?
i compare the videos in normal viewing conditions, from normal viewing distance. it's difficult to see differences in dark areas when the gui is visible
Zarxrax
25th March 2010, 16:03
I'm getting an error "The current Avisynth script contains errors."
I think I figured out it's because it's not auto-loading all of my plugins directory. When I add:
import("C:\Program Files (x86)\AviSynth 2.5\plugins64\srestore.avsi")
it works. Can I specify the plugins dir somewhere?
I haven't tried that version of avisynth that you are using yet, but I'm guessing you use 2 different plugins folders, right? Does it store both of them in the registry, or do you normally have to load that folder manually? I think I can probably add support for this.
levi
25th March 2010, 16:22
I haven't tried that version of avisynth that you are using yet, but I'm guessing you use 2 different plugins folders, right? Does it store both of them in the registry, or do you normally have to load that folder manually? I think I can probably add support for this.
Here's a snapshot:
http://img176.imageshack.us/img176/2109/90772609.png (http://img176.imageshack.us/i/90772609.png/)
Thanks for looking in to this :)
levi
1st April 2010, 05:04
- Removed outdated encoding gui from the tools menu
Just curious why you removed it. I use it for launching x264 & xvid encraw. I put the scripts from the non-mod version in & it works great. :confused:
Also, it would be great if the resize calculator window would show bits/(pixel*frame) as resize is adjusted to aid in choosing new resolution
Zarxrax
1st April 2010, 16:29
Just curious why you removed it. I use it for launching x264 & xvid encraw. I put the scripts from the non-mod version in & it works great. :confused:
Also, it would be great if the resize calculator window would show bits/(pixel*frame) as resize is adjusted to aid in choosing new resolution
Eh, it still actually worked for x264? Someone in the old avsp thread said it didn't work anymore, and I'm fairly certain that all of the development in x264 in the past years has surely rendered it obsolete. I suppose it could still be ok for xvid though.
Looking over the plugin, it seems that it just generates some outdated commandlines. I suppose it could be updated fairly easily.
Can you explain more about this bits/(pixel*frame) thing that you want. I'm not really sure what this is.
osgZach
1st April 2010, 17:26
I think hes talking about a bitrate calculator... Frankly I've never used them.
levi
1st April 2010, 21:15
Eh, it still actually worked for x264? Someone in the old avsp thread said it didn't work anymore, and I'm fairly certain that all of the development in x264 in the past years has surely rendered it obsolete.
Not at all. I have various profiles defined for different command line configurations. I also have it set up so I can launch x32 or x64 264 & x32 or x64 xvid_encraw. I have, for example, the threads parameter configurable in the gui since different avs scripts (MT vs not MT, etc) work better (faster) with different encoder command line settings for thread numbers.
I suppose it could be updated fairly easily.
If you would like I'll send you my modifications to use as a sample
Can you explain more about this bits/(pixel*frame) thing that you want. I'm not really sure what this is.
This is something that I get from gordian knot - resolution tab
http://img12.imageshack.us/img12/5184/55931392.th.png (http://img12.imageshack.us/i/55931392.png/)
Zarxrax
2nd April 2010, 00:20
Won't that require info from the bitrate calcuator? If so, I don't know if I can do that.
levi
3rd April 2010, 19:36
I believe it requires evaluating the input, crop & resize operations. I only know 3 apps that do it
gordian knot
megui
aspect
Zarxrax
3rd April 2010, 19:45
I believe it requires evaluating the input, crop & resize operations. I only know 3 apps that do it
gordian knot
megui
aspect
Hmm, well the problem is, I don't really understand what I am supposed to be calculating here.
bits = ?
pixel = width*height ?
frame = framerate? number of frames in the whole video?
I tried looking at the code of the aspect program, but C is really difficult for me to follow.
nurbs
3rd April 2010, 22:45
Won't that require info from the bitrate calcuator?
Yes, you'd need the average bitrate since bpf = bps / ( w * h * fps).
It's basically useless for choosing a resolution anyway since it doesn't take source complexity into account:
http://forum.doom9.org/showthread.php?p=841511#post841511
http://forum.doom9.org/showthread.php?p=1311212#post1311212
TL;DR:
You can not base your decisions on this formula. The formula only gives you the false feeling that you know what you're doing when you're actually making a blind guess. This formula is more like a chant. Snakeoil.
osgZach
4th April 2010, 00:19
When I want to guess at file size for a given bitrate, I don't even take resolution into account.. I just look for an average size assuming every frame were the same bitrate of the target.
i.e 800kbps / 8 = 100KB, 100KB * 60s = 6MB/minute * length of video. Not the most accurate math in the world but gives you a rough idea and pretty easy to remember all the steps involved.
Have to guestimate how much bitrate you might require for a given resolution but there are general recommendations found easily enough with a search.
Zarxrax
4th April 2010, 21:33
levi: since that calculation seems to require knowledge of the bitrate that you intend to use, and since it seems to generally be a useless measurement, I'm not going to bother adding it.
But, you also mentioned having made modifications to the encoder tool. Anything interesting? I'm making some changes to it right now, but if you have done anything worthwhile to it, I'd definitely like to see.
I also just finished writing a new macro that can convert avsp's bookmarks into a chapter list for mkv/mp4 files :)
Zarxrax
10th April 2010, 18:11
Version 2.0.5 released. Download link in first post.
Changelog
Version 2.0.5:
- Updated defaults for 14 core filters, and added a handful of definitions for some userscripts
- Restored the mp4 encoding tool, as I had mistakenly decided that it was broken. In fact, only the presets were outdated. I have included new x264 presets, and also added the ability to set a CRF rather than a bitrate.
- Added new macro which lets you create a chapter list from your bookmarks. AvsPmod is now a great tool for creating matroska chapter files.
- Added new menu items: 'Open Avisynth plugins folder' & 'Open macros folder'
rfmmars
10th April 2010, 19:47
You do something good then upload it to this crumy download site, I don't have time to waste.
Richard
Much better, Thanks
whatyaar
13th April 2010, 05:38
Thanks a lot for all your time/effot, appreciate your effort.thanks one more time.
XadoX
13th April 2010, 05:49
:thanks:
vucloutr
13th April 2010, 09:34
:thanks:
RedDwarf1
13th April 2010, 16:45
Version 2.0.5 released. Download link in first post.
Changelog
Version 2.0.5:
- Updated defaults for 14 core filters, and added a handful of definitions for some userscripts
- Restored the mp4 encoding tool, as I had mistakenly decided that it was broken. In fact, only the presets were outdated. I have included new x264 presets, and also added the ability to set a CRF rather than a bitrate.
- Added new macro which lets you create a chapter list from your bookmarks. AvsPmod is now a great tool for creating matroska chapter files.
- Added new menu items: 'Open Avisynth plugins folder' & 'Open macros folder'
Thanks for updating this useful program. The Open Avisynth plugins folder is a good one, I always like stuff which speeds things up. That's why I like FileBox eXtender as it makes accessing frequently used folders so much quicker. My folder layout is so deep that it's a right pain to get to most folders without it.
kopmjj
23rd April 2010, 04:00
Hi before i install windows 7 64 bit does this work on it? at the moment i have windows 7 32 bit and works great.
7ekno
23rd April 2010, 11:41
Hi before i install windows 7 64 bit does this work on it? at the moment i have windows 7 32 bit and works great.
Yep, W7 x64 here and it's running well :cool:
http://www.users.on.net/~tekno/screenies/AvsPMod205.png
*Obviously editted to remove network/PC details !*
7ek
RiCON
29th April 2010, 17:46
Does adding User Functions work, now? As in, do they stay after the program's closed?
Also, I had added a framecount (http://ricon.pastebin.com/NFc67Y85) for the command line in encoder-gui in order to work with avs2yuv | x264-64.
Dunno if it's useful atm.
Stephen R. Savage
29th April 2010, 19:20
@Author:
- Could you add support for the Avisynth 2.5.8 block comments (/*comment*/) and the __END__ keyword?
/* This is a comment */ # format as comment
ImageSource("0001.png")
__END__
# these lines are disabled
Crop(4, 4, -4, -4)
Invert()
- Can you change the default comment font to something other than Comic Sans MS?
- Will you update the core filter definitions for those that have changed in Avisynth 2.6, e.g. the colorspace conversion filters?
- Can you implement code folding for function declarations and try/else blocks (perhaps fold on {})?
function TheFunction( ... )
{ # This could be folded.
[ ... ]
}
- Can you make text to the left of the assignment operator (=) not be highlighted as a function name? Also, could you not highlight names that have been assigned values as functions unless parentheses are present?
blankclip = blankclip # The assigned name should never be highlighted
StackHorizontal(last, blankclip, blankclip()) # see above
- Can you make the tab character ('\t') obey the indentation rules under Settings -> Text 1 instead of always occupying 3 spaces?
- Can you think of a better way to handle functions with "_" in their name?
LoadPlugin("mt_masktools.dll")
mt_masktools_mt_edge() # use rules for mt_masktools_mt_edge
mt_edge() # use rules for mt_masktools_mt_edge
edge() # do not use rules for mt_masktools_mt_edge
- When scanning plugins to read the syntax call, could you also detect which parameters are named/optional and which are not? Also, could you allow the user to manually generate information for a given plugin instead of only handling plugins in autoload?
@RiCON: I just checked, and they do indeed persist now. Very useful bugfix.
Zarxrax
29th April 2010, 20:40
@Author:
Could you add support for the Avisynth 2.5.8 block comments (/*comment*/) and the __END__ keyword?
Can you change the default comment font to something other than Comic Sans MS?
Will you update the core filter definitions for those that have changed in Avisynth 2.6, e.g. the colorspace conversion filters?
Can you implement code folding for function declarations and try/else blocks?
- I will look into supporting block comments and the __END__ keyword, but I'm not sure if I can do it.
- What font would you suggest instead?
- Hmmm.... that's a tough question. If I change filter definitions to those of AviSynth 2.6, that might mean they are no longer compatible for people using 2.58. Maybe there could be a way to determine which version of AviSynth is being used, and load different definitions for each one. Or maybe I could just include different files so the user can drop in a replacement if you are using 2.6. If/when 2.6 actually gets to a point where it is marked as stable and replaces 2.58, this would be a non-issue.
- Code folding sounds too difficult, but I'll check into it.
Stephen R. Savage
29th April 2010, 20:59
- I will look into supporting block comments and the __END__ keyword, but I'm not sure if I can do it.
- What font would you suggest instead?
- Hmmm.... that's a tough question. If I change filter definitions to those of AviSynth 2.6, that might mean they are no longer compatible for people using 2.58. Maybe there could be a way to determine which version of AviSynth is being used, and load different definitions for each one. Or maybe I could just include different files so the user can drop in a replacement if you are using 2.6. If/when 2.6 actually gets to a point where it is marked as stable and replaces 2.58, this would be a non-issue.
- Code folding sounds too difficult, but I'll check into it.
I believe you should just take one of the already used default fonts (perhaps Arial or Verdana) and assign it to the comment font. For the Avisynth 2.6 updates, the developers have taken forward compatibility into account, and new parameters have been added to the end of the function calls. This should mean that the templates can be extended without breaking compatibility.
Please look into the other suggestions I added to my previous post.
Edit: Also, I believe all that is required to enable 64-bit Avisynth for the video preview is to instruct py2exe to link against the Python 64-bit libraries (assuming Python <--> C mappings are platform independent).
Gavino
29th April 2010, 21:10
Could you add support for the Avisynth 2.5.8 block comments (/*comment*/)
Also, if possible, the [* comment *] form which supports nested block comments (http://avisynth.org/mediawiki/The_full_AviSynth_grammar#Comments).
Zarxrax
29th April 2010, 21:11
Even if the new parameters in Avs2.6 are just added to the end of the function, that doesn't really help, because if you are using the autocompletion to have it fill in the parameters, it will add too many parameters when you are using avisynth 2.58. But, as I said I'll check into it.
The reason that it highlights names of functions when parentheses are not present, is because AviSynth does not require parentheses. For instance, ConvertToYV12 and ConvertToYV12() should do the same thing.
I will look into the thing with the assignment operator.
Regarding the tab setting (in Text 2 settings) it seems to work fine for me. It's set to 4 as default, and my tabs insert 4 spaces. Changing it to 2 made them insert 2 spaces instead. I'm not sure what problem you are having there.
Gavino
29th April 2010, 21:22
For instance, ConvertToYV12 and ConvertToYV12() should do the same thing.
Not if the script creates a variable called ConvertToYV12 :devil:
- but the editor can't tell that without actually executing the script.
Zarxrax
29th April 2010, 21:28
Yea, it's kind of stupid to use reserved words :p
Stephen R. Savage
29th April 2010, 21:35
Even if the new parameters in Avs2.6 are just added to the end of the function, that doesn't really help, because if you are using the autocompletion to have it fill in the parameters, it will add too many parameters when you are using avisynth 2.58. But, as I said I'll check into it.
The reason that it highlights names of functions when parentheses are not present, is because AviSynth does not require parentheses. For instance, ConvertToYV12 and ConvertToYV12() should do the same thing.
I will look into the thing with the assignment operator.
Regarding the tab setting (in Text 2 settings) it seems to work fine for me. It's set to 4 as default, and my tabs insert 4 spaces. Changing it to 2 made them insert 2 spaces instead. I'm not sure what problem you are having there.
It does not do this for the interpretation of REAL TABS (ASCII HT, code 09). These are always represented as 3 spaces.
Note that many "reserved" names are very common words that you may want to use for function arguments (e.g. mask), and that plugins can add any arbitrary reserved name. Considering this, I suggest that when deciding whether to highlight a word or not, it should check if it appears in any assignment within the current scope or as a function argument. I understand that this will not catch variables assigned in Eval(), nor those created by functions and declared global, but I believe this is a reasonable compromise.
Edit: Also, I believe the argument names in a function declaration should never be highlighted either.
Edit2: Also, @Gavino, perhaps we should have a more "rich" editor that can analyze the script?
Zarxrax
29th April 2010, 21:50
Ok, so I guess you mean tabs that were inserted by some editor other than AvsP always show up as 3 spaces? I'll check into that.
I think it's going to be very difficult to try and parse the scripts to figure out what exactly how you are using a particular name, so there is no way I'm even going to touch that. If you or someone else can come up with a patch to do this, I'll gladly implement it, but, it's outside the scope of what I can do.
And about 64-bit, it seems that avsp links to some 32-bit C libraries, which prevents me from compiling it with 64bit python. At least that's what I think was going on when I tried it.
Macro for AvsPmod - Trims.py (http://ricon.pastebin.com/PgiZvs2F)
Adds a "Trim(n,n)" for each bookmark and creates qpfile (for x264) with them.
The trims will be useful to use with Daiz's AutoMKVChapters or some other script that reads them to create chapters or something.
krosswindz
4th May 2010, 16:34
:thanks:
nice to see someone breath in some fresh life into AvsP. I will surely give this a try soon.
Some more User Functions (http://ricon.pastebin.com/TMk4Cdv0)
Includes: AA, AAA, AnimeIVTC 2.0, AntiAliasing, ClipComp, ClipComp4 (a mod of mine of ClipComp), Deblock_QED, DeHalo_Alpha, EdgeCleaner, EE, FastLineDarken, FastLineDarkenMod, GradFunkMirror, HybridFuPP, LRemoveDust, LRemoveDustSSE3 (another mod to use SSE3 versions of the same filters), LSFMod, MCRemoveDust, MCTemporalDenoise, ReBlend, ReFadeIn, ReFadeOut, RemoveDirt, SAA, SeeTheDifference, SmartFade, Stab and TempGaussMC_beta2.
Dunno if I used the latest versions, but if you know better or newer versions of the same scripts, warn me.
Zarxrax
6th May 2010, 16:51
Some more User Functions (http://ricon.pastebin.com/TMk4Cdv0)
Includes: AA, AAA, AnimeIVTC 2.0, AntiAliasing, ClipComp, ClipComp4 (a mod of mine of ClipComp), Deblock_QED, DeHalo_Alpha, EdgeCleaner, EE, FastLineDarken, FastLineDarkenMod, GradFunkMirror, HybridFuPP, LRemoveDust, LRemoveDustSSE3 (another mod to use SSE3 versions of the same filters), LSFMod, MCRemoveDust, MCTemporalDenoise, ReBlend, ReFadeIn, ReFadeOut, RemoveDirt, SAA, SeeTheDifference, SmartFade, Stab and TempGaussMC_beta2.
Dunno if I used the latest versions, but if you know better or newer versions of the same scripts, warn me.
Thanks, this is something that I have been thinking about though... I wonder if it is a good idea to actually include user functions in avspmod. Because, there tend to be multiple versions of some functions, and so the user would need to make sure that their own functions are the same versions as the ones defined inside the program. And also, functions might become updated, while the definition in avspmod remains out of date for some time.
However, the other alternative would be for users who want definitions for their functions, to just do it themselves, but that's not a very attractive idea for most people, because it's very time consuming.
foxyshadis
11th May 2010, 02:26
Thanks for taking the time to update my favorite Avisynth tool, Zarxrax! If I get the time, I'll try to help out, but I'm easily distracted. (Working on AvsP was what initially moved me to Python from PHP, now I do everything in it... but in v3.)
Edit: Also, I believe all that is required to enable 64-bit Avisynth for the video preview is to instruct py2exe to link against the Python 64-bit libraries (assuming Python <--> C mappings are platform independent).
I'm going to try linking to wx x64 - but first I need to reinstall mingw to get gcc. wx is the main stopping point.
RiCON
11th May 2010, 03:13
Zarxrax: It's OK if the functions get outdated, because the user himself can modify them even if they're inside filterdb.dat through either the AvsP or opening filterdb.dat in Notepad or something.
Stephen R. Savage
11th May 2010, 05:42
Speaking of user filters, currently, there is an "export user functions" button but no import one (???).
Zarxrax
17th May 2010, 16:22
Wow, I just noticed today that there is already a nice interface to change the fonts, under Options>Fonts and Colors
I will go ahead and change the default comment font from Comic Sans to something else though.
I've been trying to fix the tab issue and the block comments, but its harder than I thought it would be. Also I've been really busy with work lately, so I haven't had a lot of time to work on this, but I'll keep trying and see what I can do.
Zarxrax
24th May 2010, 22:37
It does not do this for the interpretation of REAL TABS (ASCII HT, code 09). These are always represented as 3 spaces.
Stephen, are you certain about this? I was just testing with real tabs, and their size was dynamically changing to match whatever tab size I had set in the options.
Stephen R. Savage
25th May 2010, 00:41
Stephen, are you certain about this? I was just testing with real tabs, and their size was dynamically changing to match whatever tab size I had set in the options.
I checked again, and you are right that the tab size changes with the option. However, it is always one space less than the AvsP tabs. If tab size is set to 4, real tabs occupy 3 spaces; if set to 8, they occupy 7 spaces.
Zarxrax
25th May 2010, 03:55
Well that's really odd, because on my system the sizes match perfectly!
Zarxrax
25th May 2010, 17:18
Ok, I discovered what the problem probably is. If you use a monospaced font, then the tabs and spaces DON'T match up. But if you use a variable width font, they match up.
I'll do some checks to make sure it is treating the monospaced fonts properly. I think I might make monospaced the default anyways, because it makes sense for an application like this.
kypec
26th May 2010, 09:30
Yes, monospaced font is definitely the proper choice here. I only recently switched that option ON in my AvsP (original, non-modded version).
There is still an option of customized colors which is enough I think.
Joachim Buambeki
9th June 2010, 22:11
Hi,
thanks for updating AVSP!
Sorry for bugging, but are there any news on a 64bit version of AVSPmod? It would be really appreciated.
Best Regards
David
vinujan
11th June 2010, 17:35
Hi,
thanks for updating AVSP!
Sorry for bugging, but are there any news on a 64bit version of AVSPmod? It would be really appreciated.
Best Regards
DavidI too would like 64bit support!
Zarxrax
11th June 2010, 20:03
I can't add 64-bit support. I tried it but I didn't really understand what was going on. I think it's not possible.
Foxyshadis said something about maybe trying to compile a 64-bit one, so maybe he will have some better luck.
Zarxrax
22nd June 2010, 19:43
Bleh, I'm getting annoyed trying to make changes to this code. Mainly because I don't understand it -_-
Anyways, I believe I have found a workaround to the tab width issue with monospaced fonts. Just change the "default font" to the same font that is selected as the monospaced font. That should fix the tab widths.
It SHOULD be rather simple to add code folding (just a couple of lines of code), but I'm still having trouble figuring it out.
As my own laptop is currently fubar'd, I ended up testing AvsPmod 2.0.5 in wine just for the sake of it on a random university workstation (it has for a long time been an application "that just won't work" on wine). And 'lo and behold! It actually started (pic (http://img441.imageshack.us/img441/117/avsponlinux.png))!
The editor functionality (at least the basics of it) seem to work, and the application doesn't seem to crash with trying to plug the preview in or anything like that. The worse side is, the preview doesn't actually seem to work. It gives out random colors on different frames. So close, yet so far...
Tested (otherwise) working on wine 1.2rc2 and 1.2rc5. The Ubuntu rc6 package is not yet built, so testing on that will have to wait until it's done.
I wonder if anyone with knowledge on the video rendering part of the code can see what could be the culprit of the bug, and try to work around it while I try to see if the wine people could be worked with to make things work more swiftly. When working with Avisynth in wine, I've been quite missing something by the likes of AvsP(mod), to be honest ;)
tin3tin
3rd July 2010, 22:12
Impressive how you improve this great software though I can imagine it can be hard to find your way through the code. Great to see new user functions included too. :)
A small bug I've noticed is when you have code longer than what's visible and you search backwards from the end of the script then the text control isn't scrolled to where the word is found above your current position.
RCL0000ZK
13th July 2010, 18:43
Specs:
Win 7 x64 Ultimate (All updates)
Core i7 920
3GB DDR3 1600MHz RAM
AviSynth v2.5.8
AvsPmod v2.0.5
Using this script:
DGMultiSource("E:\Users\Neo\Videos\Videos\Vid.dgi", deinterlace=2)
Trim(150,462) ++ Trim(2940,3872) ++ Trim(4404,4802) ++ Trim(18794,20000) ++ Trim(27028,27474) ++ Trim(32352,35104) ++ Trim(35382,35916)++ Trim(38976,41752) ++ Trim(89864,91344)
Trim(1248,1420)
and many 'tabs' of this script:
MPEG2Source("E:\Users\Neo\Videos\Videos\Vid.d2v", cpu=6, iPP=true)
source = last
denoised = source.fft3dfilter(sigma=6,bt=3,interlaced=true)
denoised_D = mt_makediff(source,denoised,U=3,V=3)
denoised.TGMCmod().mt_adddiff(denoised_D.doubleweave(),U=3,V=3)
Trim(150,462) ++ Trim(2940,3872) ++ Trim(4404,4802) ++ Trim(18794,20000) ++ Trim(27028,27474) ++ Trim(32352,35104) ++ Trim(35382,35916)++ Trim(38976,41752) ++ Trim(89864,91344)
Trim(1248,1420)
I open the first script in one tab and the second script in many tabs.
When only the first script is opened, I have no problem.
But, when the second script is opened in many tabs with different values of 'sigma' in each script...after the >5 instances, I get the following error
Traceback (most recent call last):
File "AvsP.pyo", line 5813, in OnMenuVideoRefresh
File "AvsP.pyo", line 8950, in ShowVideoFrame
File "AvsP.pyo", line 9492, in PaintAVIFrame
File "pyavs.pyo", line 322, in DrawFrame
File "pyavs.pyo", line 301, in _GetFrame
File "avisynth.pyo", line 277, in GetFrame
WindowsError: exception: access violation writing 0x00000040
....when the first script is refreshed, I also get this (http://forum.doom9.org/showthread.php?p=1384948#post1384948) same error.
Also, in the same scenario, but WITHOUT the first scipt I get the following error:
Traceback (most recent call last):
File "AvsP.pyo", line 6409, in OnNotebookPageChanged
File "AvsP.pyo", line 8950, in ShowVideoFrame
File "AvsP.pyo", line 9492, in PaintAVIFrame
File "pyavs.pyo", line 322, in DrawFrame
File "pyavs.pyo", line 306, in _GetFrame
File "avisynth.pyo", line 309, in GetPitch
ValueError: NULL pointer access
Traceback (most recent call last):
File "AvsP.pyo", line 7147, in OnPaintVideoWindow
File "AvsP.pyo", line 9492, in PaintAVIFrame
File "pyavs.pyo", line 322, in DrawFrame
File "pyavs.pyo", line 306, in _GetFrame
File "avisynth.pyo", line 309, in GetPitch
ValueError: NULL pointer access
creaothceann
17th July 2010, 08:58
Moving the cursor through a script becomes noticeably slower the further it goes in the text. I guess that's because the program parses every time to see if it should display a function definition or auto-complete.
Could this be sped up somehow? I don't have the newest computer in the world (P4 1.7 GHz), but still... This is the only editor I've ever seen that has this problem.
Zarxrax
17th July 2010, 19:24
Moving the cursor through a script becomes noticeably slower the further it goes in the text. I guess that's because the program parses every time to see if it should display a function definition or auto-complete.
Could this be sped up somehow? I don't have the newest computer in the world (P4 1.7 GHz), but still... This is the only editor I've ever seen that has this problem.
I've never noticed this problem, but I think it's unlikely that I can fix it. Does it only happen on really long scripts?
creaothceann
17th July 2010, 22:20
Does it only happen on really long scripts?
It probably happens in all scripts, but in short ones it's not noticeable.
For example in this old (unfinished) script:
AVISource("Thundercats intro.avi")
Process()
#ConvertToRGB24()
# ImageWriter("01\", type="tga")
##ImageReader("01\%06d.tga")
function Process(clip) {
clip
n( 84).n( 86).n( 88).p( 93).n( 94).n( 96).n( 108).n( 110).n( 112).n( 114).n( 122).p( 125).n( 126).n( 128).n( 140).n( 146)
n( 150).n( 154).n( 158).n( 214).n( 218).n( 222).n( 226).n( 230).n( 232).n( 234).n( 238).n( 240).n( 242).n( 244).p( 246).n( 262)
n( 264).n( 268).n( 272).p( 274).n( 280).p( 282).n( 284).n( 286).n( 288).p( 290).n( 296).n( 295).n( 294).p( 299).p( 300).n( 301)
p( 313).p( 314).n( 318).n( 320).n( 322).n( 324).n( 326).n( 330).n( 332).n( 334).p( 337).n( 338).n( 340).n( 342).n( 344).p( 346)
n( 348).n( 350).n( 352).n( 354).n( 356).p( 362).n( 364).n( 386).n( 392).n( 394).p( 410).n( 412).n( 414).n( 418).n( 492).p( 494)
n( 496).n( 500).n( 605).n( 610).n( 614).p( 627).n( 650).n( 656).n( 658).n( 660).n( 662).n( 666).n( 668).n( 670).n( 672).n( 674)
n( 676).n( 678).n( 680).p( 682).p( 685).n( 686).n( 688).n( 690).n( 696).p( 698).n( 700).p( 702).p( 707).n( 712).n( 720).p( 722)
n( 724).p( 726).n( 728).n( 730).n( 732).n( 734).n( 736).n( 738).n( 740).n( 742).n( 760).p( 762).n( 764).p( 766).n( 768).p( 770)
n( 774).n( 776).n( 778).n( 780).n( 782).n( 784).n( 786).n( 788).n( 790).n( 792).n( 794).n( 796).n( 798).n( 800).n( 802).n( 806)
n( 810).n( 814).n( 844).p( 846).n( 848).n( 850).n( 860).p( 862).n( 864).p( 866).n( 868).n( 870).n( 872).p( 874).n( 894).n( 898)
n( 902).n( 906).n( 918).n( 926).n( 930).n( 934).n( 936).p( 938).n( 940).n( 942).n( 944).n( 946).n( 948).p( 950).n( 952).n( 954)
n( 956).p( 958).n( 960).n( 962).n( 966).n( 968).n( 970)
n( 974).n( 998).n(1010).n(1042).n(1074).n(1078).n(1086).n(1094)
n(1106).n(1130).n(1146).n(1150).n(1154).n(1158).n(1162).n(1178).n(1190).n(1202).n(1210).n(1214).n(1218).n(1222).n(1226).n(1238)
n(1242).n(1262).n(1266).n(1270).n(1278).n(1290).n(1326).n(1378).n(1382).n(1386).n(1390).n(1394).n(1398).n(1400).n(1402).n(1404)
n(1444).n(1448).p(1450).n(1452).p(1454).n(1456).n(1458).n(1466).n(1472).p(1474).n(1476).p(1479).n(1480).p(1482).n(1484).p(1486)
n(1488).p(1490).n(1492).p(1494).n(1496).p(1498).n(1500).p(1502).n(1504).p(1506).n(1507).p(1509).n(1510).n(1512).p(1514).p(1515)
p(1517).p(1518).p(1520).p(1521).n(1522).n(1524).p(1526).p(1527).n(1528).p(1530).p(1532).p(1533).p(1534).n(1536).p(1538).n(1540)
p(1542).n(1544).n(1546).n(1556).p(1558).n(1560).p(1562).n(1564).n(1566).n(1568).p(1570).n(1572).n(1574).n(1576).p(1578).n(1580)
p(1582).n(1584).p(1586).n(1588).n(1590).n(1592).p(1594).n(1596).n(1598).n(1600).p(1602).n(1604).p(1606).n(1608).n(1610).n(1612)
n(1614).n(1616).n(1618).n(1621).n(1624).n(1626).n(1628).n(1630).n(1632).n(1634).n(1636).p(1638).n(1640).n(1642).n(1644).n(1646)
n(1648).n(1650).n(1652).n(1654).n(1656).n(1658).n(1660).p(1662).n(1664).n(1666).n(1668).n(1670).n(1672).n(1674).n(1676).n(1678)
n(1680).n(1682).n(1684).n(1686).n(1688).n(1690).n(1692).n(1694).p(1698).n(1700).n(1702).n(1704).n(1706).n(1708).n(1710).n(1712)
p(1714).n(1716).p(1718).n(1720).n(1728).p(1750).n(1760).p(1762).n(1778).n(1780).n(1782).p(1789)
wnd( 72, 338, 0, 16, 16, -1)
wnd( 73, 338, 0, 16, 16, -1)
wnd( 166, 408, 42, 12, 12, -1)
wnd( 172, 500, 66, 16, 16, -1)
wnd( 173, 500, 66, 16, 16, -1)
wnd( 174, 500, 66, 16, 16, -1)
wnd( 382, 346, 322, 16, 16, -1)
wnd( 383, 346, 322, 16, 16, -1)
wnd( 483, 6, 84, 8, 8, -1)
wnd( 563, 424, 40, 8, 12, -1)
wnd( 704, 0, 260, 226, 78, 2)
wnd( 705, 0, 260, 226, 78, 1)
wnd( 711, 216, 372, 18, 12, 1)
wnd( 954, 250, 104, 8, 8, -1)
wnd( 955, 250, 104, 8, 8, -1)
wnd( 960, 96, 332, 10, 8, 4)
wnd( 961, 96, 332, 10, 8, 3)
wnd( 996, 270, 114, 8, 8, -1)
wnd( 997, 270, 114, 8, 8, -1)
wnd(1032, 572, 0, 8, 8, 3)
wnd(1033, 572, 0, 8, 8, 2)
wnd(1034, 572, 0, 8, 8, 1)
wnd(1042, 66, 234, 12, 12, 2)
wnd(1043, 66, 234, 12, 12, 1)
wnd(1050, 596, 382, 10, 16, -1)
wnd(1051, 596, 382, 10, 16, -1)
wnd(1626, 444, 180, 32, 12, 2)
wnd(1627, 444, 180, 32, 12, 1)
# Stab()
}
function p(clip, int Index) {clip.DeleteFrame(Index).DuplicateFrame(Index - 1)}
function n(clip, int Index) {clip.DeleteFrame(Index).DuplicateFrame(Index )}
function wnd(clip, int Index, int x, int y, int w, int h, int dt) {#, int dx, int dy) {
#dx = default(dx, 0)
#dy = default(dy, 0)
dt = default(dt, -1)
clip
#prev_content = BlankClip(1, w, h)
prev_content = Trim(Index + dt, -1).Crop(x, y, w, h) # Crop(x + dx, y + dy, w, h)
ApplyRange(Index, Index, "Overlay", prev_content, x, y)
}
(What I did was adding a couple of function calls after the "Process()" call; when I was satisfied with them I moved them to the end of the function.)
Scrolling through the last lines is slow - with some exceptions though. Here's a video (recorded with CamStudio):
http://www.mediafire.com/file/71ie7rqvglksoib/AvsP.avi
You can probably reproduce the effect on your PC if you copy & paste the script a few times.
Zarxrax
18th July 2010, 13:18
I can't view the video, as I don't have the camstudio codec, or whatever you used. But I did try copy pasting it a few times. I started noticing the slowdown after about 500 lines, so I see what you are talking about.
This problem is related to the "show filter calltips" setting, because if you turn that off, the speed returns to normal. I can check into it, but as I already said, i doubt I can do anything about it.
creaothceann
18th July 2010, 14:54
I can't view the video, as I don't have the camstudio codec
(Included with the software, which is free.) Alternative links, just in case:
http://www.mediafire.com/file/e4k2cmw8ozyql43/AvsP_ZMBV.avi
http://www.mediafire.com/file/yxuwvziu0o0w500/AvsP_h264.avi
This problem is related to the "show filter calltips" setting, because if you turn that off, the speed returns to normal. I can check into it, but as I already said, i doubt I can do anything about it.
I wouldn't have known to toggle that particular setting, and can live without it. And since most users won't reach 500 lines anyway it is already good enough.
:thanks:
levi
21st July 2010, 20:02
Regarding 64 bit, the trouble I see is this (when selecting the "tools - save to..." option):
http://img822.imageshack.us/img822/78/57345094.th.png (http://img822.imageshack.us/img822/78/57345094.png)
It displays a message stating the "script contains errors, exiting" when, in fact, the script works fine. Basically since avspmod is not a 64bit app, it can not utilize the 64 bit plug-in.
I propose adding an option (default disabled) in avspmod to ignore this condition where the .avs appears to be invalid. 'Don't check avisynth script" or whatever. The script can be manually confirmed by the user - setting the external player to veedub64.exe & using F6.
Another nice option would be to add batch processing - allow multiple encodes to be queued. Either put multiple jobs in the batch file which is generated or one batch calls another upon completion or whatever other way may be easier. Second approach would be nice as it could allow queuing additional jobs later on vs getting the subsequent jobs staged before starting the queue.
Also, it would be really cool if you could add batch file execution output logging similar to 'tee' (display to console & create a log file).
Stephen R. Savage
21st July 2010, 20:27
Regarding 64 bit, the trouble I see is this (when selecting the "tools - save to..." option):
It displays a message stating the "script contains errors, exiting" when, in fact, the script works fine. Basically since avspmod is not a 64bit app, it can not utilize the 64 bit plug-in.
I propose adding an option (default disabled) in avspmod to ignore this condition where the .avs appears to be invalid. 'Don't check avisynth script" or whatever. The script can be manually confirmed by the user - setting the external player to veedub64.exe & using F6 vs getting the subsequent job all staged before starting the queue.
You can work around this yourself by using the Avisynth try/catch structure. On the first line, where you attempt to load a 64-bit plugin, rewrite it to something like this:
try { Load_StdCall_Plugin("yadif64.dll") }
catch(err_msg) { Load_StdCall_Plugin("yadif32.dll") }
I believe you can also have the catch statement execute "return BlankClip()" to terminate the script early, but I am not sure.
Gavino
21st July 2010, 21:07
I believe you can also have the catch statement execute "return BlankClip()" to terminate the script early, but I am not sure.
No, 'return' inside a try/catch just terminates the current block (try or catch part), not the entire script.
Zarxrax
22nd July 2010, 00:26
I didn't realize it prevents you from saving the file. I'll see if I can remove that restriction. I'm not sure how soon I'll be able to get around to it though.
Edit: sorry, I misread that. Still, I'll check into it.
levi
22nd July 2010, 01:36
Cool, thx.
Stephen R. Savage's try / catch suggestion alleviates my frustration in the meantime.:thanks:
Frosty5689
30th July 2010, 00:11
If its not too troublesome, is it possible to upgrade to python 2.6 library or above? I would love to use cpu_count function as part of my macro to split a script into 8 parts (so I can filter videos with 8 threads and then join them together), atm its not automated loop as it can't read how many cores a cpu has. Just a suggestion.
Zarxrax
31st July 2010, 17:39
If its not too troublesome, is it possible to upgrade to python 2.6 library or above? I would love to use cpu_count function as part of my macro to split a script into 8 parts (so I can filter videos with 8 threads and then join them together), atm its not automated loop as it can't read how many cores a cpu has. Just a suggestion.
Nope, that cant happen unless someone who really knows what they are doing goes through the code and updates it. Avsp requires a specific version of wxpython. And wxpython, in turn, requires a specific python. When I used newer builds of wxpython, it had the odd result of not being able to use the arrow keys to move around in the text area.
flebber
1st August 2010, 08:34
If its not too troublesome, is it possible to upgrade to python 2.6 library or above? I would love to use cpu_count function as part of my macro to split a script into 8 parts (so I can filter videos with 8 threads and then join them together), atm its not automated loop as it can't read how many cores a cpu has. Just a suggestion.
That definitely interests me. Would be good to get Avsp on to python 2.7:) . I have a big work project on over the next month but will have a look at it after that.
Good to note that Wxpython has recently been updated http://www.wxpython.org/recentchanges.php
royia
28th August 2010, 20:31
Zarxrax, Thank you for updating this great tool.
I wish someone would come along and help you take this software to the next level.
By the way, for me the Num Keys doesn't work in the Text Editor Mode.
Windows 7 64bit version 2.05.
Thanks.
Zarxrax
29th August 2010, 01:54
Num keys don't work? What exactly do you mean? On the number pad or the numbers about the keyboard? The numbers on the num pad, or the arrows? Or both?
Arrows on the number pad is the only thing that doesn't work for me. But for all I know, maybe its always been like that.
royia
30th August 2010, 14:26
I mean the Num Pad as arrows (Num Lock is off).
Zarxrax
30th August 2010, 17:06
I checked and the original avsp treats it the same way, so there's not really much I can do about it, I think. I guess you've just gotta use the normal arrows.
Maitreya
1st September 2010, 10:00
@Zarxrax :
Do you know how Git works?, if so; could we setup a repo so I (and others) can help u on improvements on AvsPmod?
b.t.w. : A 64 bit version would be possible but this is without psyco support (also python 2.7 doesnt have psyco yet) :
http://psyco.sourceforge.net/
Zarxrax
1st September 2010, 15:18
I absolutely don't know how it works :p
But I'll read up on it and try to get it set up.
Hmm, after looking at it, git doesn't seem very friendly to windows. Would an alternative method like svn be ok?
Maitreya
1st September 2010, 16:02
Sure!, i just love Git, but svn will do just fine :)
Attack
14th September 2010, 10:48
I've only just found this tool... and well, thank you for keeping a dead project alive. While I am rubbish at using Avisynth, I am a good programmer, so if you do get a repository set up, I'd gladly explore the code...
If there are known bugs, do list them as debugging is my speciality.
royia
14th September 2010, 14:55
I've only just found this tool... and well, thank you for keeping a dead project alive. While I am rubbish at using Avisynth, I am a good programmer, so if you do get a repository set up, I'd gladly explore the code...
If there are known bugs, do list them as debugging is my speciality.
Those are great news!
Thank you...
Zarxrax
14th September 2010, 16:28
Ah cool, we do have a repository now and are making some very nice progress :)
I'll send you a pm with info.
Yobbo
14th September 2010, 22:07
Thanks for all your efforts, people! AVSPmod is a great tool that should pushed further! THANK YOU!
AlekseiV
26th September 2010, 05:34
Feature request: "Do not show preview window on restore of previous session" option.
I want to use the video preview window, so I can't disable it. I also want to restore my session, so I can't disable that.
Sometimes I work with scripts that output files (e.g. TFM, DeDup). If I was working with them with the window open, closing then opening AvsPmod will result in their logfiles being deleted, possibly without me predicting it and thus not having them backed up.
Also sometimes I crash AvsPmod and when I re-open it the above happens.
Yobbo
26th September 2010, 16:15
Feature request: "Do not show preview window on restore of previous session" option.
I want to use the video preview window, so I can't disable it. I also want to restore my session, so I can't disable that.
Sometimes I work with scripts that output files (e.g. TFM, DeDup). If I was working with them with the window open, closing then opening AvsPmod will result in their logfiles being deleted, possibly without me predicting it and thus not having them backed up.
Also sometimes I crash AvsPmod and when I re-open it the above happens.
YEP! Agreed. The only way around this is to drag/drop a new video file on AvsP to open it.
Chikuzen
8th October 2010, 17:30
yesterday, an idea struck me when i read Zarxrax's 'Bookmarks to Chapter.py'.
if someone wants to put chapters on his/her video, he/she should encode so that the chapter point may be a key(IDR)frame.
thus i decided to modify Zarxrax's script a little.
#Bookmarks to x264 qpfile.py
filename = avsp.GetSaveFilename(title='Save as')
if filename != '':
bookmarks = avsp.GetBookmarkList()
bookmarks.sort()
file=open(filename + '.qpfile', 'w')
for bookmark in bookmarks:
file.write('%i K -1\n' % bookmark)
file.close()
#Bookmarks to chapter and qpfile.py
filename = avsp.GetSaveFilename(title='Save as')
if filename!='':
fps = avsp.GetVideoFramerate(index=None)
bookmarks = avsp.GetBookmarkList()
bookmarks.sort()
chfile=open(filename + '.chapter.txt', 'w')
qpfile=open(filename + '.qpfile', 'w')
chapter = 1
for bookmark in bookmarks:
m, s = divmod(bookmark/fps, 60)
s2 = s
h, m = divmod(m, 60)
ms = (s2-int(s))*1000
time = '%02i:%02i:%02i.%03i' % (h ,m, s, ms)
chfile.write('CHAPTER%02i=' % chapter)
chfile.write(time + '\n')
chfile.write('CHAPTER%02iNAME=Chapter %02i\n' % (chapter, chapter))
chapter+=1
qpfile.write('%i K -1\n' % bookmark)
chfile.close()
qpfile.close()
#Bookmaks and TimecodeV2/V4 to Chapter and qpfile.py
tcfilename = avsp.GetFilename(title='Select the TimecodeV2/V4 file')
if tcfilename != '':
tcfile = open(tcfilename)
tclines = tcfile.readlines()
tcfile.close()
timecodes = []
for tcline in tclines:
try:
timecode = int(float(tcline.strip()))
except:
pass
else:
timecodes.append(timecode)
if len(timecodes) == avsp.GetVideoFramecount():
outputfilename = avsp.GetSaveFilename(title='Save as')
if outputfilename != '':
chfile = open(outputfilename + '.chapter.txt', 'w')
qpfile = open(outputfilename + '.qpfile', 'w')
chapter = 1
bookmarks = avsp.GetBookmarkList()
bookmarks.sort()
timecodes.sort()
for bookmark in bookmarks:
time_ms = timecodes[bookmark]
s, ms = divmod(time_ms, 1000)
m, s = divmod(s, 60)
h, m = divmod(m, 60)
time = '%02i:%02i:%02i.%03i' % (h ,m, s, ms)
chfile.write('CHAPTER%02i=' % chapter)
chfile.write(time + '\n')
chfile.write('CHAPTER%02iNAME=Chapter %02i\n' % (chapter, chapter))
chapter += 1
qpfile.write('%i K -1\n' % bookmark)
chfile.close()
qpfile.close()
else:
avsp.MsgBox("The number of timecodes isn't suitable for video's Framecount.")
any suggestion?
LigH
20th October 2010, 10:56
:thanks: Great tool! :cool:
Still - a few suggestions:
Please recognise (and maybe even highlight specifically) hexadecimal numbers ::= "$" + 6|8 hex-digits (often used for colors); they are not "bad numbers".
It would be useful to be able to have AvsPmod open the file defined in an "Import" call, as this is usually also an AviSynth script (e.g. like in Eclipse the Ctrl+LMB click - open highlighted file).
It would be useful to allow autocompletion for the string in LoadPlugin[Ex] for DLL files in a few custom directories (not only the autoload path), with subdirectory option.
Some function definitions are a bit outdated or incomplete, e.g. ImageSource/ImageReader missing "info" and "pixel_type" ...
GRKNGLR
28th October 2010, 11:11
Hi,
When will the new version be ready?
Boulotaur2024
28th October 2010, 16:03
My only gripe with this is the fact that autocompletion is very obtrusive and I lost count of all the times I unvolontarily clicked on a function parameter definition... Other than that I use exclusively AvsPmod all the time now, so yeah it's good :)
LigH
29th October 2010, 07:39
Yes - please change that behaviour so that the documentation for a function is not called by any accidental simple left-click onto the tooltip. Maybe with a Ctrl-Click?
GRKNGLR
30th October 2010, 20:33
I have Avisynth64 installed on my system. When I try to open AvsPMod, I receive the error below. What could be the reason?
Traceback (most recent call last):
File "run.py", line 5, in <module>
File "AvsP.pyo", line 73, in <module>
File "pyavs.pyo", line 31, in <module>
File "avisynth.pyo", line 4, in <module>
File "ctypes\__init__.pyo", line 423, in __getattr__
File "ctypes\__init__.pyo", line 348, in __init__
WindowsError: [Error 126] Belirtilen modül bulunamad
Traceback (most recent call last):
File "run.py", line 5, in <module>
File "AvsP.pyo", line 73, in <module>
File "pyavs.pyo", line 31, in <module>
File "avisynth.pyo", line 4, in <module>
File "ctypes\__init__.pyo", line 423, in __getattr__
File "ctypes\__init__.pyo", line 348, in __init__
WindowsError: [Error 126] Belirtilen modül bulunamad
levi
31st October 2010, 19:32
try deleting / renaming:
_last_session_.ses & options.dat
AlekseiV
7th November 2010, 14:45
Small bug (I think): The frame-timeline in the preview window lists the frames wrong.
The first frame is 0, it is zero-index, so the total number of frames should be (frames-1). But it reports first frame as 0 and last frame as totalframes.
that is, AvsPmod will say "0/172805". 172805 is the total number of frames, but AvsPmod can only seek to 172804 -- since that is the last frame. The last frame number should be totalframes-1.
unclear message, hopefully you can figure me out
Gavino
7th November 2010, 15:06
AvsPmod will say "0/172805". 172805 is the total number of frames, but AvsPmod can only seek to 172804 -- since that is the last frame. The last frame number should be totalframes-1.
No, I think it is correct. The number after the '/' is the total number of frames, not the last frame number.
This is consistent with the way Avisynth's built-in Info() reports the frames.
Zarxrax
7th November 2010, 17:02
I have Avisynth64 installed on my system. When I try to open AvsPMod, I receive the error below. What could be the reason?
It does not work with Avisynth64
GRKNGLR
7th November 2010, 20:14
It does not work with Avisynth64
Will it be supported in the future, then?
Zarxrax
7th November 2010, 22:22
Possibly. I don't know.
AlekseiV
8th November 2010, 11:17
No, I think it is correct. The number after the '/' is the total number of frames, not the last frame number.
This is consistent with the way Avisynth's built-in Info() reports the frames.I still think it is confusing to see "Frame 10/11" listed when frame 10 is frame 11 due to different n-index.
However I do see that the timeline works accurately, though this is not obvious at high (~1000+) framecounts; so it's not a bug, just a design decision I disagree with.
Ditto666
8th November 2010, 11:59
Is there a way to get the video preview to utilize the graphics card? It uses the graphics card to render the images instead of the player ("PureVideo technology"). There are even many other things that act with separate settings for the general desktop/interface vs. video playback which is registered in Windows all in the same way, a basic function of it really. The preview basically just has to render as video somehow instead of images. It should use VMR7/VMR9 - DirectShow. Is this doable/possible?
LigH
8th November 2010, 12:40
AviSynth itself is a kind of "VfW extension". It was never intended to do real-time filtering in media players, but instead to feed an encoder with top-quality results, even if that takes longer.
To use AviSynth scripts as real-time filters, you may have to use the script in ffdshow's post-processing, then you will have it embedded in a DirectShow filter graph. But for a "script editor with preview", I don't see any real advantage in using a DirectShow renderer.
Ditto666
8th November 2010, 14:33
AviSynth itself is a kind of "VfW extension". It was never intended to do real-time filtering in media players, but instead to feed an encoder with top-quality results, even if that takes longer.
To use AviSynth scripts as real-time filters, you may have to use the script in ffdshow's post-processing, then you will have it embedded in a DirectShow filter graph. But for a "script editor with preview", I don't see any real advantage in using a DirectShow renderer.
I can easily explain why I find it necessary but that in and of itself would be quite long though.
How could I find out what this post-processing script is?
-Thanks for the response :)
LigH
8th November 2010, 14:41
Start > (All) Programs > ffdshow > Video decoder configuration
(left part: check list tree) [X] AviSynth || (right part: big text area to paste script - just without ***Source function, this comes from the decoder if "[X] add ffdshow video source")
Then this script will be used as post-processing filter for the just played video in your Media Player. But don't be surprised if the playback may be choppy then.
Ditto666
8th November 2010, 14:52
Start > (All) Programs > ffdshow > Video decoder configuration
(left part: check list tree) [X] AviSynth || (right part: big text area to paste script - just without ***Source function, this comes from the decoder if "[X] add ffdshow video source")
Then this script will be used as post-processing filter for the just played video in your Media Player. But don't be surprised if the playback may be choppy then.
Oh, wait.. I'm confused. I thought you were telling me something else. I use AVISynth in FFDShow all the time, usually for better upscaling of SD content and to filter DVD and XVID content mostly. I thought you were saying to take some script that FFDShow uses for playing back video in general and incorporate that into my AVS script. I'm a bit confused.. Weren't you telling me something along the lines of adding to my script something which would then get the preview in AvsP to have the effects of DirectShow applied to it?
LigH
8th November 2010, 15:59
Now you are confusing me...
In some simple cases, AviSynth might be fast enough to process even the ffdshow decoder output in realtime so ffdshow can send its output to a DirectShow renderer.
This is not the intended use of AviSynth, though. Therefore I never expected you to know only this "secondary use".
AviSynth was originally created to be a frameserver which reads different file formats for "stupid" VfW video editors which completely rely on Windows' built-in VfW interface which reads AVI files for them (it is hooked into AviFile functions, providing frames from different source formats as if they would be frames in uncompressed AVI files). In addition, it allowed also filtering the video while reading it. Well ... this addition became its main job, obviously.
But the main use is still being a substitute for an intermediate AVI file being sent to a stand-alone encoder or VfW codec. And often scripts become complex, require some remarkable computation time, and can't be processed in real-time anymore. AvsP helps in developing more complex scripts with several clip variables, non-linear editing, user-declared functions, possibly even using import scripts with function declaration collections.
For scripts being so "trivial" and fast that they work in real-time in ffdshow, you may not really need AvsP as project manager.
Zarxrax
9th November 2010, 01:15
I still think it is confusing to see "Frame 10/11" listed when frame 10 is frame 11 due to different n-index.
However I do see that the timeline works accurately, though this is not obvious at high (~1000+) framecounts; so it's not a bug, just a design decision I disagree with.
It reports the frame numbers like that because this is how the frames are actually numbered in Avisynth, and the numbers are very important if you actually use any filters that require you to input a frame number.
For instance, trim(), deleteframe(), or something like that. Avsp shows you the correct frame to input into the filters. If it numbered them differently, then things would REALLY get confusing.
Ditto666
9th November 2010, 01:22
Now you are confusing me...
In some simple cases, AviSynth might be fast enough to process even the ffdshow decoder output in realtime so ffdshow can send its output to a DirectShow renderer.
This is not the intended use of AviSynth, though. Therefore I never expected you to know only this "secondary use".
AviSynth was originally created to be a frameserver which reads different file formats for "stupid" VfW video editors which completely rely on Windows' built-in VfW interface which reads AVI files for them (it is hooked into AviFile functions, providing frames from different source formats as if they would be frames in uncompressed AVI files). In addition, it allowed also filtering the video while reading it. Well ... this addition became its main job, obviously.
But the main use is still being a substitute for an intermediate AVI file being sent to a stand-alone encoder or VfW codec. And often scripts become complex, require some remarkable computation time, and can't be processed in real-time anymore. AvsP helps in developing more complex scripts with several clip variables, non-linear editing, user-declared functions, possibly even using import scripts with function declaration collections.
For scripts being so "trivial" and fast that they work in real-time in ffdshow, you may not really need AvsP as project manager.
OH!! That's what you were trying to say! I get it.. You were saying I should preview the script using FFDShow - to apply it on the original video.
That unfortunately wouldn't work too well. Aside from it being nowhere close to real-time and being a pain in the butt to skim to the parts I need to, I can't play the d2v file(s) using that method. I would have test that with individual VOB files and that can be problematic. Plus, I use AvsP for other purposes as well. So.. this brings me back to my original question. Is there a way to get the preview in AvsP to utilize DirectShow (which is what I only THINK will work to do what I'd like it to)?
Ditto666
9th November 2010, 01:27
Another thing I'm wondering, is there a functionality in AvsP to compare two scripts? Instead of deleting the part of the script you want to see the change between and hitting F5, then undoing the deletion and hitting F5 again - back and forth, back and forth, which is slow aside from being tedius, is there a way to do this at the press of a button? So yeah, basically a way to enter a script to compare between. Thanks guys.
Zarxrax
9th November 2010, 01:50
Another thing I'm wondering, is there a functionality in AvsP to compare two scripts? Instead of deleting the part of the script you want to see the change between and hitting F5, then undoing the deletion and hitting F5 again - back and forth, back and forth, which is slow aside from being tedius, is there a way to do this at the press of a button? So yeah, basically a way to enter a script to compare between. Thanks guys.
You can open multiple scripts at once in separate tabs.
Double click on a script to duplicate it into a new tab, then change something there.
Press f5 to get the focus on the video preview, and then you can use numbers 1-9 on the keyboard to instantly swap between the tabs.
Ditto666
9th November 2010, 01:52
You can open multiple scripts at once in separate tabs.
Double click on a script to duplicate it into a new tab, then change something there.
Press f5 to get the focus on the video preview, and then you can use numbers 1-9 on the keyboard to instantly swap between the tabs.
Oh, nice.. I just started using it so I didn't know multiple things can be opened at once <facepalm>. Lol, thanks!
LigH
9th November 2010, 12:45
@ Zarxrax:
Any interest in the previous suggestions / requests? Maybe even any progress in implementing them?
creaothceann
9th November 2010, 13:09
OH!! That's what you were trying to say! I get it.. You were saying I should preview the script using FFDShow - to apply it on the original video.
That unfortunately wouldn't work too well. Aside from it being nowhere close to real-time and being a pain in the butt to skim to the parts I need to, I can't play the d2v file(s) using that method. I would have test that with individual VOB files and that can be problematic.
d2v files can be played with MPCH (http://cccp-project.net/). VOBs can be opened with AviSynth via DGIndex (http://www.google.com/search?q=doom9+dgindex).:)
Zarxrax
9th November 2010, 17:46
@ Zarxrax:
Any interest in the previous suggestions / requests? Maybe even any progress in implementing them?
Someone else started coding on avsp a little while back, and some awesome new stuff got implemented, but he had to take a break and hasn't touched it for a while (its currently in a very buggy state and needs to be cleaned up).
Meanwhile, I also got sidetracked on some other stuff and haven't really been doing anything at all.
I might get back into it soon and start trying to clean up some of the bugs.
zdreamonz
22nd November 2010, 14:41
i can use avsp in win7 ,just help me :mad:
Tiberiust
22nd November 2010, 19:07
i can use avsp in win7 ,just help me :mad:
Assuming that was a question then the answer is 'yes'. I've used it for months in Win 7 Pro x64. Whatever problems there are, are usually to do with running out of memory, esp if yu work with HD.
T
MilesAhead
23rd November 2010, 00:34
Thanks.
By the way I'd be interested who had the idea to name the directory for 32bit DLLs on 64bit Windows "syswow64". Not very intuitive. :confused:
It's no worse than having the 64 bit dlls in system32 folder when you think about it!! ;)
MilesAhead
23rd November 2010, 00:35
Thanks for keeping this tool alive. :)
zdreamonz
23rd November 2010, 06:44
srr , i'm not good with English
What i mean is " i can't use Avsp mod(or the simpleone) in Win7 32 bit"
If someone have a version can run in Win 7 ,pls share for me.
Thanks alot .
sr for bad English
LigH
23rd November 2010, 08:18
AvsPmod is an application which is obviously written in Python (see the *.py files in the src directory). If the Python 2.5 runtime works, AvsPmod should work too.
You complain that AvsPmod does not work for you in Windows 7 32 bit; "how" does it not work? What happens when you try to run it? Do any error messages appear? Does it not start at all? Details, details, details...
zdreamonz
23rd November 2010, 12:30
i installed python 2.62
i use blender , and python work with this so i think python is fine .
when i open Avsp , i have this erro
http://ca8.upanh.com/16.699.21037421.w6q0/untitled2.jpg
http://ca6.upanh.com/16.699.21037423.awz0/untitled.jpg
thanks for your help .
Mounir
23rd November 2010, 12:57
Is there a way to create user sliders (http://avisynth.org/qwerpoi/UserSliders.html) for Virtualdub filters ? That'd be very useful for me at the moment. Looking forward to replies.
Gavino
23rd November 2010, 15:07
Since VirtualDub filters are called in the same way as any other (only the way of loading them is different, via LoadVirtualDubPlugin (http://avisynth.org/mediawiki/Plugins)()), then user sliders can be added to the call just as for 'normal' filters.
Mounir
23rd November 2010, 17:29
Sounds interesting, you seem enlightened, how would you script it for gradations curves? Looking forward to your reply
# 5) Gradations Curves
LoadVirtualdubplugin("C:\Program Files\VirtualDubMod\plugins\gradation.vdf", "gradation",1)
gradation(6,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000000000000000000000000000000000000000000000001020304050708090a0b0c0d0e0f1012131415161718191a1b1c1e1f2021222324252627282a2b2c2d2e2f3031323335363738393a3b3c3d3e3f4142434445464748494a4c4d4e4f5051525354555658595a5b5c5d5e5f6061626465666768696a6b6c6d6f707172737475767778797b7c7d7e7f8081828384868788898a8b8c8d8e8f9092939495969798999a9b9d9e9fa0a1a2a3a4a5a6a7a9aaabacadaeafb0b1b2b3b5b6b7b8b9babbbcbdbec0c1c2c3c4c5c6c7c8c9cacccdcecfd0d1d2d3d4d5d7d8d9dadbdcdddedfe0e1e3e4e5e6e7e8e9eaebecedeff0f1f2f3f4f5f6f7f8fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff","152222202020202020000ffff0000ffff0000ffff1600ffff0000ffff")
Mounir
23rd November 2010, 17:35
hmm the numbers are too long (can't edit the post, the edit button is "out of range" literally, anyways) but basically that's what i use:
LoadVirtualdubplugin("C:\Program Files\VirtualDubMod\plugins\gradation.vdf", "gradation",1)
gradation(6,"00010203040506070809[... too long]","152222202020202020000ffff0000ffff0000ffff1600ffff0000ffff")
Or maybe a simpler filter:
LoadVirtualdubplugin("C:\Program Files\VirtualDubMod\plugins\Brigthness Contrast Gamma.vdf",
"brightnesscontrastgamma",1)
brightnesscontrastgamma(-14, 6, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
Gavino
23rd November 2010, 18:08
OK, I see what your problem is.
For your simple example, you can just create the sliders as usual as described in the documentation (http://avisynth.org/qwerpoi/UserSliders.html).
The problem with the gradation filter is it has a string as a parameter, and a very long string too. There is a trick for getting sliders for strings (see the "Sliders for non-numbers" section), but it's not practical (or impossible) here unless you use only a small number of possible values for the long string. If you knew how to construct the string from individual parameters (I don't), it might be easier, using a separate function to construct the string.
zdreamonz
23rd November 2010, 20:16
anyone can fix that problem ...
Tiberiust
23rd November 2010, 21:22
anyone can fix that problem ...
Sorry, not much help because I'm not technically savvy enough to work out from that error box exactly what the problem is. BUT I can advise you that I also use it on my Win7 x32 laptop and Vista x32 in the office (ahem!). No problems whatsoever...
If you're saying that it cannot even start then I'd suggest yu have other system problems because AvsPmod is a stable, working, program. As I said previously, if it crashes whilst running, it's nearly always because yu run out of memory...
T
LigH
24th November 2010, 08:22
Really dumb question: Is there any VirtualDub filter which does a so extremely important job that it can't be substituted by a native AviSynth plugin? :rolleyes:
I can hardly imagine any feature which was not yet copied, or which e.g. Didée could not simulate and maybe even improve with MaskTools... :p
Ditto666
24th November 2010, 11:00
Really dumb question: Is there any VirtualDub filter which does a so extremely important job that it can't be substituted by a native AviSynth plugin? :rolleyes:
I can hardly imagine any feature which was not yet copied, or which e.g. Didée could not simulate and maybe even improve with MaskTools... :p
I remember checking this out at one point and it turns out, no, there isn't. I was also curious :p
Tiberiust
24th November 2010, 13:38
Really dumb question: Is there any VirtualDub filter which does a so extremely important job that it can't be substituted by a native AviSynth plugin? :rolleyes:
I can hardly imagine any feature which was not yet copied, or which e.g. Didée could not simulate and maybe even improve with MaskTools... :p
filter itself maybe not, but I find the blend filter feature, the ability to turn on/off and adjust the strength of a filter with a simple mouse drag as yu go thru the video, very useful indeed.
T
Boulotaur2024
24th November 2010, 13:53
I'm at work so I can't provide a screenshot, but is there an option to deactivate the contextual "intellisense" tooltips that popup when typing the name of a function ? These can get pretty annoying and obtrusive especially when writing the arguments of a MT() function...
it's a very neat editor otherwise of course !
EDIT : thanks Gavino :)
Gavino
24th November 2010, 14:21
filter itself maybe not, but I find the blend filter feature, the ability to turn on/off and adjust the strength of a filter with a simple mouse drag as yu go thru the video, very useful indeed.
That's a valid argument for using filters in VirtualDub, but doesn't apply when using VDub filters inside Avisynth, which was I think the point of the question.
is there an option to deactivate the contextual "intellisense" tooltips that popup when typing the name of a function ?
Options->Program settings->Text 1->Show filter calltips
zdreamonz
25th November 2010, 16:30
Sorry, not much help because I'm not technically savvy enough to work out from that error box exactly what the problem is. BUT I can advise you that I also use it on my Win7 x32 laptop and Vista x32 in the office (ahem!). No problems whatsoever...
If you're saying that it cannot even start then I'd suggest yu have other system problems because AvsPmod is a stable, working, program. As I said previously, if it crashes whilst running, it's nearly always because yu run out of memory...
T
thank you ,
i don't know why, but even my laptop with the fresh copy of Win still not working :mad:.Hope avsp will update somedays :)
kypec
26th November 2010, 09:39
thank you ,
i don't know why, but even my laptop with the fresh copy of Win still not working :mad:.Hope avsp will update somedays :)
Just to be sure...you do have Avisynth installed on your system, right? 32-bit version (preferrably 2.5.8) because 64-bit Avisynth can't work with AvsP/AvsPMod.
zdreamonz
26th November 2010, 21:10
yeah,i installed 2.5.8,python 2.5.4 in winxp , avsp work well ,but in win7 ,nothing can make it workable
wonder why ... only things now is hope for the next update of avsp (just hope) :D
kypec
27th November 2010, 09:55
Perhaps a blind shot from me but...why did you install Python at all? I've never needed to install any Python separately be it for WinXP or Win7. AvsP & AvsPMod had always worked, all I did was to unzip them wherever I wanted to and launched AvsP.exe. Maybe there's a version mismatch of your installation of Python environment and what has been AvsP(Mod) compiled with.
LigH
27th November 2010, 14:27
I have installed Python 2.4, 2.5 and 2.6 on a machine (for Blender and other tools, each requires a different version), and don't have issues running AvsPmod. On Windows XP though... but still I doubt the pure existence of Python installation should cause any issues.
GRKNGLR
2nd December 2010, 16:34
delete post
Zarxrax
3rd December 2010, 01:58
The new version, the main screen buttons can be added to the import and loadplugin?
I don't understand.
GRKNGLR
3rd December 2010, 20:50
I don't understand.
sorry for my bad english, i got it corrected thanks to a friend now.
is it possible to add import and loadplugin buttons on the main screen? (buttons that will open explorer windows, i mean)
BTW, is there a planned addition of Avisynth64 support? it would be very nice to be use it on x64 systems.
Zarxrax
3rd December 2010, 20:54
Avsp does not currently have a toolbar with buttons, and I don't think that adding one just for those functions would be worthwhile.
You can load those things via middle-click, though.
And there is not plans for 64bit support right now, unless someone else can write the code.
Mounir
22nd December 2010, 09:01
I have a problem with UserSliders, i'm trying to create one for QTGMC which use "non numbers".I have read the tutorial Here (http://avisynth.org/qwerpoi/UserSliders.html) but it don't seem to work, my script:
function QTGMCmode(int index){ return Select(index, "Very Slow", "Slow", "Medium", "Fast") }
Avisource("C:\MyVideo.avi")
QTGMC(Select([<"Test",1,2,3,4>]),"Very Slow", "Slow", "Medium", "Fast"))
To me i have followed the instructions by the book so i don't see what's wrong really, help is welcome.
The error i get is the following:
unexpected character "[" line 3
Gavino
22nd December 2010, 10:24
QTGMC(Select([<"Test",1,2,3,4>]),"Very Slow", "Slow", "Medium", "Fast"))
There should be only three numbers after the slider name: min value, max value and initial value.
Also, you have an extra bracket in there.
QTGMC(Select([<"Test",1,4,3>],"Very Slow", "Slow", "Medium", "Fast"))
Mounir
22nd December 2010, 10:47
You're right about the 3 values "min,max,init" but it doesn't seem to work Gavino :/
Have you tried it in avsp at least ?
Current script:
function TestFunction(int index) { return Select(index, "Placebo", "Very Slow", "Slower", "Slow", "Medium", "Fast", "Faster", "Very Fast", "Super Fast", "Ultra Fast", "Draft") }
Avisource("C:\MyVideo.avi")
QTGMC(Select([<"Preset",1,11,2>], "Placebo", "Very Slow", "Slower", "Slow", "Medium", "Fast", "Faster", "Very Fast", "Super Fast", "Ultra Fast", "Draft"))
I'm not sure why it won't work but i think it's because TGMC is a .avsi and inside it i can find this:
# Select preset / tuning
Preset = default( Preset, "Slower" )
pNum = (Preset == "Placebo" ) ? 0 : \
(Preset == "Very Slow" ) ? 1 : \
(Preset == "Slower" ) ? 2 : \
(Preset == "Slow" ) ? 3 : \
(Preset == "Medium" ) ? 4 : \
(Preset == "Fast" ) ? 5 : \
(Preset == "Faster" ) ? 6 : \
(Preset == "Very Fast" ) ? 7 : \
(Preset == "Super Fast") ? 8 : \
(Preset == "Ultra Fast") ? 9 : \
(Preset == "Draft" ) ? 10 : 2
Gavino
22nd December 2010, 13:47
You're right about the 3 values "min,max,init" but it doesn't seem to work Gavino :/
Have you tried it in avsp at least ?
I've just tried it (although with a different function I had in an avsi), and it works for me. Do you still get the same error message, or something different now?
i think it's because TGMC is a .avsi and inside it i can find this:
I don't think AvsP looks inside the function, it just converts the slider value into a number (if you have the right syntax), so the actual contents of QTGMC should not affect its operation.
BTW Your function TestFunction is redundant as you don't use it.
If you want to use it, you could replace your QTGMC line with
QTGMC(TestFunction([<"Preset",1,11,2>]))
which should work just the same.
Mounir
22nd December 2010, 14:35
Script error: invalid arguments to function QTGMC that's what i get
I use QTGMC2.51.avsi for the record, you?
Gavino
22nd December 2010, 14:46
Script error: invalid arguments to function QTGMC that's what i get
I use QTGMC2.51.avsi for the record, you?
As I said, I wasn't actually using QTGMC itself.
Your problem is that 'preset' is not the first argument in QTGMC's function definition, so you need to pass it by name:
QTGMC(preset=Select([<"Preset",1,11,2>], "Placebo", "Very Slow", "Slower", "Slow", "Medium", "Fast", "Faster", "Very Fast", "Super Fast", "Ultra Fast", "Draft"))
or
QTGMC(preset=TestFunction([<"Preset",1,11,2>]))
Mounir
22nd December 2010, 15:12
Yes, i think you got it working Gavino, funny i was sure there was something to do with this Preset = i just didn't know where to place it.You're the man
Kripsy
25th December 2010, 23:38
I'm having an issue I haven't seen reported on yet: When I double click the AvsPMod exe, it starts up and leaves a footprint in the memory but doesn't open a window. I'm using a fresh install of Windows 7 64bit with Avisynth 2.5.8. No error is reported, just no window opens.
I've tried running it in compatibility mode and with administration rights but nothing helps.
The memory dump looks like this: http://freetexthost.com/5ekmq0qpg0
Any help would be greatly appreciated. I use this tool almost everyday!
Kripsy
26th December 2010, 07:22
I discovered that the problem had to do with something in my plugins folder that I copied over from my old 32bit install. I'm not sure exactly what, but it's fixed now that I got rid of the contents.
bidmead
6th January 2011, 17:40
Only just discovered this forum this afternoon. I was combing the forums to see if qwerpoi had by any chance re-emerged. My last contact with him was in mid-2007. I tried to connect with him again in mid-2009 when I was putting together my Avisynth piece for The Register (http://www.theregister.co.uk/2009/06/25/beginners_guide_avisynth/), but he seemed to have vanished without trace. Anyone know where he might be?
But in any case, many congrats to Zarxrax for picking up the baton. I've been an avid (ha!) fan of AvsP/Avisynth since the combo got together, and think it's best movie editor at any price for the stuff I do, which is mostly repairing TV transmissions of movies. Very nice to see that the show is back on the road, Zarxrax.
--
Chris
Zarxrax
6th January 2011, 18:56
I tried to contact qwerpoi several times but never got any reply.
Anyways I thought I will update everyone on the current state of AvsPmod.
Another fellow began coding on it and migrating it to more recent builds of python and wxpython. He also started implementing some exciting changes into it. Unfortunately, this was left in a half-finished state, and I have not been able to contact him for some time now. Hopefully he will pop back up at some time. I know that I am unable to finish his work without some guidance, so at best, I could maybe look at backporting some of his changes into the older code base, if I think it seems worthwhile.
ANGEL_SU
7th January 2011, 23:17
i modify a little python code and run it successfully under python2.7+wxpython2.9+Windows XP(32bit). see attached...
JEEB
8th January 2011, 03:19
It's a diff, post it at pastebin.com. Not to mention that forum uploads need to be approved and that usually takes time.
So yeah, for files use a third-party uploader like mediafire (that doesn't have captchas etc.), and for diffs etc. use pastebins.
Thank you.
bidmead
8th January 2011, 10:46
I'm wondering if anyone here (Zarxrax?) knows the core AvsP code well enough to make the following mod. It may well be fairly trivial.
Instead of the Trim Editor writing out a cut as:
Trim(w,x) ++ Trim(y,z)
...could it be set (perhaps a user option switch) to do:
Dissolve(Trim(w,x), Trim(y,z), 0)
At a minimum we might have a discussion here about the feasibility and/or value of this mod.
--
Chris
Gavino
8th January 2011, 12:03
...could it be set (perhaps a user option switch) to do:
Dissolve(Trim(w,x), Trim(y,z), 0)
Possibly a useful feature, but not with overlap=0 in the Dissolve, which would make it exactly the same as the original Splice.
bidmead
8th January 2011, 14:17
Well spotted, Gavino... :-)
Yes, that was rather the point.
The function is identical to a splice, but easily editable into a dissolve.
--
Chris
Gavino
8th January 2011, 15:16
Ah, sorry Chris, I wondered about that after I posted.
But if the feature is to be an option, the overlap parameter should be chosen by the user and inserted by AvsP, not edited manually afterwards.
bidmead
8th January 2011, 17:05
Well, whatever. This might be the place for a slider variable, but that's not the way I tend to work.
When I first set a splice I know the exact amount I want to cut, but not what the best dissolve overlap, if any, might be. I want to play the cut first, and then decide.
So after the Trim Editor has delivered, say:
Trim(0, 700) ++ Trim(1112, 5649)
I'll convert this to:
Dissolve(Trim(0, 700) , Trim(1112, 5649), 0)
(qwerpoi wrote me a macro to do this years ago...)
...then add my own inspection Trim around the splice using another macro:
Trim(501,901) #Inspection Trim
... so that I can encode and run that section to see how it looks and sounds. (The system I use doesn't have enough processor power to play an Avisynth dissolve in real-time).
This tells me enough to know whether to leave this as a cut or what depth of dissolve is going to work best, and I just edit the overlap parameter by hand. Then optionally re-encode the inspection selection for a final check before removing the inspection trim and moving on to the next splice.
So I'm generally going to start with 0 as the overlap parameter so that I can see what a straight cut is going to look and sound like ("Never dissolve when you can cut..."). Not much point, then, in adding more flourishes to the GUI just to collect this parameter.
But it might make sense for the preferred parameter (0, 25 or whatever) to be set alongside the preference switch that decides whether the Trim Editor is going to deliver a cut or a dissolve. That might be a later refinement, but my inclination at the start is to keep it simple.
--
Chris
Zarxrax
8th January 2011, 17:32
I was thinking this could work as a macro, then I saw you mention that qwerpoi wrote you one.
Was the macro insufficient for what you need?
bidmead
8th January 2011, 18:49
The macro requires you to copy the original line and paste it into a text box. It'd be much simpler for the Trim editor optionally just to write out the splice as a zero-frame dissolve. If -- as I'm supposing -- the mod to the core code is fairly trivial.
2Dissolve.py
entry = avsp.GetTextEntry('Select and copy the trim commands here:')
splitentry = entry.split('++')
if len(splitentry) == 2:
newString = 'Dissolve(%s, %s, 25)' % (splitentry[0], splitentry[1])
avsp.InsertText(newString, pos=None)
avsp.SaveScript()
As you can see, this has a 25-frame dissolve parameter hard-coded into it.
--
Chris
Zarxrax
8th January 2011, 19:57
Alright, well I'll take a look into that a little bit later.
jmac698
9th January 2011, 06:17
Btw, there is a small bug; the status line will print off the screen if you add some parameters. There's two parts, one should be left justified and the other should be right justified.
They are just put together as a string now with an arbitrary space between them, meaning the left part can make the right part go off the edge.
Kripsy
9th January 2011, 11:28
Feature request: A way to copy the time code given by the frame number and fps to clipboard.
bidmead
9th January 2011, 12:42
I've been wading through qwerpoi's Python code, appreciating the huge amount of work he's done on this, but simultaneously also realising that my early forays into Pascal in the 80's really haven't left me equipped to understand this newfangled OO stuff.
Clearly I must do more work on this. In the meantime, is anyone here able to point me in the direction, however vague, of the Trim Editor code, and in particular, of course, the stanza currently responsible for writing out a splice as "Trim(w,x) ++ Trim(y,z)"?
--
Chris
Gavino
9th January 2011, 13:38
is anyone here able to point me in the direction, however vague, of the Trim Editor code, and in particular, of course, the stanza currently responsible for writing out a splice as "Trim(w,x) ++ Trim(y,z)"?
I don't have AvsPmod, but in the original AvsP, it's function InsertSelectionTrims in source file AvsP.py.
bidmead
9th January 2011, 15:50
Thanks, Gavino. No idea why I didn't spot that myself, sorry.
So it looks to me as if the assignment to trimText is what needs changing.
trimText = ' ++ '.join(['Trim(%i, %i)' % (start, stop) for start, stop in selections])
I take it that "selections" is an array holding the in and out points, so we'd need something along the lines of (I don't know Python at all):
temptrimText = ' , '.join(['Trim(%i, %i)' % (start, stop) for start, stop in selections])
# gives us "Trim(w,x) , Trim(y,z)"
# then add the Dissolve wrapper
trimText = ''.join('Dissolve(' , temptrimText, ',0)'
Might this work?
--
Chris
bidmead
9th January 2011, 16:20
Perhaps I should explain the importance (to me at least) of this:
I use AvsP (and now AvsPmod) mostly for rescuing movies from the ravages of the broadcasters. The main assault comes from ad-insertion. It's great that the Avisynth/AvsP combo offers true frame-accurate cutting, but very often this isn't enough if your aim is to remove the ad and leave no suggestion it was ever there in the first place. A straight cut rarely suffices -- there'll be an awkward visual segue, or the sound will be prematurely faded, or whatever.
Avisynth offers a whole bundle of tools to fix this, but but for ad-removal mostly you just want a quick fix that gives a decent result. The all-purpose simple solution is the dissolve, particularly as you have control over the length of the dissolve. A three-frame dissolve, virtually indistinguishable from a cut, to smooth out a sound jump; a 25-frame dissolve to mask an awkward visual transition; a leisurely 75-frame dissolve, where the narrative justifies it, to cover some of the nastier problems.
So more often than not I want the Trim Editor to deliver a dissolve. As a straight splice is just the special case of a dissolve where overlap=0, that's how I'd prefer the Trim Editor to write out the cut.
--
Chris
Zarxrax
9th January 2011, 17:48
bigmead: that change looks to me like it would work. Have you tried running it? I actually don't even have python installed right now so I can't try building it.
If you want to test it yourself (im guessing you don't know how, since you asked if the code would work), you simply need to install python 2.5.4 and wxpython 2.8 for python 2.5.
http://www.python.org/download/releases/2.5.4/
http://www.wxpython.org/download.php#stable
Then you can simply run the modified AvsP.py
ANGEL_SU
9th January 2011, 17:50
Might this work?
Chris
Yes, I try to add 5 lines to source code and it seems to work!
1: At function 'createTrimDialog()', add one more choice:
'_(At script end (use Dissolve))'
2: At beginning of function 'InsertSelectionTrims()', add:
useDissolve = insertMode / 3
insertMode %= 3
3: Just right after the statement 'trimText = ...', add:
if useDissolve:
trimText = 'Dissolve(%s, 0)' % trimText.replace('++', ',')
bidmead
11th January 2011, 06:32
OK, finally got round to installing python as Zarxrax suggested. And immediately discovered that I wasn't kidding about not knowing Python at all. I'm grateful to you all that my suggested amendment wasn't howled down. In the first place it's missing a bracket at the end (you don't need to know Python to realise that), and in the second place the join function only takes a single argument, not the three I was trying to pile into it.
Angel_Su, you are the hero. :-) I haven't yet implemented the optional switch you propose (but I shall), but the rewrite of trimText you suggest works exactly as I would wish.
Many thanks. Should we offer this as an official patch?
--
Chris
bidmead
11th January 2011, 07:02
Angel_Su, did you mean:
radioBoxTrim = wx.RadioBox(
dlg, wx.ID_ANY, _('Selection options'),
choices=(
_('Keep selected regions'),
_('Keep unselected regions'),
_('At script end (use Dissolve)')
),
...because this doesn't seem to work for me. It creates a third radio button, which of course means that the other two buttons are unselected.
The "Use Dissolve" switch needs to go elsewhere, doesn't it?
--
Chris
Zarxrax
11th January 2011, 18:30
Many thanks. Should we offer this as an official patch?
Well it seems kind of such a specific thing, I'm not really sure if any others would need this functionality.
Opinions?
ANGEL_SU
11th January 2011, 18:47
@bidmead
search 'choiceBoxInsert':
...
# Create the choice box for insertion options
choiceBoxInsert = wx.Choice(
dlg, wx.ID_ANY,
choices=(
_('At script end'),
_('At script cursor'),
_('Copy to clipboard'),
_('At script end (use Dissolve)'), #add from here
_('At script cursor (use Dissolve)'),
_('Copy to clipboard (use Dissolve)')
)
)
...
bidmead
11th January 2011, 20:01
@Angel_Su Wouldn't the natural place for the switch be on a level with "Mark video frames inside/outside selection" and physically immediately under this in the dialog panel?
@Zarxrax Actually it's a _less_ specific thing -- a generalisation of the splice, recognising that a splice is just a special case of a dissolve where overlap = 0. Good program designers are always looking for ways like this to expand functionality without piling in new features. :-)
--
Chris
ANGEL_SU
11th January 2011, 23:37
@Angel_Su Wouldn't the natural place for the switch be on a level with "Mark video frames inside/outside selection" and physically immediately under this in the dialog panel?
Yes, it would be better. See this. (http://pastebin.com/bW2dBmym)
bidmead
14th January 2011, 06:43
That does look great -- many thanks, Angel_Su. I'm going to have to remind myself after many years how to apply patches. And I have to confess that although thanks to Zarxrax I have the python run-time working reliably on my system here (a Win XP virtual machine running on Mac OS X) I haven't been able to achieve a successful compilation, although I've faithfully (I think) followed qwerpoi's instructions.
--
Chris
bidmead
19th January 2011, 21:19
OK, I seem to have applied the Angel_Su patch correctly, and can run the modded code in the Python environment. But I'm unable to compile it for some reason I don't understand.
To cut the problem down to its basics I'm ignoring the patch and have tried recompiling the existing unmodified AvsPmod source fresh from a new download. I don't seem to be able to do that either.
I've installed Python 2.5.4 in its default directory, C:\python25 and within that directory I've installed upx version 3.07 in its own C:\Python25\upx directory. I've checked that these paths concur with the paths in AvsP_build.py and AvsP_i18n.py and that I don't need to modify them.
I run AvsP_build.py against Python. The run begins with a bunch of minor objections to the code:
*** AvsP.py:55: Seen unexpected token "s"
*** AvsP.py:62: Seen unexpected token "s"
*** wxp.py:70: Seen unexpected token "s"
*** pyavs_avifile.py:50: Seen unexpected token "s"
Subsequently the compilation throws up one red error message:
upx: dist\lib\select.pyd: NotCompressibleException
(I need to pause the run with ^S to see these messages, as apparently no permanent log is written)
I end up with a pair of new directories, build and dist, but neither of them contains the final zipped executable.
The whole experiment is easily repeatable. Once the Python and upx directories have been installed as described above, simply copy the downloaded AvsPmod 2.0.5.zip into a temporary file, temp, unzip it to create the AvsPmod 2.0.5 directory inside temp. Move down into the src directory, right click on AvsP_build.py and choose Open With python. The compilation runs. At the end of any failed run it's easy enough to go back up to the temp directory, delete the whole AvsPmod 2.0.5 directory and start afresh by unzipping the AvsPmod 2.0.5.zip file again.
Can anyone give me a clue about what's going wrong here?
--
Chris
Zarxrax
19th January 2011, 21:42
I remember having some sort of similar issues when I first started trying to compile it. I can't remember what I did to fix right now. But I will try to check into this soon, I have just been so busy lately.
But by the way, you don't need to compile it to run. You can just execute AvsP.py directly.
bidmead
20th January 2011, 11:12
Thanks, Zarxrax. Any tips would be invaluable.
> But by the way, you don't need to compile it to run. You can just execute AvsP.py directly.
Yes, as I say, I can run this in the Python environment. But I have to move the tools and macros directories down into the src directory, and with all the separate libraries it gets a bit messy.
--
Chris
ANGEL_SU
20th January 2011, 13:42
@bidmead
upx is not necessary, that is, if it began to run, the distribution should have been finished. Check directory 'dist' to see if files are really generated there.
Zarxrax
20th January 2011, 18:30
bidmead: i believe the problem is that you may be lacking py2exe
I have uploaded it here: http://www.megaupload.com/?d=DXS6TYOY
This version works with python 2.5
(well, maybe not, but you get similar errors if you lack py2exe. The unexpected token stuff just seems to come up regardless)
Could someone help compile one for python 2.7 for me?
ANGEL_SU
20th January 2011, 19:53
Could someone help compile one for python 2.7 for me?
Just built one, download from here (http://www.mediafire.com/?4vx2zborlczcgu2).
bidmead
20th January 2011, 20:53
> i believe the problem is that you may be lacking py2ex
Thanks, I was looking for that. I notice that the src directory includes a log for it, but somehow omits the executable.
Any suggestion about the best place to put it? As it doesn't seem to be mentioned in the setup code I assume it just needs to accessible somewhere in $PATH. But for tidiness sake, it really should be in AvsP_build.py, shouldn't it?
--
Chris
bidmead
20th January 2011, 21:08
Just built one, download from here (http://www.mediafire.com/?4vx2zborlczcgu2).
Very fine, thanks, Angel_Su. And your code (like the patch you offered earlier) makes the distinction between a single trim and a double trim (a splice), which I'd been too lazy to discuss here.
The variable overlap parameter is a nice touch too. Unforch it doesn't seem to offer 0 as an option, and overrides a manually entered 0. Is this an oversight, or am I missing something?
--
Chris
ANGEL_SU
20th January 2011, 23:46
@bidmead
1. See this diff (http://pastebin.com/zazEvh9T). Now, the minimum overlap is zero(default) and the maximum is 999.
2. My distribution(at #230) also contains modified source code. Could you directly run AsvP.py to see if it is backward-compatible? I never test it under py25+wx26.
Zarxrax
21st January 2011, 01:07
Just built one, download from here (http://www.mediafire.com/?4vx2zborlczcgu2).
Thanks, but I was referring to py2exe.
The builds that they have on their sourceforge page are really old and contain some bugs that have been fixed in the source.
In any case, your build seems to work well. When I build it here (with your patch to make it compatible with python 2.7), it just crashes when I run it. I think this has something to do with some required dll files. I'll look through your build and try to figure it out.
ANGEL_SU
21st January 2011, 01:55
Thanks, but I was referring to py2exe.
The builds that they have on their sourceforge page are really old and contain some bugs that have been fixed in the source.
I don't know how to compile py2exe from source. I just installed pre-build binary 'py2exe-0.6.9.win32-py2.7.exe' and it was downloaded from SourceForge...
PS: Ok, I build the latest py2exe 0.6.10dev for python 2.7, you can download from here (http://www.mediafire.com/?vjv1ybkz184512o)
bidmead
21st January 2011, 10:14
I've tried putting py2exe in c:\Windows\system32 (ie, in $PATH) and also in C:\Python25. I'm still getting the same "upx: dist\lib\select.pyd: NotCompressibleException" error (which seems reasonable, as it doesn't relate to py2exe).
The ../dist and ../build directories are being created, and ../dist ends up filled with a bunch of .dlls. But no final zip file.
It seems clear that the compilation instructions bequeathed to us by qwertoi aren't complete. Would anyone care to clean these up (py2exe at least needs to be documented)? And I'd love to know where py2exe is supposed to be installed.
--
Chris
ANGEL_SU
21st January 2011, 10:55
I've tried putting py2exe in c:\Windows\system32 ...
py2exe is a python module, not a commandline tool. The executable file what you got should be an installer, just double-click to run it firstly.
Zarxrax
21st January 2011, 14:47
In AvsP_build.py you could try commenting out the lines related to UPX.
Angel_Su, thanks for the py2exe :)
bidmead
23rd January 2011, 16:21
Compilation of ../src
=============
I'm finding early signs of my frustration with this, so let's see if we can be scientific about it.
1) It's clear that the ../src stuff in the avsp and avspmod distros is messed up in some way that makes it impossible to run a compilation "out of the box".
2) Some of us in this forum have run successful compilations.
3) Therefore some of us in this forum have locally fixed the ../src mess in one or both of the distros.
Is there something wrong with these premises? Or the logic?
If not, the question then arises: do we want to make an easily compilable ../src generally available? Or is it more fun to leave individual contributors to this forum to discover by trial and error for themselves how to fix this? This certainly affords -- as I can testify -- many hours of harmless amusement, and is probably very character-forming. So I can see arguments on both sides.
What does the team think?
--
Chris
Zarxrax
23rd January 2011, 18:42
First of all you need to make sure python and wxpython and py2exe are installed. Also have upx somewhere. I have it in my python directory.
In the /src/ folder there are several files that have to be modified because they contain paths to various things, and the paths will probably be different on your system. I know the following files may need modification, but there might be others:
AvsP_build.py
AvsP_i18n.py
AvsP_setup.py
Next, various files like readme.txt and filter.db might need to be copied into the src folder. I'm not sure about this step. When compiling it will give an error message saying it cant find a file. If it says that, move the file into the src folder.
Some dlls like msvcp71.dll might need to be in your python directory. Again, I'm not sure about this step.
bidmead
23rd January 2011, 20:19
Thanks, Zarxrax, but can we get this pinned down? It seems qwerpoi's notes.txt needs a rewrite. And py2exe (or at least a link to it) needs to be included in ../src.
If I had a working ../src I'd be very happy to write this all up accurately so that making the compilation work is no longer black magic. But I don't, so it kind of falls to those who have got this working to straighten out the facts.
Does AvsP_setup.py need to be fixed up to match local file locations? It's not on qwerpoi's list, but if it should be, let's put it on there. Are there other files that have to be fixed up? Let's find out and add them too.
It does seem that filterdb.dat (not filter.db) needs to be copied into ../src. And, as you suggest, there may be others. Can we find out what they are, and actually put them in the right place, so that the AvsPmod distro, of which I'm sure we're all very appreciative, stays alive to carry on qwerpoi's work.
There seems to be a fair bit of Python expertise here in the forum. Do we need any outside help with this? If so, let's get it.
--
Chris
Zarxrax
23rd January 2011, 21:10
I will write up some better compilation instructions once I release the next version. Due to Angel_Su's patch to get it working in python 2.7, it will change things a bit. I've already migrated all my stuff to 2.7 now, so Its not really worth it for me to go back to the 2.5 stuff and mess around with it anymore.
Right now I'm going through bits of code and stuff that people have contributed over the past several months. Hopefully I can find the time to push out the new version (mainly just some bugfixes and stuff) in the next week or two.
ANGEL_SU
24th January 2011, 03:29
@bidmead
Yes, the old script is not good enough. You need copy somthing into src folder, otherwise you will encounter some error. The information related is all in Avsp_setup.py. To handle it, you need to learn a little more Python.
For distributing without trouble, I have a new build here. (http://www.mediafire.com/?572hy4flh2yz4if) Just directly double-click AvsP_bulid.py to see if it can work correctly.
Due to Angel_Su's patch to get it working in python 2.7, it will change things a bit. I've already migrated all my stuff to 2.7 now, so Its not really worth it for me to go back to the 2.5 stuff and mess around with it anymore.
The purpose of my patch is just for compatibility. It is convenient for developers not to setup another new environment. Try my new build above. Both main code and distributing code still work under python 2.5 + wxpython 2.6 and also run under latest python 2.7 + wxpython2.9.
Floatingshed
27th January 2011, 18:50
I am having problems with defining my own user functions. I can create them and they save but if I attempt to edit one I'm told that renaming is not allowed. So I deleted it and recreated it with a different name but the old one (resizews) seems still to be referenced somewhere and causes this error:
Traceback (most recent call last):
File "AvsP.pyo", line 5965, in OnMenuOptionsFilters
File "AvsP.pyo", line 8621, in ShowFunctionDefinitionDialog
File "AvsP.pyo", line 1950, in __init__
File "AvsP.pyo", line 2002, in CreateWindowElements
KeyError: u'resizews'
Now I can't get into the functions dialogue at all... Please help. (This is version 2.0.5).
Gavino
27th January 2011, 19:52
Try editing the file filterdb.dat (from the AvsP program folder) in a text editor.
Best to make a backup first in case something goes wrong.
Edit: Some info might be stored in options.dat - see this thread.
Floatingshed
27th January 2011, 22:05
filterdb.dat seems to contain the default filter parameters, my modified ones seem to be in options.dat.
I carefully removed all mentions of my filter from options.dat and AvsPmod simply wouldn't start! Glad I backed it up.
Any more thoughts chaps?
ANGEL_SU
28th January 2011, 08:41
Operating options.dat in a text editor is dangerous. Try
this tool (http://www.mediafire.com/?rdnp074vdew6mxl). It should be much safter.
Floatingshed
28th January 2011, 10:57
OK. Thanks, I'll give it a try.
RedDwarf1
3rd February 2011, 20:13
A useful feature would be the ability to stop video decoding or updates by pressing a key such as ESC. When running a heavy script and stepping through it, AvsP/mod can take a great deal of time before it will respond. If it was possible to flush the video to get control back to AvsP it would be helpful.
Yellow_
8th February 2011, 23:31
Trying to run this on Linux + Wine, works great except can't get a video preview inside AVSP only via external player which creates a new instance every refresh.
I get a lilac coloured box as video preview and when I adjust levels the box lilac box brightens just don't get the video preview. Loading image sequences like jpg's gives me a black preview.
Any ideas what player is used internally?
Zarxrax
9th February 2011, 00:30
Trying to run this on Linux + Wine, works great except can't get a video preview inside AVSP only via external player which creates a new instance every refresh.
I get a lilac coloured box as video preview and when I adjust levels the box lilac box brightens just don't get the video preview. Loading image sequences like jpg's gives me a black preview.
Any ideas what player is used internally?
I'm pretty sure it just uses windows functions for displaying the video, not an actual player.
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.
Yellow_
12th March 2011, 08:38
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.
No your right it doesn't of coarse, but if I'm creating a script in AVSPmod to use in another application that flips (and often jumping between those apps) I add flipvertical() to the script otherwise it's upside down in the other app, however that also flips it in AVSPmod display, so I have to comment out in while writing the script and then comment it back in when using it externally. However if there was an option in AVSP to flip the preview just like there's one for preview of Rec601/709 PC601/PC709. The same applies really, why add preview control over 601/709 when a user could just add a matrix conversion line to the script like we used to do when AVSP was Rec601 display only and commented that out when going to external app. Because it makes things easier to have it as an option in the UI. :-) Same logic applies to flip preview.
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.
Sure and on reflection doubles work on adding tooltips to filter.dat, doing all the parameters is enough work especially when some scripts have sketchy doc's. Struggling with SmoothAdjust levels, curves etc at the moment. :-)
Could do with some sort of online database where users add the filter.dat stuff and anyone could just extract off a dat file from time to time then there must be quite a few of us duplicating entries and trying to keep it alphabetical. :-)
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.
Yes that was the '#' out or in, on long scripts or for where a user is not a script writer, it seems to make sense to be able to toggle on/off in a collapsed side bar view than go scrolling up and down lines and lines of a script or use the search, a graphical side bar tick box for each function would indeed be neat.
Waveform/vectorscope and other visualisations are available from various plugins or possibly built-in avisynth functions.
Yes but these form part of the image frame? and again if going to an external app to process the script they have to be disabled?
Dogway
12th March 2011, 10:30
Dogway: you can import/export function definitions.
How??
-let me add another bugfix: sometimes when saving the script in AvsP with ctrl+S, when the .txt is opened in notepad format is screwed, read no spaces, no line breaks etc.
-another good one would be option to export options, (GUI, settings), together or separated, but independent of function definitions (maybe). copying options.dat doesnt work for me.
Take my suggestions as constructive critics, I already use AvsP in a way that works for me with its workarounds.
Zarxrax
12th March 2011, 16:54
Yellow: When you say it like that, I guess it makes sense to offer the flipping option. May I ask what apps you experience this problem with? I have never encountered something like that.
Dogway: Options > Avisynth function definition > there are import and export buttons along the bottom
Yellow_
12th March 2011, 17:10
Yellow: When you say it like that, I guess it makes sense to offer the flipping option. May I ask what apps you experience this problem with? I have never encountered something like that.
Blender Video Editor and Node Compositor which uses FFmpeg to handle .avs files, guess it's Blenders image buffer.
And Editshare's Lightworks from memory did it too using the avs filesystem to create fake .avi's.
The flipping is something to do with historic MS Windows behavior I think.
Dogway
12th March 2011, 18:26
When I export function definition what I get is a .txt with some (not all) user function definitions.
Then I open AvsP 2.0.7 click on Import, select my .txt (also tried with avs), and I get an error saying "Unrecognized files".
ANGEL_SU
12th March 2011, 19:41
When I export function definition what I get is a .txt with some (not all) user function definitions.
Then I open AvsP 2.0.7 click on Import, select my .txt (also tried with avs), and I get an error saying "Unrecognized files".
1. Only customized filters will be exported. You can copy/modify others from 'filterdb.dat' which is a general text file and has the same format as exported file.
2. Importing from the customization file is broken in v2.0.7. It's my fault that I forgot to comment out a line of testing code. You can try importing from options.dat or keep on using old options.dat(it is harmless).
Dogway
12th March 2011, 20:14
by customized you mean the user function definition tab right?
I tried importing my 2.0.5 options.dat and it worked. But as you said only those from the user function tab.
I also "customized" other tabs function definitions but I guess it was kinda pointless.
copying both filterdb.dat and options.dat to the folder directly didnt work, I got an error KeyError u'unsharp.... whatever, I will wait for next release, thank you!
jmac698
12th March 2011, 20:15
Something I've been thinking about for a while is a version, dependency, and order of operations checker. For example, often you see a new script posted and want to try it out, then you start a big search for all the dependencies (where's ssetools? Which version of Clense?)
I've investigated some ways of making it easier, for example I found an opensource software updater which scrapes webpages to find the version #, I could then just ask all posters to include a special string in their posts and we could all update their scripts automatically.
The part where avsmod could really help is to make it easy to mark dependencies. When saving a script, have an option to insert text comments at the beginning where avspmod gives the dll name and checksum of used plugins. How to tell? The syntax highlighter knows the functions, you just need the info of which dll they come from. You just need an extra line in the function definition file. I would also suggest space for several links; the homepage (development thread), and download (which may be the same or some mirrors).
Eventually avsmod could download the scripts and plugins itself. Wouldn't that be so nice?
The last thing is order of operations. I was thinking of analyzing important plugins myself and writing a really good definition of how they affect clips and what they can tolerate. Categories would be, levels, geometry, interlacing, framecount, blending, whatever was important for major plugins, i.e. instead of saying "this plugin should be applied before any deinterlacers", it could be codified.
Also, if everyone released their work with a special string, one could scan the whole board automatically to collect filter news and updates.
Thoughts?
jmac698
12th March 2011, 21:00
Here's some data:
dll: DGDecode.dll
ver: 1.58
md5: 9f19f6021b03fe5333f89ca692791b3f
home: http://neuron2.net/dgmpgdec/dgmpgdec.html
support: http://neuron2.net/board/index.php
download1: http://hank315.nl/files/DGdecode/dgmpgdec158.zip
download2:
funcs:
MPEG2Source(str "d2v", int "idct", int "cpu", bool "iPP", int "moderate_h", int "moderate_v", str "cpu2", int "upConv", bool "iCC", bool "i420", int "info", bool "showQ", bool "fastMC")
LumaYV12(clip, integer "lumoff", float "lumgain")
BlindPP(clip, int "quant", int "cpu", bool "iPP", int "moderate_h", int "moderate_v", str "cpu2")
Deblock(clip, int "quant", int "aOffset", int "bOffset", bool "mmx", bool "isse")
dll: mt_masktools-25.dll
ver: 2.048
md5: 3c2abe3c6ebe572d31badd1b9459ebfd
home: http://manao4.free.fr/mt_masktools.html
support: http://forum.doom9.org/showthread.php?t=98985&page=1
download1: http://manao4.free.fr/masktools-v2.0a48.zip
download2:
funcs:
mt_edge
mt_motion
mt_invert
mt_binarize
mt_logic
mt_hysteresis
mt_merge
mt_expand
mt_inpand
mt_inflate
mt_deflate
mt_lut
mt_lutxy
mt_lutxy
mt_lutxyz
mt_lutf
mt_luts
mt_lutsx
mt_lutspa
mt_makediff
mt_adddiff
mt_clamp
mt_average
mt_convolution
mt_mappedblur
mt_square
mt_rectange
mt_freerectangle
mt_diamond
mt_losange
mt_freelosange
mt_circle
mt_ellipse
mt_freeellipse
mt_polish
mt_infix
Yellow_
14th March 2011, 10:05
Could look at the way meGUI does an auto update of a selection of tools for ideas.
jemm54
14th March 2011, 11:36
thanks for the update to 2.0.7, but i have a question, its any way to update without lost the configuration??.... Thanks
Zarxrax
14th March 2011, 16:32
I *think* the options file from previous versions should work fine with 2.0.7
Zarxrax
20th March 2011, 17:35
Changelog
Version 2.0.8:
- Customize the autocomplete list (options>Text1)
- support c-style comment '/*...*/', nesting comment '[*...[*...*]...*]' and keyword comment '__END__'
- No delay when zooming
- a new control '\T\T' helps prevent truncation of status bar information
- frame count text turns red if the current position is a bookmark
- draw a blue triangle for a titled bookmark
- fix delay when using many bookmarks
- change the behaivor of clicking on a calltip to close it. Clicking with ALT/CTRL/SHIFT to open the URL
- keep user's frame/time input in right-click context menu when focus is lost
- Added "Flip" menu to flip the output display
- Added "SwapUV" to the RGB->YUV menu
- new "Save bookmarks to bmp" macro
- Added/Updated some plugin function definitions
As always, download is in the first post
Zarxrax
20th March 2011, 18:05
I want to talk about the problem of function definitions for User Functions.
I mean, functions that are contained in avs/avsi files.
I have always been reluctant to pack custom function definitions for these with avspmod, because I perceive a problem with these types of files that doesn't exist so much with actual plugins or built-in functions.
Namely, its possible for there to be multiple versions of a function which use the same name. There might even be DIFFERENT functions that use the same name. So if I were to include a function definition for "Blarmy.avsi", then some users might be using an older version of Blarmy.avsi which uses some different parameters than the current version. It's hard to keep up with this stuff, so they just don't know that a new version has been released. Maybe they don't even know WHERE to obtain the new version. Continuing along those lines, maybe Avspmod doesn't get updated anymore, but Blarmy.avsi receives some updates. Now the definitions that were included with avspmod don't really work anymore, which could cause some confusion.
Another issue is, would you really want your autocomplete list being filled up by 100 functions that you don't even have?
Thankfully, the recent addition of the ability to import function definitions from the functions themselves has done much to solve these problems.
However, it could still be useful to have further customized function definitions, to add support for sliders and things like that.
Because of the reasons given above, I am hesitant to add these into avspmod by default.
However, I think a fine solution might be to just collect a lot of these together into one place. Then, if you happen to want to use a customized function definition, you could just pick it out of the list and copy/paste into avspmod.
Does this sound like a good solution to everyone? If so, I could start maintaining a list of customized function definitions right here.
Zarxrax
20th March 2011, 18:07
reserved
Dogway
21st March 2011, 05:21
Thanks for the new version!
Still copying options.dat to folder triggers this error when accessing the function definition options:
Traceback (most recent call last):
File "AvsP.pyo", line 6736, in OnMenuOptionsFilters
File "AvsP.pyo", line 9662, in ShowFunctionDefinitionDialog
File "AvsP.pyo", line 2038, in __init__
File "AvsP.pyo", line 2090, in CreateWindowElements
KeyError: u'unsharp' /(actually random filter)
for me is important to recover previous versions options because I customized GUI colors, shortcuts, status bar, function definitions, settings, macros, and extension templates, also core filters, plugins, and script functions visibility. Is a real pain to tweak everything again with a new version. Yes I know I can import function definitions from options.dat, and if I just copy options.dat to avspmod folder everything, settings, etc loads, but I can no longer access to function definitions.
-I tried editing options.dat to remove all the function definitions in there, and leaving the rest as is, and then from function definitions tab, manual import them from options.dat. But I realised I was breaking the line order "p##" and didnt feel like editing 1000 lines. One workaround would be to store this user definition data in the end of options.dat, so removing those lines wont need much further editing.
-I also tried to remove all my user functions and save this alternative options.dat, but that didn't work either.
A few suggestions:
I also think that Save Image should default to .png.
I tried to set a shortcut for Release Video to "Escape" and didn't work.
I got a skewed image when using ImageSource (I think when size width or height is odd)
Default zoom to + and - shorcut (stepping up or down in size)
AlanHK
21st March 2011, 08:26
Changelog
Version 2.0.8:
Still getting the same problem I reported above.
(1482161)
Again reverting to 2.0.5.
I could start maintaining a list of customized function definitions right here.
Putting this on page 16 of a forum thread isn't ideal.
If you can't get a dedicated site, (maybe a subsection of Avisynth.org, like the original AvsP) you could recycle say this post
1381221 on the first page of the thread.
ANGEL_SU
21st March 2011, 08:44
...
Still copying options.dat to folder triggers this error when accessing the function definition options:
Traceback (most recent call last):
File "AvsP.pyo", line 6736, in OnMenuOptionsFilters
File "AvsP.pyo", line 9662, in ShowFunctionDefinitionDialog
File "AvsP.pyo", line 2038, in __init__
File "AvsP.pyo", line 2090, in CreateWindowElements
KeyError: u'unsharp' /(actually random filter)
...
I tried to set a shortcut for Release Video to "Escape" and didn't work.
...
1. Could you upload your options.dat for my study?
2. 'ESC' shortcut works only under wxPython 2.6. But, the new AvsPmod is compiled with wxPython 2.8. I will try to solve this problem later...
Dogway
21st March 2011, 09:11
options.dat
http://www.mediafire.com/?m9675x5jx97ax3k
ANGEL_SU
21st March 2011, 10:55
options.dat
http://www.mediafire.com/?m9675x5jx97ax3k
Thanks. But, I got the same 'KeyError' even running under AvsPmod 2.0.5. What version of Avsp are you using with this options.dat? If possible, please also upload filterdb.dat and a list of dlls' names in your avisynth plugin folder(uploading an archive contains those dlls would be better).
Zarxrax
21st March 2011, 19:00
Still getting the same problem I reported above.
(1482161)
Again reverting to 2.0.5.
Can't seem to replicate this problem. Have you been able to see if it works on a different system? Perhaps its related to the FAR command shell thing that you mentioned you are using?
Putting this on page 16 of a forum thread isn't ideal.
If you can't get a dedicated site, (maybe a subsection of Avisynth.org, like the original AvsP) you could recycle say this post
1381221 on the first page of the thread.
I can add a link in the first post, so its not an issue.
Dogway
21st March 2011, 19:47
I use 2.0.5 and function definition loads with these options.dat, filterdb.dat and plugins right now.
http://www.mediafire.com/?a2ef8vayhvhg3m2
It's very unstable, moving plugins/functions in and out, or removing user definitions could render "function definitions" unaccessible.
Im on avisynth 2.57 MT
ANGEL_SU
22nd March 2011, 02:05
I use 2.0.5 and function definition loads with these options.dat, filterdb.dat and plugins right now.
http://www.mediafire.com/?a2ef8vayhvhg3m2
It's very unstable, moving plugins/functions in and out, or removing user definitions could render "function definitions" unaccessible.
Im on avisynth 2.57 MT
Thanks for your uploading. This issue seems the same as the one of AvsP 2.0.2 - you define a short user function name but it is just the same as the 2nd part of a long name plugin. After modifying some source, now I can enter function definition dialog without any problem in AvsPmod 2.0.8.
I think you had better to define/override a plugin directly in 2nd tab, not to define a plugin as a user function.
Dogway
22nd March 2011, 07:22
"You must use dllname_function naming format for plugins" which is the exact reason Im defining them as user functions, I dont want one hundred thousand entries in my calltip, and a few dozen of them starting with the same first seven characters, which is the calltip window width.
ANGEL_SU
22nd March 2011, 07:54
"You must use dllname_function naming format for plugins" which is the exact reason Im defining them as user functions, I dont want one hundred thousand entries in my calltip, and a few dozen of them starting with the same first seven characters, which is the calltip window width.
I think you were referring to 'autocompletion' window. In v2.0.8, you can customize this list at Options|Program Settings|Text1, please give a try...
Yellow_
24th March 2011, 11:00
Zarxrax, hey flip is in v2.0.8 , cheers for that. :-)
Has anyone got the SmoothAdjust settings in their filter.dat?
I'm struggling to work through the SmoothAdjust readme to get the 'types' like bool, int, float etc and there's no source to look at in the SmoothAdjust zip I have.
MadRat
26th March 2011, 10:53
I apologize if someone's already brought this up, but in the last few version of AvsPMod, when trying to exit, I get the "Traceback (most recent call last):" and nothing else, in the error window. The only way I can exit AvsPMod is to use the task manager to end task. It doesn't matter if there is a script in the edit window or if I've saved or not.
I have Windows 7 Ultimate, 64 Bit and SP1 and older versions (2.0.6 and older I believe) work as does AvsP 2.0.2
Zarxrax
27th March 2011, 02:34
Can't see the attachment right now, but I'm running the same version of windows and have no issues.
I'm guessing its something related to your system.
Floatingshed
27th March 2011, 22:16
I find that if I delete any of the user functions, options.dat gets screwed up and I'm then unable to access the functions definition menu.
Also, avsp.SaveImage() has a framenum parameter which is supposed to tell it which frame to save as an image. Whatever frame number is inputted here it will ignore and only ever save the current frame!
iNs@Ne
28th March 2011, 09:39
Zarxrax, nicely done, mate!
Found your AvsPmod by chance and I don't wanna use slow AvsP anymore!
Thanks a lot!
Best regards.
Zarxrax
28th March 2011, 18:22
Again, its all thanks to Angel_Su, really. I've done nothing except get the ball rolling :)
ANGEL_SU
28th March 2011, 18:51
...
I'm struggling to work through the SmoothAdjust readme to get the 'types' like bool, int, float etc ...
You can disregard types and just put the dll in the avisynth plugin folder. AvsP will automatically include it.
I find that if I delete any of the user functions, options.dat gets screwed up and I'm then unable to access the functions definition menu.
This is known issue and has been fixed on last weekend.
Also, avsp.SaveImage() has a framenum parameter which is supposed to tell it which frame to save as an image. Whatever frame number is inputted here it will ignore and only ever save the current frame!
Yes, framenum parameter doesn't work. Currently, you have to call avsp.ShowVideoFrame() and then avsp.SaveImage().
Caroliano
28th March 2011, 20:53
When trying to open an UTF-8 avisynth file I get the following error:
D:\Programas\A-B\AvsP\AvsPmod\lib\library.zip\AvsP.py:8678: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
Traceback (most recent call last):
File "AvsP.pyo", line 3843, in OnData
File "AvsP.pyo", line 8340, in OpenFile
File "wx\stc.pyo", line 2934, in SetText
File "encodings\cp1252.pyo", line 15, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 38: character maps to <undefined>
This avs opens fine in virtualdub(mod). It is something like:
ffvideosource("i:/ŭにçodё-folder]/+uиiĉod∄-filename).mp4", utf8=true)
Saved in utf8 encoding, w/o the BOM, and runing on ffms2 v2.15 or higher. Is it too dificult to make it work in avsp too?
And I can't make the "Open with..." option in windows select AVSp in this new version. I could with AVSp 2.0.7.
Oh, and the encoder is now working for lossless output! The only thing missing is a way to disable the "credit star frame" thing.
Thanks also for the fast zoom! Like night and day!
Yellow_
29th March 2011, 07:36
You can disregard types and just put the dll in the avisynth plugin folder. AvsP will automatically include it.
Yes I've come to realise that I don't need to edit the .dat, I was mistaken in thinking it added the sliders and default values where in fact I think I need to create SmoothAdjust or any other DLL as a user function to get default values and sliders?
Just happened that the first plugin I tried to get sliders working on was GrainFactory and that was already an avsi.
Need to learn how to create functions.
Zarxrax
29th March 2011, 13:31
And I can't make the "Open with..." option in windows select AVSp in this new version. I could with AVSp 2.0.7.
If you are using Vista or Windows 7, use the Default Programs editor to associate it. This seems to be the only way to fully set associations within these Operating Systems.
Barrakketh
1st April 2011, 01:56
I'm having a little problem that I have been frequently encountering. After cropping part of a video the resulting output is corrupted in the AvsPmod output.
Examples (RGB32 on the left, RGB24 on the right):
http://i163.photobucket.com/albums/t299/Barrakketh/temp/ketsui_overlay_rgb32.png http://i163.photobucket.com/albums/t299/Barrakketh/temp/ketsui_overlay_rgb24.png
MPC and Mplayer have no problems with displaying the output of the AVS script (cap taken with MPC-HC, opened the script with it):
http://i163.photobucket.com/albums/t299/Barrakketh/temp/th_ketsui_overlay_mpc.png (http://s163.photobucket.com/albums/t299/Barrakketh/temp/?action=view¤t=ketsui_overlay_mpc.png)
The source is an AVI written by MAME from a replay I recorded, input video resolution is 224x448@60FPS, PAR is 2:1, color is RGB24.
Example script:
#film = DirectShowSource("Z:\MAME\141b\snap\ketsui.avi", fps=60)
film
#ConvertToRGB32
trim(6948, 9751)
crop(0, 8, 86, 120)
Uncommenting ConvertToRGB32 causes the other type of corruption.
I've also found that the screenshot I've taken with MPC (the same one I embedded) also exhibits the problem in the preview, though the bottom of the image remains messed up when played back and doesn't exhibit much of a difference when ConvertToRGB32 is used on it:
film = ImageReader("Z:\Fraps_Videos\ketsui_overlay_mpc.png", pixel_type="RGB24")
film
#ConvertToRGB32
trim(6948, 9751)
crop(0, 8, 86, 120)
If you're curious, the small parts I'm cutting out of the video are being used for an overlay on the borders that the game won't cover when being displayed (game footage is scaled to 540x720, then padded to produce a 1280x720 video).
Thanks.
Caroliano
1st April 2011, 16:30
Well, now I tried the Default Programs editor, but it has the same behaviour. When I browse for the avsp executable, and select it, and click on "open", it returns to the program selection screen w/o updating anything...
When I try to associate .avsp using the menu option inside AvsP, the following error screen apears:
Error PaserAvisynthScript() try eval((HD==2ue)
Error PaserAvisynthScript() try eval(blksize/4)
Error PaserAvisynthScript() try eval((HD==2ue)
[Error 5] Acesso negado
[Error 2] O sistema não pode encontrar o arquivo especificado
[Error 5] Acesso negado
[Error 5] Acesso negado
[Error 2] O sistema não pode encontrar o arquivo especificado
[Error 5] Acesso negado
[Error 5] Acesso negado
[Error 2] O sistema não pode encontrar o arquivo especificado
[Error 5] Acesso negado
Error 2: The system couldn't find the target file. Error 5: Access Denied.
The current location is: D:\Programas\A-B\AvsP\AvsPmod\AvsPmod.exe
And now I remembered that I renamed the AvsP folder after runing it the first time. Maybe it has something to do with my problem? Everything else works.
Zarxrax
1st April 2011, 20:09
Hmmm... I know what you are talking about, because I have experienced that problem before, where the program wont appear in after you select it.
I experienced that problem with a different application than avsp though. I think its some bug in windows, possibly.
I *think* what happens is there might be some leftover info in the windows registry pointing to an outdated location, or something like that.
If you are comfortable modifying the registry, try searching through it for any references to avspmod, and delete them.
hayling
2nd April 2011, 23:06
I apologize if someone's already brought this up, but in the last few version of AvsPMod, when trying to exit, I get the "Traceback (most recent call last):" and nothing else, in the error window. The only way I can exit AvsPMod is to use the task manager to end task. It doesn't matter if there is a script in the edit window or if I've saved or not.
I have Windows 7 Ultimate, 64 Bit and SP1 and older versions (2.0.6 and older I believe) work as does AvsP 2.0.2
I had the same problem in Windows 7 Professional 64-bit. To fix it, I had to run AvsP as administrator.
To have it run as administrator by default, you can right-click your AvsPmod shortcut, click Properties, then Advanced (under the Shortcut tab), then check "Run as Administrator", then click OK. Hope this helps!
Majin3
3rd April 2011, 12:31
Thanks for the great mod.
Would it be possible to make the time scale behave like the frame field above? So you can enter a time to jump to or at least copy it? The reason is that I'm often creating chapter files and it would be helpful if I could just copy the time instead of writing it down and double-checking afterwards.
Chikuzen
9th April 2011, 15:52
@Barrakketh
I noticed that when the width is not mod4, AvsPmod's preview collapses.
(This doesn't happen on VirtualDub.)
@Zarxrax, ANGEL_SU
Is this known issue?
Zarxrax
9th April 2011, 23:59
The width thing is not a known issue, I believe. I'll see what angel_su thinks about it.
Barrakketh
10th April 2011, 00:18
On the subject of known issues, is getting the error:
Traceback (most recent call last):
File "AvsP.pyo", line 1299, in OnKeyUp
TypeError: object of type 'NoneType' has no len()
When trying to use autocomplete when:
No autocomplete alternatives are available, AND
You either typed a capital letter OR use Ctrl+Space when there is a single capital letter when calling a function, AND
"Show autocomplete on capital letters" is enabled.
known? For instance, opening a blank script and typing "X" (no quotes) will raise the exception. "BlankClip.X" will cause it. Dismissing the error window and then pressing Ctrl+Space will cause it.
It doesn't happen after disabling "Show autocomplete on capital letters".
ANGEL_SU
10th April 2011, 03:47
@Barrakketh
I noticed that when the width is not mod4, AvsPmod's preview becomes amusing.
(This doesn't happen on VirtualDub.)
@Zarxrax, ANGEL_SU
Is this known issue?
This should be a regression on AvsPmod 2.0.8 only and was fixed 2 weeks ago.
On the subject of known issues, is getting the error:
Traceback (most recent call last):
File "AvsP.pyo", line 1299, in OnKeyUp
TypeError: object of type 'NoneType' has no len()
When trying to use autocomplete...
Just fixed this. Thanks for your report.
wOxxOm
10th April 2011, 13:30
I specify setmemorymax(256) and normally AvsP's PrivateBytes & WorkingSet memory usage would be around 100-300 MB which is ok. However if I have a complex script and advance by 1-10 frames throughout the video to adjust filters on scene basis, AvsP crashes very easily. Closing the error log window sometimes allows to continue without any problems, but could the mighty python of AvsP be taught to release previously allocated memory in case of crash? Currently it easily goes above 600MB and would go even higher but then I naturally restart it due to significant UI lags.
After such crash AvsP's cpu usage is 100% and it keeps on redrawing current frame, judging by blinking triangle in the top left corner. Though it may be unrelated to the memory hog problem.
Menu command "Release all videos from memory" does not help.
p.s. i've had to make a standalone utility to watchdog AvsPmod's memory usage and alert me when it goes beyond 400MB so that I can reload it, which turns out to be 100 times faster than waiting for it to redraw a single frame when it eats all the available memory (yeah it can take a few minutes).
Zarxrax
10th April 2011, 17:25
wOxxOm: does that occur when you don't specify setmemorymax?
wOxxOm
11th April 2011, 19:38
Yes, it behaves exactly the same with or without setmemorymax.
BTW, saving the script and Shift-F5 + F5 combo recovers mem usage to about 300 MB level and I can continue working with the program without restarting. This trick sometimes doesn't work though.
...and by complex scripts I mean QTGMC + lots of lots of freezes etc.
SubJunk
13th April 2011, 06:34
I just opened the program for the first time and found that with the default Windows 7 permissions, if it runs inside Program Files it doesn't close when you click the close button.
I had to change the security permissions of the folder just to close the program.
I recommend using AppData to save auto-generated files (like _last_session_.ses) - I have had the same problem before with my software.
Zarxrax
13th April 2011, 17:19
I just opened the program for the first time and found that with the default Windows 7 permissions, if it runs inside Program Files it doesn't close when you click the close button.
I had to change the security permissions of the folder just to close the program.
I recommend using AppData to save auto-generated files (like _last_session_.ses) - I have had the same problem before with my software.
Thanks for the report. I think the best solution right now is to just don't place it in program files folder, or just make sure the folder has permissions set correctly. The session file isn't the only thing that could cause trouble. For instance, if the user needs to modify a macro or something, that might not be possible either. And the program also needs to save files like options.dat.
I think the best long-term solution would be to have an installer. This could set the permissions correctly, and also possibly handle the file association issues that some people have had.
I tried making an installer though, and I kept running into various problems. Maybe someone else could volunteer for this?
levi
13th April 2011, 20:06
I prefer "portable" software which has all files in a single location.
Zarxrax
13th April 2011, 22:02
I prefer "portable" software which has all files in a single location.
Yes, if there is an installer, it will only be offered as an option.
Zarxrax
13th April 2011, 23:38
Version 2.0.9:
- Code folding at curly braces {}. May be improved later.
- added an option 'show tabs in multiline style' in 'Options|Program settings|Misc'
- added "copy as time" to the frame number text box
- added an option "Don't preview when loading a session" in 'Options|Program settings|Video 1'
- if 'paranoia' mode turned on, don't preview when loading a session
- 'Save bookmarks to images' macro updated to support more image formats besides just bmp
- Many bugfixes:
fix: when closing a tab, always hid the preview window.
fix: the framenum parameter of avsp.SaveImage() doesn't work
fix: autocompletion doesn't apply customized preset if only typing a short name of a plugin filter
fix: resolution not mod 4 or odd(rgb), the image is skewed. a regression on avspmod 2.0.8 only.
fix: sometimes scripts line end is only 'LF'. force using windows style 'CR'+'LF'.
fix: can't enter funtion definition dialog if delete a filter but keep its preset.
fix: options.dat compatibility broken if user define a user funtion which name is short and is the same as the 2nd part of a long name filter.
fix: ESC shortcut doesn't work in wx2.8 or later.
Abilities of new code folding feature:
1. Click on fold marker or through menu "Edit|Toggle current fold" to show/hide lines.
2. Click on fold margin while holding Ctrl+Shift or through menu "Edit|Toggle all folds" to show/hide lines at all fold point.
3. Click on fold marker while holding Ctrl to toggle recursively.
4. Click on fold marker while holding Shift to toggle folds of child.
Barrakketh
14th April 2011, 03:53
Thanks for the report. I think the best solution right now is to just don't place it in program files folder, or just make sure the folder has permissions set correctly. The session file isn't the only thing that could cause trouble. For instance, if the user needs to modify a macro or something, that might not be possible either. And the program also needs to save files like options.dat.
One possible solution (especially since Windows Vista/7 apps are supposed to be using %APPDATA% anyway) would be to check whether the directory that AvsPmod is installed to is writable, and if not use %APPDATA%\AvsPmod instead.
That way if you've tossed AvsPmod onto a flash drive or some other location where you would have write access it'll work as it always has, but if you put it into Program Files it'll fallback to how Vista/7 expects applications to behave and continue to work properly.
Caroliano
15th April 2011, 05:58
Hmmm... I know what you are talking about, because I have experienced that problem before, where the program wont appear in after you select it.
I experienced that problem with a different application than avsp though. I think its some bug in windows, possibly.
I *think* what happens is there might be some leftover info in the windows registry pointing to an outdated location, or something like that.
If you are comfortable modifying the registry, try searching through it for any references to avspmod, and delete them.
A bit late, but an update:
I ran an register cleaning aplication, and there indeed was an old and invalid registry entry for the old AvsPmod folder. Now it works perfectly.
:thanks:
Dogway
15th April 2011, 09:20
Also format and quality options for saving images. (e.g. default jpg quality is....)
Jenney001
15th April 2011, 09:54
yeah...
wOxxOm
16th April 2011, 18:09
2.0.9 assigns Esc-hotkeys globally and actually disables those keys throughout whole system, fix it please.
self.hotkeysList = [
(wx.NewId(), 'Escape'),
(wx.NewId(), 'Alt+Escape'),
(wx.NewId(), 'Ctrl+Escape'),
(wx.NewId(), 'Shift+Escape'),
]
Zarxrax
16th April 2011, 23:16
ok, thanks for the report
DiCQC
17th April 2011, 00:34
Hi. I'm using AvsPmod now, looks god who can use it.
Usedocne
17th April 2011, 02:56
Hi. I'm using AvsPmod now, looks god who can use it.
Yeah, God's been using AvsPmod for a while now... You know something's *good* when God starts using it.
Also, keep up the good work, ANGEL_SU and Zarxrax!
ANGEL_SU
17th April 2011, 03:43
2.0.9 assigns Esc-hotkeys globally and actually disables those keys throughout whole system, fix it please.
Because a normal ESC shortcut doesn't work on wxWidgets 2.8 or later, I register it as a system wide hotkey to get it work. Certainly, this will causes a problem if another application running concurrently and using ESC key.
AvsPmod 2.0.9 always register ESC as a hotkey even you don't use this key. Obviously, it's not a good way and I will make a simple improvement in next version - if you don't use ESC, don't register it as a hotkey.
SubJunk
17th April 2011, 11:52
Thanks for the update :)
Boulotaur2024
17th April 2011, 18:15
I had the same problem in Windows 7 Professional 64-bit. To fix it, I had to run AvsP as administrator.
To have it run as administrator by default, you can right-click your AvsPmod shortcut, click Properties, then Advanced (under the Shortcut tab), then check "Run as Administrator", then click OK. Hope this helps!
Thanks, it fixed the issue for me.
Zarxrax
17th April 2011, 21:40
Version 2.1.0:
- support code folding on block-comment and end-comment.
- if ESC isn't defined as a shorcut, don't register it as a system hotkey.
- new option "Draw lines at fold points" in menu "Options|Program settings|Text 2".
- new macro "Save Image Sequence"
- saving an image as .jpg now prompts the user to specify the quality level
- forgot to include avs2avi in the past several versions, it has returned.
SubJunk
17th April 2011, 23:39
Nice one, thanks :)
Dogway
18th April 2011, 00:57
Save to image has a bug:
-save an image to jpg
-set quality
-save again image with another format
message
Traceback (most recent call last):
File "AvsP.pyo", line 6595, in OnMenuVideoSaveImage
File "AvsP.pyo", line 9142, in SaveCurrentImage
UnboundLocalError: local variable 'quality' referenced before assignment
Zarxrax
18th April 2011, 01:18
Save to image has a bug:
-save an image to jpg
-set quality
-save again image with another format
message
Traceback (most recent call last):
File "AvsP.pyo", line 6595, in OnMenuVideoSaveImage
File "AvsP.pyo", line 9142, in SaveCurrentImage
UnboundLocalError: local variable 'quality' referenced before assignment
Doh! I'll fix that right away. A line was just indented wrong :P
Ok, fixed :)
TurboPascal7
22nd April 2011, 06:10
Bug: syntax highlighting and other sweet things don't work for mt_masktools in 2.1.1.
2.0.8. works just fine tho.
Zarxrax
22nd April 2011, 17:17
This is fixed for the next version.
TurboPascal7
23rd April 2011, 02:31
This is fixed for the next version.
Cool, thanks.
brawler
24th April 2011, 02:59
I just started with avisynth and found this great program. I have a suggestion though for autocomplete when typing text in the main window. Right now the autocomplete window disappears if you start typing out the name of a plugin and spell it wrong. What I would like to see is that the autocomplete window will reappear if I start to backspace to correct my mispelled error. I hope I was clear on this. Thanks again for the great program.
ANGEL_SU
24th April 2011, 12:55
... What I would like to see is that the autocomplete window will reappear if I start to backspace to correct my mispelled error...
Ok, I added some code to do this. Instead of moving the caret backwards, you just press Ctrl-Space at current position. AvsP will automatically move the caret to a possible matched position within the word and bring up the autocomplete window. I also added an related option in 'Program setting'. You can disable this behavior if you don't like it.
Zarxrax
25th April 2011, 19:47
Version 2.1.2:
- add a menu item "Copy avisynth error to clipboard" in "Edit|Miscellaneous". OCR text macro is no longer needed.
- Add an option "Find within a word to show autocomplete" at menu "Options|Program settings|Text 1"
- "save bookmarks to images" macro now lets you specify a jpeg quality level
- fixed some bugs with function definitions that have underscores in their name
- added 'Bookmarks at Interval' macro
- added 'Random clip order' macro
-add a text entry "DLL underscored" in "Options|AviSynth function definition...|Plugin tab". There may be some cases where a dll with an underscore in its name does not autodetect properly. These situations can be resolved by manually putting the base names into this box.
SubJunk
25th April 2011, 21:00
Thanks :)
dwm4444
25th April 2011, 22:23
Hi, zarxrax,
First, thanks for the great program; been using if since it first came out. I updated to 2.1.2 this morning but hadn't run it, but I noticed someone over on Videohelp complaining about it briefly opening a window then shutting down, so I just tried it and got the same result (Win7, 64bit). Here's the error log:
===========
[Mon Apr 25 16:47:29 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 12891, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 12881, in OnInit
File "AvsP.pyo", line 3921, in __init__
File "AvsP.pyo", line 4620, in defineFilterInfo
File "AvsP.pyo", line 4697, in defineScriptFilterInfo
UnboundLocalError: local variable 'shortname' referenced before assignment
==========
Went back to 2.0.7 and all is fine.
It's probably just me (and the other guy). Thought I'd mention it, though, and thanks again for keeping this project going.
Dogway
25th April 2011, 23:15
I don't know what's happening lately but everything became worse since somewhere around v.2.0.8.
-I type "mt_edg"
-press ctrl+space (for autocompletion,call my presets, etc)
problem 1:
-cursos goes to mt_|edg and a list of all my mt_masktools functions are displayed...
problem 2:
-so I manual write mt_edge but it doesn't get highlighted
problem 3
-before every single mt function there is the plugin it belongs "mt_masktools-25_" which is rhetorical and innecesary IMO. I already know MT_edge belongs to MaskTools and having by default "mt_masktools-25_mt_edge" as autocompletion (instead of mt_edge) is just a waste of clarity for script creation, thus of time to get it fixed.
PTDown
25th April 2011, 23:18
[Mon Apr 25 23:52:51 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 12891, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 12881, in OnInit
File "AvsP.pyo", line 3921, in __init__
File "AvsP.pyo", line 4620, in defineFilterInfo
File "AvsP.pyo", line 4697, in defineScriptFilterInfo
UnboundLocalError: local variable 'shortname' referenced before assignment
fix please. :)
MilesAhead
26th April 2011, 02:05
Hi, zarxrax,
First, thanks for the great program; been using if since it first came out. I updated to 2.1.2 this morning but hadn't run it, but I noticed someone over on Videohelp complaining about it briefly opening a window then shutting down, so I just tried it and got the same result (Win7, 64bit). Here's the error log:
===========
[Mon Apr 25 16:47:29 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 12891, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 12881, in OnInit
File "AvsP.pyo", line 3921, in __init__
File "AvsP.pyo", line 4620, in defineFilterInfo
File "AvsP.pyo", line 4697, in defineScriptFilterInfo
UnboundLocalError: local variable 'shortname' referenced before assignment
==========
Went back to 2.0.7 and all is fine.
It's probably just me (and the other guy). Thought I'd mention it, though, and thanks again for keeping this project going.
Hi, I'm the "other guy" running Windows 7 32 bit. I backed off to 2.1.1 and things are back to normal. I never had a crashing issue until 2.1.2.
http://smileys.smilchat.net/emoticon/children/ecole/ecole-14.gif
ANGEL_SU
26th April 2011, 03:16
Hi, zarxrax,
....
UnboundLocalError: local variable 'shortname' referenced before assignment
==========
Went back to 2.0.7 and all is fine.
...
Sorry, that's my fault and will fix in next version. Currently, a workaround is to put a dll (with an underscore in its name) into the avisynth plugin folder, such as mt_masktools.dll.
If you can't find one, you can also rename any one dll with underscored style. Once Avsp runs successfully, exit AvsP and rename the dll back.
Zarxrax
26th April 2011, 03:17
I changed the version of wxpython that its compiled with. Maybe that could be the issue. It still works perfectly fine for me though :\
Edit: or maybe its what angel_su just said :\
dwm4444
26th April 2011, 03:39
Currently, a workaround is to put a dll (with an underscore in its name) into the avisynth plugin folder, such as mt_masktools.dll.
If you can't find one, you can also rename any one dll with underscored style. Once Avsp runs successfully, exit AvsP and rename the dll back.
Thanks, ANGEL_SU; that worked great.
I renamed DGDecode.dll to DG_Decode.dll. AvsPmod 2.1.2 then opened fine. After renaming it back to DGDecode, AvsPmod still opens fine.
Much appreciated. Thanks again to you and the other developers for keeping AvsPmod going.
ANGEL_SU
26th April 2011, 04:38
@Dogway
Go to "Options|Program settings|Text 1|Customize autocomplete keyword list..." and check if mt_edge is existing and checked. If yes, please upload your options.dat for my study.
I have mt_masktools.dll at my machine. I try to customize my own preset of the long name plugin mt_masktools_mt_edge. When I just type an incomplete word mt_edg and press <Ctrl-Space>, I see only mt_edge in autocomplete window. Then, I press <Enter>, it did apply the long name customized preset without dllname prefix at the beginning. So you don't need to define another short name function to do this. If I would like type mt_ to see short names only in autocomplete window, I will go to "Options|Program settings|Text 1|Customize autocomplete keyword list..." and uncheck all long names of mt_masktools_*.
Dogway
26th April 2011, 05:22
I didnt import any .dat file, just extracted the .zip and run avspmod. There's no mt_whatever in autocomplete list, only mt_masktools-25_mt_whatever.
I don't know whose fault, but after some plugins discards I found out which one triggered the bug, please download dither.dll (http://forum.doom9.org/showthread.php?p=1386559#post1386559) v1.6 and tell me if you can reproduce it. There were some others that also produce the same effect. They probably share the same underscore naming convention...
edit: I also think that my options.dat is already bugged because of this.
options.dat (http://www.mediafire.com/?31bytxoby6tzyo5)
ANGEL_SU
26th April 2011, 07:11
@Dogway
Thank you for your options.dat, I replicate this bug. A workaround for your case is to rename mt_masktools-25.dll to mt_masktools.dll. Currently, please don't use hyphen '-' character in an underscored dll. In fact, you can see no mt_edge but a 25_mt_edge there when you customize autocomplete keyword list.
Dogway
26th April 2011, 07:25
but "Average_21Oct05.dll" doesn't have any "-" and also causes it.
ANGEL_SU
26th April 2011, 08:20
but "Average_21Oct05.dll" doesn't have any "-" and also causes it.
I don't see any Average_21Oct05 related definition in your options.dat. Is it a new one? Do you put the dll in the avisynth plugin folder? Do you see average_21oct05 (all lower case) in 'DLL underscored' box?
I define a fake plugin function - Average_21Oct05_func1 and add average_21oct05 (all lower case) into 'DLL underscored' box. When I type fun and press <Ctrl-Space>, I can see func1
Dogway
26th April 2011, 09:21
I dont know if it's a new one, I tend to include new plugins once in a while or update them. I see it average_21oct05 (lower case) in the 'DLL underscored' box.
This is not a function I want to call, is a plugin I need (don't remember now what for) for another plugin or script in order to work. But putting it into the plugins folder just triggers the mt_masktools problem described above.
Didn't you find any problems with it?
ANGEL_SU
26th April 2011, 10:06
Ok, I see this problem. I download real Average_21Oct05.dll and put it into the plugin folder. There is a non-existing dll named mt_masktools_mt in 'DLL underscored' text box. Once this wrong name removed manually, short names of mt_* come back.:)
PS:
Bad news: at this situation, you need to remove wrong name at startup every time. I'm sorry that my auto-detect routine is quite poor. In next version, I'll provide an option to disable this routine and users can fully control the content of 'DLL underscored' text box
Dogway
26th April 2011, 19:39
In my plugins list "nnedi3_abs.dll" also causes this problem, mind you that there might be any others that I don't use so I think itd be a good idea to mend it from the base rather than "patch" the symptoms. Newbies that don't read this thread would have a hard time...
Zarxrax
26th April 2011, 23:05
Alright, angel_su has tried to fix these bugs from the last version.
Version 2.1.3:
Fixed some bugs related to dlls with underscores
Replaced 'DLL underscored' textbox with a button to bring up a dialog. Add a checkbox on it to turn on/off auto-detect routine.
Dogway
27th April 2011, 03:53
OOOOK, now that this works as supposed Im starting to understand how everything works even without documentation :)(which I encourage you to update)
In a clean run everything went flawless, some problems arised when I copied over options.dat but this time trial&error was coherent and fixed everything that wasn't in place (e.g. plugins as user functions, presets without the parent naming convention, etc)
This looks like a robust version so I will stick with it and report possible bugs in the meanwhile.
Some minor suggestions:
comment in the middle of a line
auto recover session from an unexpected shutdown.
+ and - shortcuts for Zoom
Thanks a lot.
matfra
27th April 2011, 13:27
Whe I start the new version 2.1.3, nothing happen. It wont start. Any one have having this issue ?
ANGEL_SU
27th April 2011, 16:10
...
Some minor suggestions:
comment in the middle of a line
...
Is comment inside parentheses? Could you write a simple avs statement to show what you need?
Dogway
27th April 2011, 19:33
filter(things=doing) | in trim(x,y)
ctrl+q
filter(things=doing) # ~ in trim(x,y)
maybe is stupid...
Zarxrax
27th April 2011, 20:32
filter(things=doing) | in trim(x,y)
ctrl+q
filter(things=doing) # ~ in trim(x,y)
maybe is stupid...
You mean you want a shortcut to insert the comment at the cursor location? Cant you just type the '#'? It doesnt save any keystrokes so I dont see why you need a shortcut :\
Dogway
27th April 2011, 23:05
well, it requires my right hand, so it affects workflow. But at the same time you lose the benefit of line commenting wherever the cursor is...
Zarxrax
27th April 2011, 23:32
well, it requires my right hand, so it affects workflow. But at the same time you lose the benefit of line commenting wherever the cursor is...
Oh really? On a US keyboard, the left hand is used, since # is over the 3 key.
Dogway
28th April 2011, 01:28
Oh really? On a US keyboard, the left hand is used, since # is over the 3 key.
I see, in spanish keyboard it requires ctrl+alt+3 which is an akward hand position. Well, just ignore it, maybe some keyboard mapping will do it...
ANGEL_SU
28th April 2011, 08:56
I see, in spanish keyboard it requires ctrl+alt+3 which is an akward hand position. Well, just ignore it, maybe some keyboard mapping will do it...
Ok, I added 'Style comment <Alt-Q>' to do this. You don't need to move caret in a exact position, it inserts '#~ ' at the beginning of a text style. If already commented, find '#~ ' or '#' to uncomment it. You will see it in next version...
LigH
28th April 2011, 09:53
BTW:
On a german keyboard, # has an own key (no shift required) next to ENTER – much more convenient.
Alt+Q looks like a shortcut for "Quit" to me. But I don't want to confuse you more now...
TheFluff
28th April 2011, 14:02
People who aren't using the One True Keyboard Layout for coding deserve their suffering. Coding pretty much anything on a layout that isn't en-US is incredibly annoying, just deal with it.
Dogway
29th April 2011, 08:39
One more thing.
I had hang ups when switching tabs with video preview in synced sources.
It happened today with a mp4 through ffms2 and a few days back with a .d2v.
It might be something odd in my system, maybe not. May be worth having a check.
Traceback (most recent call last):
File "AvsP.pyo", line 7525, in OnSliderReleased
File "AvsP.pyo", line 10367, in ShowVideoFrame
File "AvsP.pyo", line 10942, in PaintAVIFrame
File "pyavs.pyo", line 339, in DrawFrame
File "pyavs.pyo", line 318, in _GetFrame
File "avisynth.pyo", line 277, in GetFrame
WindowsError: exception: access violation reading 0x000004C0
Traceback (most recent call last):
File "AvsP.pyo", line 7636, in OnNotebookPageChanged
File "AvsP.pyo", line 10367, in ShowVideoFrame
File "AvsP.pyo", line 10942, in PaintAVIFrame
File "pyavs.pyo", line 339, in DrawFrame
File "pyavs.pyo", line 318, in _GetFrame
File "avisynth.pyo", line 277, in GetFrame
WindowsError: [Error -529697949] Windows Error 0xE06D7363
it might be related to zoom as well as I used it in both of them
edit: my errors log (http://www.mediafire.com/?neba0a55ot2sqy0). Most of them are errors of switching back and forth cached images on tabs, so I don't think avisynth has to do anything with it.
ANGEL_SU
1st May 2011, 07:06
...
Traceback (most recent call last):
File "AvsP.pyo", line 7636, in OnNotebookPageChanged
File "AvsP.pyo", line 10367, in ShowVideoFrame
File "AvsP.pyo", line 10942, in PaintAVIFrame
File "pyavs.pyo", line 339, in DrawFrame
File "pyavs.pyo", line 318, in _GetFrame
File "avisynth.pyo", line 277, in GetFrame
WindowsError: [Error -529697949] Windows Error 0xE06D7363
it might be related to zoom as well as I used it in both of them
edit: my errors log (http://www.mediafire.com/?neba0a55ot2sqy0). Most of them are errors of switching back and forth cached images on tabs, so I don't think avisynth has to do anything with it.
I'll fix at this case. It is not necessary to call avisynth.dll function again since the frame is already cached.
wOxxOm
1st May 2011, 21:03
1. mt_merge and others still not highlighted&boldened as recognized functions in 2.1.3 (broken in 2.0.9)
2. how about fixing an old AvsP bug with _editing_ frame number (e.g. last digit) via keyboard (without mouse) after pressing Ctrl-G? Currently it places the input caret before the first digit whereas standard editboxes always have it after the selected text. Also when the editbox is selected Home/End keys should work if possible as they usually do, moving the caret...
ANGEL_SU
2nd May 2011, 06:06
@wOxxOm:
1. Upload your options.dat for my study.
2. Ok, I'll make Left/Right key to behave more friendly and also activate Home/End key.
wOxxOm
2nd May 2011, 06:23
@ANGEL_SU: thank you, it was options.dat (http://clip2net.com/s/UOok) issue indeed - however I haven't figured at once which setting does it...
ANGEL_SU
2nd May 2011, 07:02
@ANGEL_SU: thank you, it was options.dat (http://clip2net.com/s/UOok) issue indeed
Thanks for your uploading.
Are you sure 'mt_masktools-26.dll' is in the avisynth plugin folder?
I try using your options.dat and short names of mt_* are all with text highlight. Certainly, long names' highlight are all missing because Avsp highlight routine can not recognize an identifier which contains hyphen-minus(old version also doesn't).
You had better to rename the dll as 'mt_masktools.dll' or 'mt_masktools_26.dll'
PS:
I just modified highlight routine a little. Text highlight/Autocomplete on an identifier which contains hyphen-minus should be fine in next version.
wOxxOm
4th May 2011, 22:20
When using dark color scheme, is there a way to change fold-column color, or maybe hide it?
http://clip2net.com/clip/m73922/1304543758-clip-3kb.png
ANGEL_SU
5th May 2011, 09:09
When using dark color scheme, is there a way to change fold-column color, or maybe hide it?
In next version, I'll add an option to 'Options|Fonts and Colors|Advanced'. Currently, it uses the system color - '3DFACE', maybe you can set it somewhere...
Floatingshed
8th May 2011, 11:42
I wonder if I might suggest a feature...
I often have to export the audio from a script to work on it in an external editor. To do this I load the script in Vdub and save wav etc.
Would it be possible to have an "export audio" function within AvsP?
Thanks.
Chikuzen
8th May 2011, 12:48
I wonder if I might suggest a feature...
I often have to export the audio from a script to work on it in an external editor. To do this I load the script in Vdub and save wav etc.
Would it be possible to have an "export audio" function within AvsP?
Thanks.
put wavi.exe into avspmod\tools folder, and put this Python script into avspmod\macros folder as 'export_wav.py'
#export audio as wave extensible format
import subprocess
input = avsp.SaveScript()
cmd = 'tools/wavi.exe'
output = avsp.GetSaveFilename()
subprocess.Popen([cmd, input, output])
Zarxrax
8th May 2011, 17:22
You can just add
SoundOut()
to your script.
Zarxrax
9th May 2011, 00:16
2.1.4
- added a checkbox 'Allow hyphen character in identifier' in 'Options|Program settings|Text 2'. If you notice any problems with this, try unchcking it, and please report the problem.
- auto recover session from an unexpected shutdown, even you disabled load session at startup.
- 'Tab' key in the slider window is changed to navigate the next control inside this window.
- if a frame is already cached, don't call avisynth.dll function repeatedly.
- add a new menu item "Edit|aviSynth function|Autocomplete all <Alt+Space>" It brings up the FULL autocomplete list, even if you have customized the list.
- add a new menu item "Edit|Style comment Alt+Q"
- add the link of avspmod thread on doom9's forum to 'About' dialog.
- add numpad+ and numpad- shortcuts for Zoom.
- add an option to set color of fold margin in "Options|Fonts and colors|Advanced".
- modified the way shortcuts are handled. Shortcuts involving the escape key are no longer global shortcuts.
- Changed some default shortcuts:
___- Shift+Tab is now unindent selection
___- Esc now shifts focus between text and video
___If you are using an old options.dat, you may need to set these manually.
I think the new "Autocomplete All" feature is very exciting, because it can potentially save you many keystrokes when writing scripts. You can customize the autocomplete keywords to only include your most commonly used commands, but in the case you still need an uncommon command, you can use autocomplete all.
Dogway
9th May 2011, 01:20
Thanks for this prompt version. It looks beautiful!
The remove of Esc being global was something I was going to ask, because it overrides the ones being used in other programs like Photoshop which I commonly use together with avspmod.
Im on a laptop so numpad+ or - involves fn+f11 to unblock numpad keys. I wonder if there would be any problem setting it to the normal + and - keys. Don't know if there are any drawbacks to these.
Style comment: utterly brilliant : P
Zarxrax
9th May 2011, 01:38
Ok, i replaced the zip file with a different version (no version number change), and it shouldnt have the issue with the scrap window popping up anymore.
Dogway: Hmm yea, I guess those zoom shortcuts should be customizable next time.
SubJunk
9th May 2011, 02:07
Thanks a lot for the update, especially the frame caching improvement.
Dogway
9th May 2011, 04:29
A few odds I found out, not sure if deliberate fixes:
"switch video/text focus" doesn't bring back video preview
ctrl+z doesnt undo text modifications when focus is on video
Esc (I have it mapped to "Hide Preview") is now used to hide calltips,a second Esc tap is necessary to hide video preview in this case.
zoom numpad+/- to usual +/- key (or suggested by user). Already noted in previous post
ANGEL_SU
9th May 2011, 10:05
A few odds I found out, not sure if deliberate fixes:
"switch video/text focus" doesn't bring back video preview
ctrl+z doesnt undo text modifications when focus is on video
Esc (I have it mapped to "Hide Preview") is now used to hide calltips,a second Esc tap is necessary to hide video preview in this case.
zoom numpad+/- to usual +/- key (or suggested by user). Already noted in previous post
Yes, that's my intent. By default, the following keys will do nothing in the preview window:
'Tab', 'Shift+Tab', 'Ctrl+Z', 'Ctrl+X', 'Ctrl+C', 'Ctrl+V', 'Ctrl+A'
You can change them to do other thing, but it only takes effect in the preview window. They always do original editing thing in the script window.
I know this will confuse many old users and I will make some improvement later.
Floatingshed
10th May 2011, 02:41
put wavi.exe into avspmod\tools folder, and put this Python script into avspmod\macros folder as 'export_wav.py'
Excellent, just what i needed, thanks.
matfra
16th May 2011, 18:07
I cant even start AVSP since version 2.1.3
I just unzip the program and run it. It shutdown imediatly.
Any one else having this issue ?
This is the error log
[Mon May 16 13:10:32 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 12990, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 12980, in OnInit
File "AvsP.pyo", line 3979, in __init__
File "AvsP.pyo", line 4576, in defineFilterInfo
File "AvsP.pyo", line 4794, in getFilterInfoFromAvisynth
IndexError: list index out of range
Please help me
ANGEL_SU
16th May 2011, 21:18
@matfra
Download this executable (http://www.mediafire.com/?a1202po62arcxxi) and put it under AvsPmod folder. Double-click to run and it will generate a new file named PluginFunctions.dat. Please upload this file for my study.
matfra
17th May 2011, 15:06
I did what you asked me. I still have the same error on 2 different computer.
[Tue May 17 10:08:20 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 12990, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 12980, in OnInit
File "AvsP.pyo", line 3979, in __init__
File "AvsP.pyo", line 4576, in defineFilterInfo
File "AvsP.pyo", line 4794, in getFilterInfoFromAvisynth
IndexError: list index out of range
ANGEL_SU
17th May 2011, 16:08
@matfra
Please run the new executable getPlugins.exe, not AvsPmod.exe. It will also exit right away, but generate a file PluginFunctions.dat under Avspmod's folder.
Please also advise what version of avisynth you are using.
Zarxrax
17th May 2011, 21:46
Version 2.1.5:
- "Configure shortcuts" has been improved
- Add 'Zoom in' & 'Zoom out' to 'Zoom' menu
- If AvsPmod failed to load avisynth.dll, suggest user to install/reinstall avisynth
- fixed regression from 2.1.4 where some options would reset to default values
- fixed various bugs related to autocomplete and syntax highlighting
- Add option 'Amount of letters typed' at 'Program settings|Text1'. It is active when 'Show autocomplete on capital letters' is enabled.
Zarxrax
18th May 2011, 16:24
Hmm, I'm not sure what happened, but the wrong file was uploaded as version 2.1.5. I have replaced it on my server now. The only difference should be that there was no "Advanced" button in the shortcuts editor on the old one. But it still wouldn't hurt to redownload it, even if you dont need that feature.
Dogway
18th May 2011, 21:00
a few things:
-if "find within a word to autocomplete" and I write "make", mt_makediff doesnt come in the list.
-A per function option in function definition for preset or function name autocompletion. Normally I end up highlighting all the (?,?,?,?,?,?,) lines and deleting them, except the ones I have a preset for.
-In your 3rd fix, is it a suggestion or does it reinstall it? it should be aware of mt versions...
-load 2 files in the same script if dropped inside the script, or make 2 scripts (as for now) if dropped on the tab bar.
-Still can't hide the preview if tooltip is active, need a second tap.
-tab labeling.
-I also had another error, in v.2.1.3 (the one I use) but I need more testings to see what it is and be sure...
Zarxrax
18th May 2011, 21:26
a few things:
-if "find within a word to autocomplete" and I write "make", mt_makediff doesnt come in the list.
-A per function option in function definition for preset or function name autocompletion. Normally I end up highlighting all the (?,?,?,?,?,?,) lines and deleting them, except the ones I have a preset for.
-In your 3rd fix, is it a suggestion or does it reinstall it? it should be aware of mt versions...
-load 2 files in the same script if dropped inside the script, or make 2 scripts (as for now) if dropped on the tab bar.
-Still can't hide the preview if tooltip is active, need a second tap.
-tab labeling.
-I also had another error, in v.2.1.3 (the one I use) but I need more testings to see what it is and be sure...
Not sure what you mean by "-A per function option in function definition for preset or function name autocompletion."
To autocomplete just the function name, press tab instead of enter. If you only want it to put some of the parameters instead of all of them, you can customize the function definition.
Also, It does not reinstall anything. Its just presents a more useful error message if there is a problem.
ANGEL_SU
19th May 2011, 06:47
a few things:
-if "find within a word to autocomplete" and I write "make", mt_makediff doesnt come in the list.
The searching routine can't do this. It tries to find "make*" firstly, and then, "mak*", "ma*" and "m*" at final.
...I end up highlighting all the (?,?,?,?,?,?,) lines and deleting them...
I will add '?' icons into autocomplete window for those filters with incomplete presets. You should know which is better, <Enter> or <Tab>.
-Still can't hide the preview if tooltip is active, need a second tap.
The text window will auto scroll to keep caret position visible. So, I think when autocomplete or calltip is active, pressing ESC is to cancel this window, not to run any menu command.
Dogway
19th May 2011, 20:02
...press tab instead of enter.
Thanks! I didn't know that
The Ctrl+Z and so on thing (http://forum.doom9.org/showthread.php?p=1499394#post1499394)that does nothing when focus is on video is a bit... senseless. I mean what can you do to video preview? its a static preview, you can only hide/show it, and zoom it.
Its the same as if "save image" had only worked when focus is on video. But this is only IMHO
ANGEL_SU
20th May 2011, 08:50
@Dogway
If you want those editing keys also active when video preview has the focus. Open the dialog at "Options|Configure shortcuts|Advanced" and don't select them.
Dogway
22nd May 2011, 00:44
Im having a closer look to version 2.1.5. What you suggested is right, it worked, hard to guess but at least is there.
All in all, what I think Im having is a serious workflow crash with the program, the way it is supposed to be used and the way I want it to use.
I think I PM'ed you a few months ago about this, a toogle to show/hide preview. So what I have to do now is in a quick access way render (F5) whichs is acceptable regarding render is not usually a real time thing, ESC for hide preview, and TAB for show preview (It shows using the toggle "switch video/text focus). So here the problem arises; ESC is auto setted for calltip hiding, TAB is autosetted for function name completion. You see, the two most useful keys are autosetted to tasks that are not shown in the shortcuts list.
I can suggest some improvement in this aspect. Show calltip is set to ctrl+shift+Space, why not set hide calltips to ctrl+shift+space (toggle) or something similar +space? (User can always sets custom keys for this) ESC for show/hide video preview toggle, and TAB, well I could set it to function name completion I like it. I tell you from someone who works a lot with still images in full screen maximized avspmod, text area usually ends in an unworkable 2 lines. Yes I know I can set it to more lines, but that in my opinion is not workflow productive, show/hide video preview in full screen with one single key is. There are many design softwares that do this, switch result mode, with working mode: Photoshop, Nuke, Maya, 3DSmax, probably Zbrush, etc
Whatever you do Im still going to use avspmod but this is my constructive critique, maybe other users like the way it is supposed to be used, and that's fine. Maybe more people can comment on this.
Floatingshed
22nd May 2011, 01:18
Can somebody please assist me with some code for a macro...
I have written a macro that saves a nominated frame and allows it to be re-inserted into a script when it has been manually altered.
The file save location is fixed in the macro which means that whatever script I'm working with the images get saved in the same folder causing a possible conflict. How can I automatically create a new folder with the same name as the script so that each script has its own? Here is the "save image" part of the code I'm using at present:
cf = avsp.GetFrameNumber()
frame=str(cf)
avsp.SaveImage(filename='D:\\images\\'+frame, framenum=cf, index=None)
Thanks.
Zarxrax
22nd May 2011, 01:32
Dogway: it sounds like for your workflow you might be better off using a separated preview window, rather than trying to keep toggling preview on and off. It might work especially well if you have a 2nd monitor.
Floatingshed: I'm just guessing, but did you try something like avsp.SaveImage(filename='D:\\images\\'+frame+'\\'+frame, framenum=cf, index=None)
ANGEL_SU
22nd May 2011, 07:57
@Dogway
Ok, I'll add 'Esc' into 'Confgure shortcuts|Advanced'. When it's checked, behaves same as v2.1.5. If uncheked, directly run shortcut's command. Also, when auocomplete or calltip is active, pressing related shortcut again will cancel it.
@Floatingshed
You need import python's os module for a better handling on filename/path. Try the following:import os
framenum = avsp.GetFrameNumber()
#~ dirname = avsp.GetScriptFilename()
dirname, ext = os.path.splitext(avsp.GetScriptFilename())
basename = '%06d.bmp' % framenum
filename = os.path.join(dirname, basename)
# create subdirectory if it's not existing
if not os.path.isdir(dirname):
os.mkdir(dirname)
avsp.SaveImage(filename, framenum)
Floatingshed
22nd May 2011, 11:20
@Floatingshed
You need import python's os module for a better handling on filename/path. Try the following:import os
framenum = avsp.GetFrameNumber()
#~ dirname = avsp.GetScriptFilename()
dirname, ext = os.path.splitext(avsp.GetScriptFilename())
basename = '%06d.bmp' % framenum
filename = os.path.join(dirname, basename)
# create subdirectory if it's not existing
if not os.path.isdir(dirname):
os.mkdir(dirname)
avsp.SaveImage(filename, framenum)
That is a great help, thanks. I'm doing all this in notepad, is there a better/easier way to create macros?
arestarh
22nd May 2011, 13:18
Hello!
Thanks for such great Avisynth's script editor.
But from version 2.14 I see next symbols in menus for shortcuts:
http://i063.radikal.ru/1105/63/d0a9fbae1e34t.jpg (http://radikal.ru/F/i063.radikal.ru/1105/63/d0a9fbae1e34.png.html)
If you need I can post some information about avisynth and OS.
ANGEL_SU
22nd May 2011, 14:51
...But from version 2.14 I see next symbols in menus for shortcuts...
Yes, from version 2.1.4, a shortcut string have additional unprintable character at the position as shown in your image. But, I can't see them at my machine. Please provide the information of your OS.
P.S.
I build an alpha version here (http://www.mediafire.com/?3l3k55tk3i4mebc). Please download and try to see if the problem is solved.
arestarh
22nd May 2011, 17:23
Yes, from version 2.1.4, a shortcut string have additional unprintable character at the position as shown in your image. But, I can't see them at my machine. Please provide the information of your OS.
P.S.
I build an alpha version here (http://www.mediafire.com/?3l3k55tk3i4mebc). Please download and try to see if the problem is solved.
OS info:
Windows XP SP3, ANSI Code Page - windows 1251 (Cyrillic Windows). If you need some specific info, tell me please and I'll post it.
Your alpha build solves problem not in all cases. Unprintable characters don't appear at beginning of key's combination, but appear at beginning of single keys such as F1-F9 or TAB:
http://s44.radikal.ru/i103/1105/62/91e56fd527b8t.jpg (http://radikal.ru/F/s44.radikal.ru/i103/1105/62/91e56fd527b8.jpg.html)
http://s004.radikal.ru/i208/1105/11/09c8047ccc6at.jpg (http://radikal.ru/F/s004.radikal.ru/i208/1105/11/09c8047ccc6a.jpg.html)
Zarxrax
22nd May 2011, 17:47
That is a great help, thanks. I'm doing all this in notepad, is there a better/easier way to create macros?
I recommend getting a text editor which supports python syntax highlighting. Notepad++ is pretty nice.
ANGEL_SU
23rd May 2011, 09:34
@arestarh
It seems hard to deal with your case. Once new version released, I will build one with old wxpython for you(no addtional letter in shortcut string). Remember PM to me.
@Floatingshed
you can try SciTE. It is very similar with AvsP, because both of them use the same library. See this sreenshot:
http://www.dumpt.com/img/files/z6itmhl0z5p7n2z7nyhl_thumb.png (http://www.dumpt.com/img/viewer.php?file=z6itmhl0z5p7n2z7nyhl.png)
As you see, besides text highlight, autocompletion and calltip are also supported - if you have this file (http://www.mediafire.com/?cunhu2f3t9aq83q).
Floatingshed
23rd May 2011, 10:07
I'll give that a try, thanks.
In the meantime I'm having a small problem with my macro, I wonder if you can help please...
The following code is working well except the last line. When I run the macro it saves the current frame plus a frame either side as reference frames. The final line should (I believe) cause the image to be opened by whatever application is system default for .bmp files, but nothing happens! Better still if it could launch paintshop directly! I'm very new to Python...
cf = avsp.GetFrameNumber()
frame=str(cf)
beforeframe=str(cf-1)
afterframe=str(cf+1)
#Save image
import os
dirname, ext = os.path.splitext(avsp.GetScriptFilename())
filename = os.path.join(dirname, frame)
filename2 = os.path.join(dirname, beforeframe)
filename3 = os.path.join(dirname, afterframe)
# create subdirectory if it's not existing
if not os.path.isdir(dirname):
os.mkdir(dirname)
avsp.SaveImage(filename, framenum=cf)
avsp.SaveImage(filename2+' ref', framenum=cf-1)
avsp.SaveImage(filename3+' ref', framenum=cf+1
os.system(filename+".bmp")
One other small thing. Is it possible to force AvsPmod to go to a certain frame from within a macro?
Thanks again.
ANGEL_SU
23rd May 2011, 11:50
@Floatingshed
1: os.startfile(path)
2: avsp.ShowVideoFrame(framenum)
dragon_warrior
23rd May 2011, 15:51
When I encode the video, an error window appears telling me that:
Traceback (most recent call last):
File "C:\Program Files\AvsPmod\tools\encoder_gui.py", line 576, in OnButtonRun
f.writelines(lines)
TypeError: writelines() argument must be a sequence of strings
I'm using the latest ver of AvsPMod. Can anyone help me figure it out? Thanks
ANGEL_SU
23rd May 2011, 16:32
When I encode the video, an error window appears telling me that:
Traceback (most recent call last):
File "C:\Program Files\AvsPmod\tools\encoder_gui.py", line 576, in OnButtonRun
f.writelines(lines)
TypeError: writelines() argument must be a sequence of strings...
Thanks for your report. I can replicate this issue. Currently, make sure characters of input/ouput path are all simple ASCII(english) letters.
P.S.
you can download this mod (http://www.mediafire.com/?d4cgtj6wvmticyk) to replace the old encoder_gui.py.
Floatingshed
23rd May 2011, 18:47
@Floatingshed
1: os.startfile(path)
2: avsp.ShowVideoFrame(framenum)
Thanks for the info. This works:
os.startfile('"C:\Program Files\Paint Shop Pro\PSP.EXE"')
but I can't figure out how to get it to open with the required image. Launching the image itself works too but that requires Paintshop to be the default handler for .BMP files...
I promise I'll leave you in peace soon! Thanks.
Zarxrax
23rd May 2011, 18:54
Version 2.1.6
- Add 'Show autocomplete with variables' to 'Program setting|Text2'. AvsPmod will parse the script and add variable names to the autocomplete list.
- Add 'Show autocomplete on single matched' to 'Program setting|Text2'. This can be helpful when using lowercase, such as for a variable name.
- Add 'Show autocomplete with icons' to 'Program setting|Text2'. This should be helpful to decide which key is better to finish autocomplete, <Enter> or <Tab>. There are 3 different types of icon to indicate how well a filter's preset is defined:
-- OK icon: well-defined (100%)
-- Smile icon: good (>70%)
-- None: 30-70%
-- Question icon: bad (<30%)
- Remove "Allow hyphen in identifier" and also remove illegal long names from autocomplete list.
- Add 'ESC' into "Configure shortcuts->Advanced". If checked, one press doesn't run shortcut command when autocomplete or calltip is active. A second press is needed. If unchecked, directly run command. Default: unchecked.
- Add "Show warning on bad plugin naming" to "Program settings->Misc". If plugin dll files contain characters other than alphanumeric or underscore, it will be suggested that you rename them.
- Allow autocomplete auto active on starting with underscore if there are matched words existing.
- When autocomplete or calltip is active, pressing related shortcut again will cancel it.
- Fixed an issue with filenames in the encoding gui.
Dogway
23rd May 2011, 22:54
Underscore must be not the first character in order to launch avspmod
dragon_warrior
23rd May 2011, 23:52
Thanks for your report. I can replicate this issue. Currently, make sure characters of input/ouput path are all simple ASCII(english) letters.
P.S.
you can download this mod (http://www.mediafire.com/?d4cgtj6wvmticyk) to replace the old encoder_gui.py.
I've renamed the script and it works quite well now. Thanks:thanks:
Portgas_D_Ace
25th May 2011, 12:59
i update avspmod but since i have a pb
Traceback (most recent call last):
File "run.py", line 1, in <module>
zipimport.ZipImportError: can't find module 'os'
os windows7 x64
**resolved**
Dogway
25th May 2011, 16:39
Another critical issue in my workflow:
-I had SmoothAdjust_ICC_x86.dll, and everything is configured according (presets, autocomplete list, etc)
-Now delete it and add the newer SmoothAdjust.dll. Launch avspmod...
You will see how avspmod starts to bitch about anything, old function definition is still stored somewhere and complaining, the same for DLL_underscore list (doesn't get deleted). Besides I lost my presets.
The fix is a painful and careful editing for people who is experiencing the same problems.
-Store both dll's in your plugin list
-manual copy&paste old dll presets to new dll preset
-and change the prefix name according.
-uncheck the old entries.
-At last manual remove the old DLL_underscore entry of your plugin (in case it had underscore)
-And revise autocompletion list to check or uncheck names as configured before.
-shut avspmod, delete old plugin, restart avspmod. enjoy.
ANGEL_SU
26th May 2011, 10:12
@Dogway
Could you provide the error message? So, I can deal with this case thoroughly.
Dogway
26th May 2011, 16:23
Its very easy to reproduce this I think. Empty your plugin folder, and start writting your script. The 2 most common errors were these:
Traceback (most recent call last):
File "wx\_core.pyo", line 14660, in <lambda>
File "AvsP.pyo", line 662, in ShowAutocomplete
KeyError: u'smoothadjust_icc_x86_smoothlevels'
Traceback (most recent call last):
File "AvsP.pyo", line 6634, in OnMenuEditAutocomplete
File "AvsP.pyo", line 662, in ShowAutocomplete
KeyError: u'gicocu_gicocu'
Mounir
27th May 2011, 02:31
Has this new version been improved for User Sliders (http://avisynth.org/qwerpoi/UserSliders.html) because i'm in trouble with a virtualdub filter (Colormill) for instance.I'm always forced to go back & forth between Avsp & virtualdub it's annoying really.A useable user Slider would enhance the things greatly
Zarxrax
27th May 2011, 02:43
Mounir: What is the problem with the user sliders? What would you like to see improved?
Mounir
27th May 2011, 03:00
Well take a look below, here is what i do currently:
ConverttoRGB32(matrix="rec601",interlaced=true)
LoadVirtualdubplugin("C:\Program Files\VirtualDubMod\plugins\colormill.vdf", "colormill",1)
colormill(25700, 25700, 25700, 25700, 100, 25700, 25700, 25700, 25700, 25700, 25700, 25700, 25700, 1124, 5)
This whole giberish is only for luma Levels (dark levels; min/default/max value), the value 100 represent the minimum value actually ( = -100 luma levels), default value is 257000 (= 0) and the highest is 51300 (= +100). What i'd like is to create a user slider that work so i can raise up/down the values according to my needs rather than copy/paste these from a .vcf file saved with virtualdub....
ANGEL_SU
27th May 2011, 04:27
@Mounir
I don't see any problem. Have you tried to select the parameter 100 and F12(Edit|Insert|Insert user slider) to create a slider for it? If you use it frequently, open 'Options|Avisynth function definition' and create/modify it properly.
Mounir
27th May 2011, 04:48
Hmm yeah you're right it's working there is something i don't like though, take a look at this first (virtualdub Gui)
http://img96.imageshack.us/img96/6926/colormill.jpg
In avsp i'd like to have a -100-0-100 scale like in the colormill GUi for vdub instead of 100-25700-51300 scale.My brain can't work with these numbers. If there is a way that would be rockin'
ANGEL_SU
27th May 2011, 05:20
I think you can try to define a user function to do this.
Zarxrax
27th May 2011, 05:49
Hmmm, I think the way you would have to do this is by creating an AVISYNTH wrapper function around your colormill filter. This function would take some sane input values and then do some math to convert it to the massive numbers that the filter requires.
Then you can make user sliders for this wrapper function.
I might be able to take a look at this problem tomorrow.
Mounir
27th May 2011, 09:07
What would actually be the best solution imo is to emulate an interface specifically for vdub plugins (see photo)
I don't know if that's possible but you might seriously take a look at that.
There is another plugin i use regularly and this one is even more complex as it's a string, take a look:
ConverttoRGB32(matrix="rec601",interlaced=true)
LoadVirtualdubplugin("C:\Program Files\VirtualDubMod\plugins\gradationCurves.vdf", "gradation",1)
gradation(6,"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2......etc")
The interface look like this: http://img14.imageshack.us/img14/5582/gcurve.jpg
Zarxrax
27th May 2011, 17:08
Well, I very much doubt that can happen, because it sounds like a very big undertaking.
Honestly, if you are so reliant on virtualdub plugins, your best option is probably to use virtualdub for them (or try to find native avisynth plugins that can achieve the same purpose)
By the way, here is a wrapper function for your colormill, which looks like it should do the trick. Just put this as an avsi file in your plugins folder, and call it with Colormill(number)
Then you can set up a user slider for it, with values from -100 to 100.
function colormill(clip c, int "darklevels"){
darklevels = default(darklevels, 0)
video = c.ConverttoRGB32(matrix="rec601",interlaced=true)
LoadVirtualdubplugin("C:\Program Files\VirtualDubMod\plugins\colormill.vdf", "colormill_vdf",1)
darklevels = (darklevels * 256) + 25700
video = video.colormill_vdf(25700, 25700, 25700, 25700, darklevels, 25700, 25700, 25700, 25700, 25700, 25700, 25700, 25700, 1124, 5)
return video
}
Zarxrax
27th May 2011, 22:41
Small bugfix release:
Version 2.1.7
- Fixed garbage data displayed on shortcut labels
- Fixed wrong checked/unchecked status for 'Flip' menu items.
- Improve menu item 'Hide the preview' to 'Show/Hide the preview.
- Fixed missing customized function presets (This situation happened if an uninstalled plugin is not in filterdb.dat and has no customized definition. Now, avsp will check and keep its definiton as customized definition to avoid missing its preset. If the reason is from renaming, you can copy old preset to new one and then delete. But, leaving it there is also harmless.)
Dogway
28th May 2011, 02:18
Totally unexpected awesomeness, Im looking forward to hard use this version. Just only fix this little issue when changing shortcuts:
Traceback (most recent call last):
File "AvsP.pyo", line 7557, in OnMenuConfigureShortcuts
NameError: global name 'GetTranslatedShortcut' is not defined
ANGEL_SU
28th May 2011, 02:33
Totally unexpected awesomeness, Im looking forward to hard use this version. Just only fix this little issue when changing shortcuts:
Traceback (most recent call last):
File "AvsP.pyo", line 7557, in OnMenuConfigureShortcuts
NameError: global name 'GetTranslatedShortcut' is not defined
Sorry, my bad. Fixed.
Mounir
28th May 2011, 05:00
I'm testing this new version and there is an error window log:
Traceback (most recent call last):
File "AvsP.pyo", line 7215, in OnMenuVideoToggle
File "AvsP.pyo", line 10594, in ShowVideoFrame
File "AvsP.pyo", line 11052, in UpdateScriptAVI
File "wx\_core.pyo", line 9744, in ReleaseMouse
wx._core.PyAssertionError: C++ assertion "GetCapture() == this" failed at ..\..\src\common\wincmn.cpp(2536) in wxWindowBase::ReleaseMouse(): attempt to release mouse, but this window hasn't captured it
This script work perfectly with version 2.0.2 you have some work on the table...
Zarxrax
28th May 2011, 05:54
Mounir: thats with the most recent version, 2.1.7.1?
How did you produce this error? Just by enabling the video preview?
ANGEL_SU
28th May 2011, 07:33
I'm testing this new version and there is an error window log:
Traceback (most recent call last):
File "AvsP.pyo", line 7215, in OnMenuVideoToggle
File "AvsP.pyo", line 10594, in ShowVideoFrame
File "AvsP.pyo", line 11052, in UpdateScriptAVI
File "wx\_core.pyo", line 9744, in ReleaseMouse
wx._core.PyAssertionError: C++ assertion "GetCapture() == this" failed at ..\..\src\common\wincmn.cpp(2536) in wxWindowBase::ReleaseMouse(): attempt to release mouse, but this window hasn't captured it
This script work perfectly with version 2.0.2 you have some work on the table...
Thanks for your report. I added a checking code before calling ReleaseMouse() and this issue should be fixed.
Mounir
28th May 2011, 07:59
Mounir: thats with the most recent version, 2.1.7.1?
How did you produce this error? Just by enabling the video preview?
Yes i have pressed preview that's it.
I have XP SP3 if that can help
matfra
31st May 2011, 16:05
I want to know if other people have the same issue.
When I start AVSP the last version I get a Warning message about all my plugins that are in my AviSynth folder.
The only version works for me is AvsPmod_v2.1.2
Dogway
31st May 2011, 16:30
hey, some notes by using this version:
-this one (http://forum.doom9.org/showthread.php?p=1503119#post1503119)
-remember save mp4 last paremeters (quality,sar...). Remember its settings inside options.dat too, for reusing in next versions.
-on-cache processing option; that is, work over the cached fragment.
-some crashings are not detected (task termination, etc), thus session is not autoloaded
-disable autocomplete calltip when navigating inside function parameters. (This one could be argued)
-when autocomplete calltip is on you can't move cursor
-tab labeling
Motenai Yoda
31st May 2011, 18:25
Can I request some event to refresh the "preview frame" like as avsp do?
I mean refresh by:
- click on preview,
- focus on preview,
- "return" pressed on changing parameters into the "separate video preview window".
I also noticed that in some cases seems to refresh only after be moved backward/forward one/some frame.
SubJunk
31st May 2011, 22:37
Yeah you can always right-click and "refresh preview" but it would be cool to have left-click refresh. I think that would be intuitive
Mounir
2nd June 2011, 17:13
I have another error today:
Traceback (most recent call last):
File "AvsP.pyo", line 7930, in OnNotebookPageChanged
File "AvsP.pyo", line 11052, in UpdateScriptAVI
File "wx\_core.pyo", line 9744, in ReleaseMouse
wx._core.PyAssertionError: C++ assertion "GetCapture() == this" failed at ..\..\src\common\wincmn.cpp(2536) in wxWindowBase::ReleaseMouse(): attempt to release mouse, but this window hasn't captured it
I'm trying NeatVideo it must be related...
Edit:
Yeah i think it's related i'm trying a simple script with the neat video filter only and i can't get a preview, it's working perfectly with the v 2.0.2. Please fix asap thanks
Zarxrax
2nd June 2011, 22:48
Version 2.1.8
- when text has changed, left-clicking the video preview will refresh the preview
- fixed pressing enter while in a text box in slider window not updating the video preview
- add an option 'Refresh preview automatically' to 'Options|Program settings|Video 1'. If disabled, switching focus to the video preview or changing sliders wont cause a refresh
- fixed an issue with mouse release errors
Yobbo
3rd June 2011, 06:40
What's up with this?
http://img220.imageshack.us/img220/6869/unledzc.jpg
kypec
3rd June 2011, 09:11
What's up with this?
http://img220.imageshack.us/img220/6869/unledzc.jpg
I think the error message is pretty explanatory, isn't it?
You must rename the offending plugin files so that they won't contain characters like - (hyphen), try e.g. mt_masktools_26.dll and so on.
SubJunk
3rd June 2011, 11:03
I think the error message is pretty explanatory, isn't it?
You must rename the offending plugin files so that they won't contain characters like - (hyphen), try e.g. mt_masktools_26.dll and so on.Which is kindof a weird error since those are the proper filenames :confused:
kypec
3rd June 2011, 13:04
Yes, I understand that it is an ugly approach to ask the user to rename some files manually but I remember a while ago there was an issue with these filenames and ANGEL_SU (AvsPmod contributor) advised to do so.
Perhaps there was a fix released meanwhile but I really can't tell, I'm not using these new builds (yet) myself.
Zarxrax
3rd June 2011, 17:21
This is not really a limitation of avspmod, but one of avisynth itself.
Generally, you can specify a function name by using its "long name", which includes the name of the dll itself in the function call.
For instance, lets say I want to use the function named "Deen" from the dll Deen.dll.
I could call it with the short name Deen(), or I could also call it with the long name, Deen_Deen()
However, if there is a hyphen in the filename, the ability to call it with the long name breaks.
If you don't care about this, you can just tick the box so that it wont bother you again.
By the way, if you are wondering why anyone might ever want to use the long names, I think that this would allow you to use multiple versions of the same plugin. (im just guessing... this is the only logical reason I can think of)
Gavino
3rd June 2011, 17:58
By the way, if you are wondering why anyone might ever want to use the long names, I think that this would allow you to use multiple versions of the same plugin. (im just guessing... this is the only logical reason I can think of)
That's right - or the similar problem of two unrelated plugins that use the same function name.
http://avisynth.org/mediawiki/Plugins#Plugin_autoload_and_conflicting_function_names_v2.55
Motenai Yoda
3rd June 2011, 20:10
Version 2.1.8
- when text has changed, left-clicking the video preview will refresh the preview
- fixed pressing enter while in a text box in slider window not updating the video preview
- add an option 'Refresh preview automatically' to 'Options|Program settings|Video 1'. If disabled, switching focus to the video preview or changing sliders wont cause a refresh
- fixed an issue with mouse release errors
thanks :p
Mounir
5th June 2011, 08:54
Got an error again today:
Traceback (most recent call last):
File "AvsP.pyo", line 7840, in OnSliderReleased
File "AvsP.pyo", line 10699, in ShowVideoFrame
File "AvsP.pyo", line 11286, in PaintAVIFrame
File "pyavs.pyo", line 342, in DrawFrame
File "pyavs.pyo", line 321, in _GetFrame
File "avisynth.pyo", line 282, in GetFrame
WindowsError: exception: access violation reading 0x08808FE2
I'm working with an AVCsource
wOxxOm
6th June 2011, 16:05
Version 2.1.8
- when text has changed, left-clicking the video preview will refresh the preview
Houston we have a problem!
Previously it was possible to finetune crop etc. parameters by clicking video to see x/y coordinates without updating it. Now if I have 3-10 numbers to finetune in a very complex script, what should I do? Wait 10 times to update video or write down numbers to notepad? Or comment out the line?
BTW, the problem could be possibly resolved by updating statusbar info even if video isn't focused, and this will solve another issue of valueable status info disappearing when switching to textpane.
Or (another handy tweak request) maybe it's possible to ignore changes in comments?
ANGEL_SU
6th June 2011, 21:44
- add an option 'Refresh preview automatically' to 'Options|Program settings|Video 1'. If disabled, switching focus to the video preview or changing sliders wont cause a refresh
You can avoid refreshing as above-mentioned.
In next version, moving mouse on the preview will show the pixel info even the focus is on text window. So that you don't need to click the preview.
SubJunk
6th June 2011, 22:25
- when text has changed, left-clicking the video preview will refresh the previewThanks a lot, this is awesome :)
Dogway
6th June 2011, 23:38
Or (another handy tweak request) maybe it's possible to ignore changes in comments?
yeah, I like this one a lot!
Let me add a few ones.
-Include point in style commenting like "invert#~ .ConvertToYV12"
-understand xx:xx time format as min:sec
-tab repositioning (maybe asking too much)
-tab labeling (once again : )
-No mandatory to save script in order to encode. File name would be taken from default tab name, or tab label if defined.
-Also when Im writing some function parameters, ocassionally when it matches to a function name or its beginning, function autocomplete calltip pops up, when in fact I want to see the parameters calltip.
ANGEL_SU
7th June 2011, 19:20
...
-tab labeling (once again : )
...
I don't understand what this is used for. Could you explain a little more?
Zarxrax
7th June 2011, 21:04
He means the tabs along the top. Instead of containing the filename or whatever, it would be renamable.
I don't really see much benefit of this. If you want a tab to have a certain name, its not difficult to just rename your avs script. But maybe he means for unsaved scripts...
Dogway
8th June 2011, 01:54
Well yes, it depends on how you see the application, a script editor, or a script builder. In the latter case you make a script based in one tab and then using several tabs for testing different parts and filters, like little workshops across tabs. Testing is based in isolation, and this requires tabs and organization. Giving a temporal name to a temporal tab is more useful than a generic static name that says nothing in this case, where after you get the results you would more probably want to close it.
Here Im not meaning to substitute filename, but adding a label name in addition below it for example. It does no harm and is very probably a useful thing.
Its a visual shortcut, and tab reminder of what you were trying to accomplish. Useful when switching videos for comparisons, parallel workflows and whatnot.
kypec
8th June 2011, 05:03
I still can't see what's your point, Dogway, sorry. I agree with Zarxrax on this one - if you want a meaningful name for your tab, then just name the AVS file like that. You have to type the name anyway. You want better organization in your files? Well, use folders and subfolders for that matter. AvsP is basically an editor, a very specialized text editor for certain type of files. I've yet to see
an editor/IDE (integrated development environment) application where tabs with open files would have LABEL feature other than filename itself. It just doesn't make any sense, really.
Dogway
8th June 2011, 13:31
@kypec: yes I know, I haven't seen this either in any application. I just thought you didn't have to stop where other applications went. But its only a suggestion, nothing happens if other people dont agree.
Zarxrax
8th June 2011, 18:41
The main issue with such a feature is that the tabs and stuff like that are all provided by the underlying libraries, so adding additional features like that on top would probably be quite complicated.
khoahoc0508
8th June 2011, 23:19
hello guy,I have a problem:AvsP is crashed with all vesion.Can i fix this?
It look like:
Problem signature:
Problem Event Name: APPCRASH
Application Name: AvsPmod.exe
Application Version: 2.1.8.0
Application Timestamp: 4d38dcaa
Fault Module Name: wxbase28uh_vc.dll
Fault Module Version: 2.8.12.0
Fault Module Timestamp: 4dad2fb2
Exception Code: c0000005
Exception Offset: 0003c623
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1066
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
Dogway
8th June 2011, 23:39
...tabs are all provided by the underlying libraries (...)
Fair enough, thats why I said "asking too much" for tab repositioning, guess tab labeling is too.
(...)You want better organization in your files? Well, use folders and subfolders for that matter. (...)
I dont want anything specific, avspmod got to a point where its doing really fine, now Im only trying to help to improve an application I like and use.
The problem with what you say is that you need to leave avpsmod, navigate too much, click too much, and too much time wasted. Yes it works, but Im not the only one who thought GUI needed some update (Qt)
ANGEL_SU
9th June 2011, 11:19
... but Im not the only one who thought GUI needed some update (Qt)
I doubt who is willing to do this. You need to rewrite the whole procedure if migrating to QT. Also, I haven't learned QT yet.
I think your request isn't too hard. For labeling tab on top, I can put a textbox on tab to simulate it - see photo:
http://www.dumpt.com/img/files/37k6q5qi9yrz9cidtp1o_thumb.png (http://www.dumpt.com/img/viewer.php?file=37k6q5qi9yrz9cidtp1o.png)
For repositioning tab, there are already existing some widgets which can do this. They are compitable with the old interface, so that, it is very easy to do a update.
Zarxrax
9th June 2011, 16:12
I think your request isn't too hard. For labeling tab on top, I can put a textbox on tab to simulate it - see photo:
http://www.dumpt.com/img/files/37k6q5qi9yrz9cidtp1o_thumb.png (http://www.dumpt.com/img/viewer.php?file=37k6q5qi9yrz9cidtp1o.png)
You can put a textbox in a tab? O_O
But how does that work? Click and double click are already reserved functions for tabs. Would it be edited through the right-click menu?
Dogway
9th June 2011, 16:25
Zaxrax, maybe the same as renaming filenames, click and seconds after click again to edit (edit: or F2?). btw I didnt know about the double click! nice one.
These are only ideas, just in case you find them useful, no problem if they are declined. The Qt thing was just to answer to kypec, I dont have the right to ask you for this kind of things, since I dont do any programming.
Zarxrax
9th June 2011, 16:56
Maybe I should try to make a video tutorial to avspmod sometime. There are lots of features which are easy to overlook.
elguaxo
9th June 2011, 17:09
Maybe I should try to make a video tutorial to avspmod sometime. There are lots of features which are easy to overlook.
Yes please! :)
ANGEL_SU
10th June 2011, 05:20
You can put a textbox in a tab? O_O
But how does that work? Click and double click are already reserved functions for tabs. Would it be edited through the right-click menu?
Although no simple method available in library, position and size of a tab can be figured out indirectly.
As Dogway guessed, click current tab to do renaming. I'll also add this into 'File' menu and tab's right-click menu. Therefore, you may define a keyboard shortcut to access it.
LigH
10th June 2011, 07:24
Placing a control on top of another is not too hard, as you can see in the codecs table of ffdshow: It looks like a combobox would appear in the grid if you select a codec choice (e.g. for Xvid: disabled/libavcodec/Xvid), but in fact it is placed on top of the grid. Proof: Click it to make it appear, then use the mouse scrollwheel to move the grid below the combobox.
Renaming files in an Explorer control (a File Open dialog content is just that) is slightly different, that feature is already provided by the Common Controls foundation, I believe...
Mounir
11th June 2011, 22:27
I have a big problem today AVSP won't work, why it's a mistery, when i run it there is a pop up window which disapear quickly, see image below:
http://img839.imageshack.us/img839/4030/avspproblem.png
I've tried various versions of AVSP, same issue and i haven't changed a thing on my comp since yesterday
Dogway
11th June 2011, 22:29
Does avsp open at all? maybe is this (http://forum.doom9.org/showthread.php?p=1503119#post1503119) bug?
Mounir
12th June 2011, 00:42
I don't think i have XP this bug appeared out of nowhere really, still unresolved after a couple of boots & reboots
Mounir
12th June 2011, 01:00
Well i just found out it's in relation with a plugin for avisynth Didée gave to me
ANGEL_SU
12th June 2011, 05:20
Well i just found out it's in relation with a plugin for avisynth Didée gave to me
Could you tell me what plugin it is?
Mounir
12th June 2011, 13:03
GrainFactory3a.avsi for yuy2 support, if i put it i nthe plugins folder avsp crash if it's in a subfolder everything's ok
StainlessS
13th June 2011, 21:52
Just to let you all know, several Anti-Virus type scanners detect the "gdiplus.dll" as dodgy.
Scanned today via VirusTotal.com where 3 out of 42 scanners said the below:
Comodo UnclassifiedMalware
McAfee Suspect-AB!28F1F1AD2607
Rising Trojan.Win32.Generic.126013FE
Am uploading to Comodo for their perusal.
LigH
14th June 2011, 07:59
Probably rather typical behaviour-based false positives.
dragon_warrior
18th June 2011, 16:08
Everytime I start AvsPMod 2.1.8, it says
Error parsing GetSystemEnv_GetWorkingDir plugin parameters: unknown character
Error parsing GetSystemEnv_SetWorkingDir plugin parameters: unknown character
Error parsing GetSystemEnv_GetFileInfo plugin parameters: unknown character
I've just reinstall the OS (Win 7 32-bit). What's wrong with AvsPMod?
Gavino
18th June 2011, 16:36
Error parsing GetSystemEnv_GetWorkingDir plugin parameters: unknown character
This sounds like the problem I reported here:
With AvsP, this can occur if a function from an auto-loaded plugin is called from an auto-loaded .avsi file, eg
global AviSynthPluginsDir = GetWorkingDir()
It shows up as AvsP producing an error message "Error parsing <xxx> plugin parameters: unknown character <x>".
If it's the same thing, it's actually caused by a bug in Avisynth, fixed in 2.6.0 Alpha 3.
dragon_warrior
19th June 2011, 09:46
This sounds like the problem I reported here:
If it's the same thing, it's actually caused by a bug in Avisynth, fixed in 2.6.0 Alpha 3.
You're right. Works like a charm now. Thanks
RedDwarf1
20th June 2011, 22:46
This sounds like the problem I reported here:
If it's the same thing, it's actually caused by a bug in Avisynth, fixed in 2.6.0 Alpha 3.
It's good to see that someone found the cause of this bug because I had some personal experience of it and know how variably annoying it could be.
It's just a pity that I cannot use 2.6.0 Alpha 3 due to the lack of any multi threading support.
However, I congratulate you Gavino on your persistence on this matter, it did finally get a result.
wOxxOm
21st June 2011, 09:24
how about "Display aspect ratio" submenu (not necessarily as cluttered as virtualdub's)?
#~ Many of us work with anamorphic video and use temporary resize just for the previewing purpose.
RedDwarf1
22nd June 2011, 12:51
how about "Display aspect ratio" submenu (not necessarily as cluttered as virtualdub's)?
#~ Many of us work with anamorphic video and use temporary resize just for the previewing purpose.
That would be helpful because ATM temporary resizing is the only way to do it which is not ideal.
Dogway
22nd June 2011, 13:27
...which is not ideal.
Why not?
That would involve pixel interpolation blind to the end user, then they will start complaining about ringing, blurring, etc. Just use RatioResize() at the end of the script and problem solved, plus you'd know what you are doing.
wOxxOm
22nd June 2011, 13:38
@Dogway: your logic kills Zoom/Flip/YUVRGB as well. Why would an anamorphic zoom be any worse than usual zoom? Because of current pointresize method? People have used VirtualDub for over a decade (me included) and what, anyone had a problem with that?
There is a simple solution - an option to choose AvsP window zoom method - pointresize, bilinear, bicubic, etc. - this way a user could balance speed and quality.
Dogway
22nd June 2011, 13:47
You named it, zoom/flip doesn't do any (subpixel) interpolation, its nearest neighbor. RGB conversion is unavoidable, that solely depends on avspmod, but as you already know linear high depth color space conversion is a fairly new and heavy task. You can look into dither or resampleHQ for that matter.
wOxxOm
22nd June 2011, 13:59
@Dogway: I totally fail to understand your objection and even if there is one - all software players scale an anamorphic video using bicubic or worse methods and nobody dies. The same feature is suggested for AvsP which is used by savvy people, and it's a handy addition. I'd say it's pretty obvious that for many people it'd be at the very least as useful as various yuv->rgb modes or H/V flip.
Dogway
22nd June 2011, 14:10
@wOxxOm: What I want to say is that avspmod is not a playback software, its a debug software and as so, I want to see my naked results with clean pixels, not contaminated with blind conversions. How can you evaluate image sharpness, or ringing, or even noise using an interpolator over it? But in the hipothetically case you ever want that, just add a resize function at the end of the script. Now if you just want another user to confirm this, I'm not going to continue arguing. I just think its not a very clever implementation, and maybe software can be improved in other aspects, but it doesn't affect me if at last it gets implemented.
wOxxOm
22nd June 2011, 14:17
@Dogway: FYI checking sharpness and such is meaningless at 480p (common anamorphic video size) per se, only when you see it scaled to an average viewing resolution (surprise!) using an average scaling method (bicubic/bilinear). Anyway a debugging tool would be a lot more handy to use if it provided an on-the-fly ratio correction coupled with resizing method selection.
Dogway
22nd June 2011, 14:26
...coupled with resizing method selection.
https://github.com/chikuzen/ARDeformation
wOxxOm
22nd June 2011, 14:35
@Dogway: and what? There are lots of ways I can do it manually in a script, but the proposal is to enhance AvsP out-of-the-box.
Zarxrax
22nd June 2011, 16:13
Well, I can see both sides, but after looking at virtualdub's implementation, how can we make an implementation that's not so cluttered? As virtualdub shows, there are LOTS of different aspect ratios that people might want it to resize to. The only way to simplify it would be to simply not allow so many options. But then who is to say which aspect ratios are most important? We could add an option for the user to specify their own aspect ratio, but then that is adding even more complexity to a simple problem. On top of that, you have suggested that the user even be able to select which resizing filter is used.
With all of this its possible for the user to have to search through several menus looking for various items, when in the end all that had to be done was write 'LanczosResize(x,y)' at the end of the script.
At that point, you may as well have just used the resize calculator thats already present in Avsp.
I'm not really opposed to this idea, but let's think of a way to avoid complexity with it.
wOxxOm
22nd June 2011, 16:34
probably:
textfield in Options: Aspect ratios="4/3 16/9 2.35"
so a user can add needed ratios by a mere typing/copypasting from wikipedia's list.
an example of common ratios in textfield label (below the label e.g.)
resize method selector could be a combobox/radiobutton list - BTW this option would be great also in case a user likes to see zoomed video the way it will be viewed in a common player and doesn't care about by-pixel fidelity of pointresize.
probably a checkbox [x] use for 1:1 ratio zoom as well
ANGEL_SU
22nd June 2011, 18:40
@wOxxOm
I will not do this, because this may cause the source code very hardly to maintain. I realize it when I implemented 'no delay zooming' before.
Insteadly, I will improve "Macro" menu. You can use file name/structure to create a submenu with check items or radio buttons. And then, you can easily accomplish this purpose by yourself.
Zarxrax
22nd June 2011, 18:49
Thats actually a pretty good idea. If you do it through a macro, you can assign a keyboard shortcut to it, then its even easier than going through a menu.
wOxxOm
23rd June 2011, 08:01
Understood, but it won't help with ratio correction *on-the-fly without modifying avs-script*, however a nice addition anyway.
Not related to ratio, but to enhancing of the macro functionality: it'd be nice if more AvsP functions are exposed, such as those allowing to read script at arbitrary position (GetCurrentPos, WordStartPosition, WordEndPosition, GetTextRange) so that a keyboard macro like GoToFrameNumberUnderCursor would work without selecting the number first which is very cumbersome.
ANGEL_SU
23rd June 2011, 17:53
Understood, but it won't help with ratio correction *on-the-fly without modifying avs-script*, however a nice addition anyway.
Not related to ratio, but to enhancing of the macro functionality: it'd be nice if more AvsP functions are exposed, such as those allowing to read script at arbitrary position (GetCurrentPos, WordStartPosition, WordEndPosition, GetTextRange) so that a keyboard macro like GoToFrameNumberUnderCursor would work without selecting the number first which is very cumbersome.
I think macro function should not be too complicated. In fact, your requested functions are already existing somewhere. You can get the current script's handler like this:
script = avsp.GetWindow().currentScript
And then, hundreds of functions are available. See this link:
http://www.yellowbrain.com/stc/index.html
You can read 'Selection & Positioning' and 'Text setting and retrieval' firstly.
wOxxOm
24th June 2011, 19:29
insanely awesome, thanks... but avsp class has no GetWindow function - will it be added in future?
ANGEL_SU
25th June 2011, 04:27
... but avsp class has no GetWindow function - will it be added in future?
Sorry, i make a mistake. You can't call avsp.GetWindow() in macros, because it is only exposed for tools.
A tool script is very similar to a macro, except that you need to put .py file in 'tools' folder and define an entry function named avsp_run(). And then, write you code underneath this function.
e.g. a GoToFrameNumberUnderCursor.py will be like:
def avsp_run():
script = avsp.GetWindow().currentScript
cursorpos = script.GetCurrentPos()
startpos = script.WordStartPosition(cursorpos, True)
endpos = script.WordEndPosition(cursorpos, True)
frametext = script.GetTextRange(startpos, endpos)
avsp.ShowVideoFrame(int(frametext))
Anyway, in next version, GetWindow() will be available in macros.
wOxxOm
25th June 2011, 08:08
wow, thanks, a whole world of possibilities is already here! It indeed seems like there's no need to extend avsp macros class except for GetWindow().
p.s. at long last I've made PasteVideoCursorXY.py that pastes relative mouse coordinates into script :3 IMO this one and pasteColorAtCursor might be incorporated into AvsP.
Zarxrax
29th June 2011, 17:49
Really really big update here, but I'll just list the major points:
Version 2.2.0
- Reorganized several menus and changed some default settings to improve usability.
- Tabs can be repositioned and renamed.
- Scripts can be encoded without saving.
- Improvements to macros.
- When moving cursor on the preview, show pixel information even if the preview isn't focused.
- Frame number textbox can accept mm:ss format, and you can input -1 to go to the last frame.
- User sliders can have their values rescaled.
- MANY minor bugfixes and improvements
Info on the macro enhancements can be seen in the new examples and in the macros_readme.txt.
User slider values rescaling works by adding a + or - character to the sliders label.
Tweak([<"hue +", -180, 180, -180>]) > This will rescale the slider to use a value of 0 to 100 rather than -180 to 180.
Tweak([<"hue -", -180, 180, -180>]) > This will rescale the slider to use a value of -100 to 100 rather than -180 to 180.
This currently only works for user sliders inserted directly into the script (Edit>Insert>Insert user Slider)
Youka
29th June 2011, 18:43
One request:
I've done a filter, that can throw an error during frame filtering (in 'GetFrame' function). In MPC i'll see the error message, in AvsPMod, like in AvsP, i'm getting this error window:
Traceback (most recent call last):
File "AvsP.pyo", line 7380, in OnMenuVideoRefresh
File "AvsP.pyo", line 11075, in ShowVideoFrame
File "AvsP.pyo", line 11662, in PaintAVIFrame
File "pyavs.pyo", line 343, in DrawFrame
File "pyavs.pyo", line 321, in _GetFrame
File "avisynth.pyo", line 332, in GetReadPtr
ValueError: NULL pointer access
Possible to fix that?
Dogway
29th June 2011, 21:07
-Also I though about context highlighting, for example:
mask=mmask()
Here mask is a variable, there is no reason to be highlighted. The same when used as parameters. This can be paired with the last request from this post (http://forum.doom9.org/showthread.php?p=1506110#post1506110)
-Also changing tab name, changes script name¿?
-when using autocomplete just before a function, the loaded function substitutes the older one.
-when frame skippin or jumping, video doesn't update upon script changes (until you hit f5, it keeps processing the old version of your script) (on v.2.1.7.1)
Im aware this is fixed in 2.2.0 ticking "Refresh preview automatically" but that produces you can't click on video preview anymore if you don't want to render preview, in this way you can't also navigate inside the preview when in zoom mode, or click over to focus video, or simply closing the context menu, etc, it should be a separate option...
-avspmod at launch complains about SSIM.0.25.dll. What's the problem with this? the points? aren't they alphanumeric?
-avspmod still has a very unstable performing when taking out plugins. It just doesn't want to launch with next message:
[Sun Jul 10 14:38:23 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "F:\AvsPmod\src\AvsP.py", line 13810, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "F:\AvsPmod\src\AvsP.py", line 13800, in OnInit
File "F:\AvsPmod\src\AvsP.py", line 4143, in __init__
File "F:\AvsPmod\src\AvsP.py", line 4857, in defineFilterInfo
TypeError: 'set' object does not support item deletion
However if I ticked back the check in the function of the function definition of these plugins, I could then take them out, and avpsmod could launch.
-crop editor doesn't allow input of more of 3 values.
-new feature: "Update avspmod". Useful for reloading plugins when you are taking them out/in, cleaning cache, or just for fixing the program UI drawing when it gets bugged due to any filter (without loosing actual project session)
-encoding creates a new script in my source folder
-Add to the video context menu, "copy avisynth error to clipboard"
-Can't go to time based input frame when video isn't cached.
-Can't go to frame from input frame box after having an avisynth error. It forces me to clean cache, really annoying and unconvenient when you are previewing synced tabs, a range of frames or just have a very slow script. (Actually this is another side effect of the 6th issue listed in this post)
-Customizeable yuv to rgb procedure (for when saving images or video preview, to take advantage of the newer filters) (You have converttorgb32, ResampleHQ, Dither, etc)
-Drag&Drop video preview to a tab to work over a cached source.
-Option to save image as "name of source"(+framenumber)
-When releasing video from cache, or losing focus on avspmod, frame input box refreshes (you lose whatever you wrote down there)
-Everytime you add a new version of the plugin, or replace them by an old one, even with the same filename, autocompletion keywords get reseted for that plugin.
Easy example: uncheck an autocompletion entry for a given plugin. Exit avspmod, move out plugin, start avspmod, exit avspmod, put back plugin, start avspmod, autocompletion resetted
-Ability to lock a tab (in order to avoid video preview update when misclicking)
-By default the preset input for autocompletion list (Tab hotkey) is overriden by Indent Selection (Also Tab hotkey) therefore it can be said it is a hidden feature. To enable it, change the Indent Selection hotkey/shorcut.
-Shortcuts are not stored in options.dat
-Options.dat cannot be imported succesfully until you manually edit the new avspmod version inside the file.
-new bug since the 15-12-11 update (and thus v.2.2.1 on). Open crop editor triggers the next error message:
Traceback (most recent call last):
File "F:\AvsPmod\src\AvsP.py", line 4497, in OnIdle
File "F:\AvsPmod\src\AvsP.py", line 8558, in OnMouseMotionVideoWindow
AttributeError: 'NoneType' object has no attribute 'LeftIsDown'
SubJunk
29th June 2011, 21:46
Thanks a lot for the update, repositioning tabs is something I meant to request :D
wOxxOm
29th June 2011, 22:56
- When moving cursor on the preview, show pixel information even if the preview isn't focused.
might be handy if the info is kept after pressing pane switch hotkey / typing - probably just add Line/Col at the start of custom statuses and make this combined statusbar shown permanently.
just found out that avs definition importer doesn't like comments /* */ inside function header
SubJunk
29th June 2011, 23:18
Seems like maybe this update changed the preview caching, it seems like the preview pane gets cached after the second time now instead of the first, e.g. I preview one tab, go to another one, then go back to the first one and it reloads, but after that second load it doesn't do it again.
Caroliano
30th June 2011, 02:24
Feature request: implement something like AVSMeter (http://doom10.org/index.php?topic=1817.0) in tools menu. Maybe a button somewhere down in the player. Maybe even a keyboard shortcut! And negative fps metering! :p
I often want to know how slow is my script, and how the changes I do affect the speed. Inside AvsP, I can only feel it imprecisely by FFing the video preview.
Thanks a lot for the update, repositioning tabs is something I meant to request :D
I wanted to say the same!
:thanks:
Zarxrax
30th June 2011, 13:34
Caroliano: there is an avs plugin that can be used for this purpose: http://home.pages.at/kassandro/AvsTimer/AvsTimer.htm
wOxxOm
1st July 2011, 13:22
definition importer also fails at parsing dither.avsi (awesome stuff (http://forum.doom9.org/showthread.php?p=1386559#post1386559) btw) because of this:
Function Dither_undef ()
{
return (Dither_undef2 ())
Function Dither_undef2 (val "undef")
{
return (undef)
}
}
Gavino
1st July 2011, 14:56
Function Dither_undef ()
{
return (Dither_undef2 ())
Function Dither_undef2 (val "undef")
{
return (undef)
}
}
The Avisynth parser (I think by a quirk more than by design) allows nested function definitions, but there's no point because all functions (even those defined inside another) have global scope.
In any case, the Dither_undef function can be written simply as
function Dither_undef () {}
(see here).
From v2.60, the internal function Undefined (http://avisynth.org/mediawiki/Internal_functions/Control_functions)() can be used.
Youka
1st July 2011, 16:55
One request:
I've done a filter, that can throw an error during frame filtering (in 'GetFrame' function). In MPC i'll see the error message, in AvsPMod, like in AvsP, i'm getting this error window:
Traceback (most recent call last):
File "AvsP.pyo", line 7380, in OnMenuVideoRefresh
File "AvsP.pyo", line 11075, in ShowVideoFrame
File "AvsP.pyo", line 11662, in PaintAVIFrame
File "pyavs.pyo", line 343, in DrawFrame
File "pyavs.pyo", line 321, in _GetFrame
File "avisynth.pyo", line 332, in GetReadPtr
ValueError: NULL pointer access
Possible to fix that?
*push*
wOxxOm
2nd July 2011, 18:53
It may be related to another error reporting issue:
AvsP instantly and silently closes after launching if any of .avsi autloading scripts has a syntax error.
The log is non-informative either: {...skipped...} File "AvsP.pyo", line 4972, in getFilterInfoFromAvisynth
Also, syntax highlighting is causing 0.5s delays when typing inside "quotes" or blockcommenting via Ctrl-Q, the avs-script has about 100 lines.
Also, with syntax highlighter disabled AvsP doesn't show video after being restarted, and throws an error:
File "AvsP.pyo", line 1572, in OnKeyUp
AttributeError: 'AvsStyledTextCtrl' object has no attribute 'nonBraceStyles'
P.S. How to set up a debug/compile environment for AvsP? I'd like to trace such issues myself so that it'll be fixed sooner.
ANGEL_SU
3rd July 2011, 20:49
... syntax highlighting is causing 0.5s delays when typing inside "quotes" or blockcommenting via Ctrl-Q, the avs-script has about 100 lines.
For conveniently tracing this, please upload your script.
... with syntax highlighter disabled AvsP doesn't show video after being restarted, and throws an error:
File "AvsP.pyo", line 1572, in OnKeyUp
AttributeError: 'AvsStyledTextCtrl' object has no attribute 'nonBraceStyles'
Fixed. Thanks for your report.
How to set up a debug/compile environment for AvsP?[/B] I'd like to trace such issues myself so that it'll be fixed sooner.
A standard way is to install Python firstly, and then install 2 of python module - wxPython and py2exe. Before double-clicking avsp.py to run the program, copy tools folder, macro folder, help folder and filterdb.dat into src folder. To make a distribution, just double-click avsp_build.py to build it.
Another simple way is just updating /lib/library.zip with the latest/mod py files and you don't need to install anything.
wOxxOm
3rd July 2011, 20:57
thank you, I'll _try_ to look into it myself :3, meanwhile a typical script looks like this (http://pastebin.com/iCDhcaGa), with a few hundred bookmarks (like this scenecut list (http://pastebin.com/UDvLiW07))
ANGEL_SU
3rd July 2011, 21:21
Ok, I see the problem. It seems to have the correlation with 'Incomplete string' of highlighting. Before solving this problem, please goto Options|Fonts and colors|Advanced and disable this option.
wOxxOm
3rd July 2011, 21:25
Ah, I just gonna have that option permanently disabled :) thank you
Yellow_
3rd July 2011, 22:03
Excellent!, latest version of AVSPmod will give a Video Preview on Linux under Wine, 2.2.0 is the first version to do this, awesome. Don't know what you did but great. :-)
But I'd also like to add a bug report, which started occurring after about version 2.1.0 again it's on Linux with Wine but I'd like to mention it, it's specific to brackets.
I get a crash if I delete a bracket, but only if that bracket is associated with a 'known' function ie highlighted light green like ConvertToRGB(), or LoadPlugin(...), deleting the last bracket causes AVSPmod to crash but it doesn't crash deleting a bracket off an unrecognised command, like FFmpegSource2, or Dither(...) again this is just on Linux under Wine.
On early versions of AVSPmod pre 2.1.0, on Linux with Wine deleting brackets doesn't cause a crash.
I appreciate that trying to bug hunt on Linux + Wine may be considered to be a step too far, but with video preview now working AVSPmod is even more usable on Linux. Thanks for the continued advances being made.
ANGEL_SU
4th July 2011, 11:11
Excellent!, latest version of AVSPmod will give a Video Preview on Linux under Wine, 2.2.0 is the first version to do this, awesome. Don't know what you did but great. :-)...
A mere coincidence. I know nothing about Wine.
niiyan
4th July 2011, 17:05
I tried to use AvsPmod v2.2.0 with Japanese translation.py, but it failed to start.
Error log (avsp_error_log.txt) says:
[Mon Jul 04 23:29:04 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 13791, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 13781, in OnInit
File "AvsP.pyo", line 4467, in __init__
AttributeError: 'NoneType' object has no attribute 'GetSubMenu'
I don't know what this error means. But I happend to remove Japanese translations from those two lines below, then AvsPmod runs normally.
"Zoom" : u"ズーム",
"&Zoom" : u"ズーム(&Z)",
Even if those lines have non-Japanese characters except for "Zoom", AvsPmod also crashes. "Zoom" is OK, but "zoom" causes crash.
Zarxrax
4th July 2011, 17:11
Niiyan: The translation files have not been updated at all for Avspmod. They are still the old translations from Avsp. Because some menu items have changed, maybe this causes the problem.
Someone will probably need to update them in order to be fully compatible.
niiyan
4th July 2011, 17:36
@Zarxrax
Thank you for your reply.
I didn't used old Japanese translation.py. I used translation.py generated by AvsPmod v2.2.0. Even if I translated only the "Zoom" lines I mentioned before, AvsPmod still crashed.
ANGEL_SU
4th July 2011, 17:55
@niiyan
My bad. It is actually a bug in AvsPmod v2.2.0. Thanks for your report.
P.S.
If you have a zip tool, please update lib/library.zip with this file (http://www.mediafire.com/?fbkpd1s12kil6if) to see if the problem solved.
e.g. put the file together with library.zip and run zip.exe like:
zip.exe -u library.zip AvsP.pyo
niiyan
5th July 2011, 14:55
@ANGEL_SU
That file solved the problem.
Thanks!
ANGEL_SU
6th July 2011, 11:35
might be handy if the info is kept after pressing pane switch hotkey / typing - probably just add Line/Col at the start of custom statuses and make this combined statusbar shown permanently...I changed to show Line/Col at the right end part of status bar. So, the pixel info should be kept there while typing.
Seems like maybe this update changed the preview caching, it seems like the preview pane gets cached after the second time now instead of the first, e.g. I preview one tab, go to another one, then go back to the first one and it reloads, but after that second load it doesn't do it again.Yes, this is a new bug in version 2.2.0. Fixed.
definition importer also fails at parsing dither.avsi...Fixed (2011-07-12).
-avspmod still has a very unstable performing when taking out plugins. It just doesn't want to launch with next message:
[Sun Jul 10 14:38:23 2011]
Traceback (most recent call last):
...
File "F:\AvsPmod\src\AvsP.py", line 4857, in defineFilterInfo
TypeError: 'set' object does not support item deletionFixed (2011-07-12).
a small folding glitch...Fixed (2011-07-25).
...My avs plugins folder was empty, and that was causing AvsPmod to crash...Fixed (2011-08-19).
... syntax highlighting is causing 0.5s delays when typing inside "quotes" or blockcommenting via Ctrl-Q, the avs-script has about 100 lines.Fixed (2011-11-07) if the problem is due to 'Incomplete string' style.
I updated the library, I turned off incomplete string, the typing is still very slow.Repeatedly calling the folding code is the reason. Fixed(2011-11-07).
...
-when you are frame skipping pixel data dissapear until you move the cursor again
-when you open a second instance of avspmod, "a crash is detected" message appears (and autoloads last session if you have that option on)
-the 10th tab doesn't want to open when I press 0
...
-Option to save image as "name of source"(+framenumber)Fixed. (2011-11-15)
2011-11-22: In previous beta version, when you switch tabs or skip frames, AvsPmod will show pixel data if cursor is already inside the preview window. But the color is usually wrong unless you move the cursor again. Fixed.
2011-12-15: Fix a bug in the macro's function - GetTextEntry(). See this post (http://forum.doom9.org/showthread.php?p=1544585#post1544585).
If anybody would try the latest code, you can use a zip tool to update lib/library.zip with this file (http://www.mediafire.com/download.php?f6v465a024sgtpr) (Avsp.pyo 2011-12-15). If you get an error message "Translation file update failed" on every start up , please also update lib/library.zip with this file (http://www.mediafire.com/download.php?aweabbeq11tcbzw) (__translation_new.pyo 2011-12-15).
wOxxOm
10th July 2011, 13:10
a handy macro for 2.2+ to shift bookmarks by a given +/- number of frames
try:
shift=int(avsp.GetTextEntry("Shift bookmarks by # frames"))
try:
bookmarks=[(b+shift, t) for b,t in avsp.GetBookmarkList( title=True )]
except TypeError:
bookmarks=[(b+shift) for b in avsp.GetBookmarkList()]
avsp.GetWindow().DeleteAllFrameBookmarks()
avsp.SetBookmark( bookmarks )
except:
pass
Mounir
11th July 2011, 03:17
I get an error whenever i don't save a script (save as) and use the same video in two different scripts (not sure it's related), one with no filter in it, the second a bit more complex (with fft3dfilter mainly) but not so much.
Then when i go from one tab to the other it's crashing 9 times out of 10.
Please fix this bug, it's really annoying.
Mounir
12th July 2011, 09:01
Another problem today .I have reinstalled XP it seems the filters won't auto load despite the fact i have them in the plugins folder, what could be the reason ?
wOxxOm
12th July 2011, 09:33
@Mounir: avisynth plugin autoload (http://avisynth.org/mediawiki/Plugins#Plugin_autoload_and_name_precedence_v2)
Mounir
12th July 2011, 21:37
Thanks i have solved this problem with your link woxxom, only one remain now
RedDwarf1
13th July 2011, 01:00
I am getting a problem with 2.2.0 and with 2.1.6 but it worked fine with 2.1.3. That is the switch from text to video using Shift+Tab. On 2.1.3 and earlier versions it worked fine, switching between the edit text window and the video preview. However on 2.1.6 and 2.2.0 pressing Shift+Tab only moves the cursor backwards by one tab position. It doesn't select the video window. The keyboard shortcuts are okay and are set as they were.
The only way to select the video is to use the mouse. Has AvsPmod now become only mouse operated? Has anyone else noticed this?
wOxxOm
13th July 2011, 06:07
Shift-Tab now operates in pair with Tab to unindent/indent text similar to all the text editors out there.
Use Esc to switch panes or set another hotkey - I've got used to F1.
Mounir
13th July 2011, 17:56
Error window today: (on v2.2)
Traceback (most recent call last):
File "AvsP.pyo", line 7960, in OnButtonTextKillFocus
AttributeError: 'NoneType' object has no attribute 'Framecount'
the scrip it use:
DGMultiSource("C:\myvideo.dgi",i420=false,deinterlace=0,use_top_field=true,use_pf=true).trim(301,0)
Deblock_QED(24,26)
AssumeTFF()
QTGMC( Preset="Slower" )
SelectEven()
Mounir
13th July 2011, 18:01
Error window today: (on v2.2)
Traceback (most recent call last):
File "AvsP.pyo", line 7960, in OnButtonTextKillFocus
AttributeError: 'NoneType' object has no attribute 'Framecount'
the scrip it use:
DGMultiSource("C:\myvideo.dgi",i420=false,deinterlace=0,use_top_field=true,use_pf=true).trim(301,0)
Deblock_QED(24,26)
AssumeTFF()
QTGMC( Preset="Slower" )
SelectEven()
RedDwarf1
13th July 2011, 21:12
Shift-Tab now operates in pair with Tab to unindent/indent text similar to all the text editors out there.
Use Esc to switch panes or set another hotkey - I've got used to F1.
Thanks, it must of been the changes made which broke it for me with how I had it setup.
I keep hoping that ESC will get used to stop script processing for when very intense processing stuff and key repeats cause AvsPmod to keep updating the preview long after the next frame key is released.
wOxxOm
16th July 2011, 20:50
I previously reported a problem of AvsP throwing an error (due to a faulty/complex script) and then never recovering allocated memory back and a few other vicious side effects. Well it seems that the problem fix is trivial - just a try/except in PaintAVIFrame:
try:
script.AVI.DrawFrame(frame, dc.GetHDC())
if self.flip:
img = bmp.ConvertToImage()
if 'flipvertical' in self.flip:
img = img.Mirror(False)
if 'fliphorizontal' in self.flip:
img = img.Mirror()
bmp = wx.BitmapFromImage(img)
dc.SelectObject(bmp)
except:
wx.MessageBox('Frame redraw failed', 'Error', style=wx.OK|wx.ICON_ERROR)
Being put to library.zip instead of AvsP.pyo it works, however is it possible to generate a more informative message using some exception properties?
ANGEL_SU
17th July 2011, 04:03
... it must of been the changes made which broke it for me with how I had it setup...
Yes, some keys are reserved as editing only by default. If you are preferring to old shortcuts, go to 'Options|Keyboard shortcuts...|Advanced' and disable all of options.
...however is it possible to generate a more informative message using some exception properties?
You may try 'str' or 'unicode' method to retrieve the error message from an exception instance. e.g.:
try:
script.AVI.DrawFrame(frame, dc.GetHDC())
except (WindowsError, ValueError) as err:
wx.MessageBox(str(err), 'Error', style=wx.OK|wx.ICON_ERROR)
return
Wrong
17th July 2011, 16:48
http://i.imgur.com/0Ue0c.jpg
I've problem with AvsPmod , please help me :(
wOxxOm
24th July 2011, 08:47
a small folding glitch:
SET UP: fold a function with { in line with function definition like this:
function somefun(){
#some code
}
ACTION: now when only one line with function name is visible, select the entire line (mouseclick on margin column e.g.) and delete it
RESULT: body of the function isn't deleted but remains hidden and unexpandable, line numbers in left column also reflect this. Selecting the encompassing area, copying it to clipboard and pasting it back however works.
ANGEL_SU
25th July 2011, 07:46
a small folding glitch...
Thanks for your report. See this (http://forum.doom9.org/showthread.php?p=1511932#post1511932) if you would like to try the fixed version.
Zellord
30th July 2011, 08:25
thanks for new version !
dragon_warrior
5th August 2011, 16:01
Hi folks
I'm running Win7 on a 32bit platform and encounter this error message whenever loading AvsPMod (2.2.0):
The instruction at 0x01ddc623 referenced memory at 0x000000014 could not be read.
Click on OK to terminate the program
How to resolve this problem? Thanks
ganymede
5th August 2011, 16:46
Hi, I get the following error when opening AvsPmod.exe (2.2.0) :[Fri Aug 05 17:40:58 2011]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 13791, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 13781, in OnInit
File "AvsP.pyo", line 4133, in __init__
File "AvsP.pyo", line 4853, in defineFilterInfo
File "AvsP.pyo", line 4923, in defineScriptFilterInfo
AttributeError: 'MainFrame' object has no attribute 'dllnameunderscored'The program crashes immediately.
With AvsPmod 2.1.8 I've no problem. I'm using Vista 32 bits.
wOxxOm
13th August 2011, 10:03
ganymede, judjing by _BootstrapApp and 'dllnameunderscored', your avs plugins folder has some dll-file with underscore that triggers the error. You could help debugging AvsPmod by locating that dll - just move out all of them into different folder and move back by 10 items, each time restarting avspmod until it'll crash, then pinpoint the dll amidst those 10 recently moved (by moving out those 10, and adding back by 1).
ganymede
13th August 2011, 11:01
@wOxxOm : you pointed me on the right track. My avs plugins folder was empty, and that was causing AvsPmod to crash. Moving back some dlls to this folder solved the problem on my system. Thank you.
wOxxOm
16th August 2011, 09:25
My friend's AvsPmod on xp32bit shows an error "failed to put data on the clipboard (Error -2147221008 CoInitiliaze has not been called)" on copy/paste and "Drag & drop operation failed" on mouse dragging with Ctrl pressed.
Any ideas how to debug this?
Gavino
16th August 2011, 09:36
My avs plugins folder was empty, and that was causing AvsPmod to crash.
That sounds like a bug.
An empty plugins folder, while unusual, is perfectly 'legal' and should not cause a crash.
Dogway
16th August 2011, 10:07
It's a problem with the function definition. It checks against "installed" plugins.
It happened to me when I unselected some plugins there, then took out the plugins from the folder.
To fix it, get them back to the folder, check them in function definition, then move them out of the folder, but I thought this bug was already addressed (http://forum.doom9.org/showthread.php?p=1511932#post1511932).
Looks like development is much slower than before, I 'm eager to see any new version with some of the fixes (http://forum.doom9.org/showthread.php?p=1510757#post1510757) soon.
btw I forgot how I did it. I would like to revert what Tab and Enter do when calling the filters tooltip, I want to change them back to Tab->writes down the filter name, Enter->loads the preset
Zarxrax
17th August 2011, 17:25
I suppose I should put a link to it in the first post to angel_su's bugfix update thing, for people that dont follow the thread.
I know I've been really busy at work lately, and I imagine we probably haven't heard much from angel_su for the same reason.
forclip
30th August 2011, 13:14
Hello. After updating v2.2.0 with this (http://forum.doom9.org/showpost.php?p=1511932&postcount=556) AvsP.pyo I get an error message "Translation file update failed" on every start up (except the first one, if translation was updated with new items). This issue can be easily reproduced with empty translation.py, so the problem is not in the translation file. Fix this please, because it`s very annoying..
bittu123
3rd September 2011, 10:02
I had a .txt file having data like this....
10 0
12 1
16 1
40 0
30 1
....... and so on
colmn first is my data and second is condition..
Now i want to receive all data with condition 1 or with condition 0 separately.
and trying to put them separately in script with the help of macros
Actually, I want to put them in function
Trim(10,11)++....so on in clip0 and
Trim(12,15)++Trim(16,40)++ .... so on in clip1
Hope, I made clear my query....
sry, if its not understandable
bittu123
3rd September 2011, 10:05
I know, I can do it manually. But I need Macros for it so that a text containing big data can be generalized quickly
wOxxOm
3rd September 2011, 11:51
bittu123, you can use absolutely any programming/scripting language or even any spreadsheet editor like Excel (applying datafilter for '0' or '1' and repeating corresponding formula, then adding 'trim(', ')+\' columns), just apply a little effort!
Gavino
3rd September 2011, 12:15
Depending on what you are ultimately trying to do, you may also find ConditionalReader (http://avisynth.org/mediawiki/ConditionalReader) useful (instead of generating a lot of Trims).
creaothceann
5th September 2011, 22:01
Is there still the problem with the Replace dialog in the current version? (After a replace operation, the window stays open but loses focus, and pressing Ctrl+H again produces an error.)
I'd rather not update if the issue persists since I have defined custom colors and fonts and it's a nuisance to define them again.
Zarxrax
5th September 2011, 23:19
I believe this problem is fixed. But you may test it without overwriting your old files.
creaothceann
5th September 2011, 23:47
It seems the error doesn't occur, but the replace window still loses focus. Would it be possible to let it keep the focus?
It'd also be nice if there were a separate font config file. Doesn't even have to be readable, but could be a simple comma-separated list:
Default,FFFF00,0000A0,Fixedsys Excelsior 3.01,12
Comment,00FFFF,0000A0,Comic Sans MS,10,bold,italic
use monospaced,false
EDIT: To clarify, it's just queries, not demands...
NASRMAX
7th September 2011, 01:03
made the encoded subme = 11 do not open with avspmod, the program is not responding, or a gray image appears in place of the image of the film
LigH
7th September 2011, 07:37
Then your decoder may be the reason. AvsPmod can only display what AviSynth and its decoders can decode and output.
Try a most recent FFmpegSource2 with most recent x264 videos as source. Preferably in MKV container.
lansing
8th September 2011, 06:49
i like to request a reload script function, so i don't have to reopen the program every time when I try to install a missing dll file
Dogway
8th September 2011, 10:24
Development is pretty much idle, that's a feature I listed long ago in my request post. But in the case you don't use the sliders you can drop your plugin in the folder and use it without a program restart.
Mounir
15th September 2011, 02:50
I am getting really tired of these errors i get below. I preview a video, i close the preview then back to preview and !BAM! error-in-your-face i must forcefully close avsp, really annoying. Or the same happens if i go back and forth 2 scripts (2 different tabs indeed) but contains the same video.
AppName: avspmod.exe AppVer: 2.2.0.0 ModName: unknown
ModVer: 0.0.0.0 Offset: 0b450000
AppName: avspmod.exe AppVer: 2.2.0.0 ModName: unknown
ModVer: 0.0.0.0 Offset: 0ff70240
AppName: avsp.exe AppVer: 2.0.2.0 ModName: unknown
ModVer: 0.0.0.0 Offset: 0fe10240
LigH
15th September 2011, 08:35
AvsPmod is not to be blamed if the decoder is unstable, e.g. not "reentrant" - not programmed to be used more than only once at the same time.
Zarxrax
15th September 2011, 21:18
What kind of video are you trying to load?
Mounir
15th September 2011, 21:23
it's an mpe2 and i use Dgimultisource (DGindexNV)
blindbox
18th September 2011, 04:23
Any chance for a 64-bit edition? As for now you have to preview your avs script in 32-bit, then try a 64-bit player to try see if it works for Avisynth x64.
Zarxrax
18th September 2011, 14:42
No chance, unless someone wants to contribute a patch.
DarkT
19th September 2011, 00:15
Any chance for a 64-bit edition? As for now you have to preview your avs script in 32-bit, then try a 64-bit player to try see if it works for Avisynth x64.
+1
I would REALLLLLLY love this at x64.. Or maybe a suggestion for other way to insta-preview script... and ability to switch between windows of preview on x64...
Mounir
7th October 2011, 00:13
What is causing the error i get (see below) and how to fix it thanks:
Exception WindowsError: 'exception:
access violation reading 0x0EE9BEB0 in
bound method PIscriptEnvironment._del_of < avisytnh.PIscriptEnvironment instance at
0x01EA4E40>> ignored
jmac698
12th October 2011, 06:21
It can't display 4 pixel wide yv12 video.
It gives "error loading avisynth".
But yuy2 and rgb32 work.
6 pixel yv12 works.
colorbars(pixel_type="YV12",width=4)
#colorbars(pixel_type="YUY2",width=4)
#colorbars(pixel_type="RGB32",width=4)
Gavino
12th October 2011, 11:00
It can't display 4 pixel wide yv12 video.
It gives "error loading avisynth".
Also a problem for the old AvsP 2.0.2, but it gives a different error:
File "avisynth.pyo", line 119, in Invoke
avisynth.AvisynthError: Resize: Source image too small for this resize method. Width=2, Support=2
- seems to be trying to do a BicubicResize for some reason.
jmac698
12th October 2011, 11:02
Turns out a bunch of other apps don't work either. Only vdubmod is known to work, but shows a wrong image.
Gavino
12th October 2011, 11:24
Turns out a bunch of other apps don't work either. Only vdubmod is known to work, but shows a wrong image.
colorbars(pixel_type="YV12",width=4)
Works OK with VirtualDub (1.8.6), MPC and WMP.
Not sure what the image should be, but I see yellow and red above black above white.
jmac698
12th October 2011, 11:44
As reported by StainlessS
http://forum.doom9.org/showthread.php?p=1531348
---
colorbars().convertToYV12().crop(0,0,4,0)
In Media Player via AVSEdit,
come up with error in xvidcore.dll (the YV12 colorspace converter).
No error produced in VitualDubMod for same script (although the clip produced is a weird three bars above one another in sequence):
Yellowy-Lime Green
Chestnut Brown,
nasty Khaki.
----
[edited]
Zarxrax
12th October 2011, 12:19
It can't display 4 pixel wide yv12 video.
It gives "error loading avisynth".
But yuy2 and rgb32 work.
6 pixel yv12 works.
Is there a real need for this?
jmac698
12th October 2011, 13:04
No, of course I don't want to "see" a 4 pixel wide video, but you need to understand that I do a lot of special script development, which is how I discovered the problem. I needed to verify that a statement was returning the correct 4 pixels. Very often I'm reading direct pixel values off the screen to verify levels and coordinates, etc. to check an algorithm. The crash caused me to lose development time.
This is a programmer's IDE (among other things), and therefore has to be very reliable.
Zarxrax
12th October 2011, 22:49
In fact, I just tested this script and it displayed fine for me. I am guessing that it is not a problem of avsp, but rather it lies somewhere else. It even displays if it is cropped to just 2 pixels.
LigH
13th October 2011, 09:00
After all, AvsP is just a GUI or IDE – as already stated.
It is not reliable for issues with the underlying AviSynth frameserver or even video drivers. Sounds quite probable that other tools using similar technologies would crash too.
jmac698
22nd October 2011, 14:21
I'm getting very slow typing in avspmod. My first thought was the autocompletion took too long to search. Turns out that the option show syntax highlighting is very slow. I turned it off, but it's ugly now :)
Anyway this could be improved? It only happened to me in a large script, I don't know what other factors affect speed.
wOxxOm
22nd October 2011, 14:33
jmac698, I've had similar issue, try unchecking Options->Fonts & Colors->Advanced->[ ] Incomplete strings
jmac698
22nd October 2011, 14:43
Thanks! That made a huge difference, it's still slow but usable and prettier :)
wOxxOm
4th November 2011, 16:02
self.matrix = 'Rec601'How about storing current YUV-RGB matrix in options.dat? Those who work with HD content have to switch this manually each run...
Zarxrax
4th November 2011, 22:36
self.matrix = 'Rec601'How about storing current YUV-RGB matrix in options.dat? Those who work with HD content have to switch this manually each run...
Hmm... should be possible, but I'm not sure if most users would find that desirable. I may be able to take a look at it in a few weeks when I become un-busy.
redfordxx
5th November 2011, 14:07
Hi, my AvsPmod editor is getting extremely slow and I believe it is because all the filters I use in the script are in the right column. Is there any way to switch it off or other solution for this speed issue?
Tnx
R.
jmac698
5th November 2011, 19:04
w0xx0m wrote:
try unchecking Options->Fonts & Colors->Advanced->[ ] Incomplete strings
also try turn off syntax highlighting, options->text
redfordxx
6th November 2011, 02:55
Syntax highliting helped...
Who would believe...few colors and what a mess...on i5-core
jmac698
6th November 2011, 03:30
Yes I believe it's a serious problem. Not only that, but with that option off, the program crashes when you start it again.
redfordxx
6th November 2011, 09:04
Yes, confirmed here also :(
LigH
6th November 2011, 09:42
Found a small bug in the function definition of AssumeFPS(): The parameter "preset" is not named, so it must not be used as named. A call
AssumeFPS(preset="pal_video")
returns the AviSynth error "Invalid parameter". Correct is only:
AssumeFPS("pal_video")
Therefore the quotes around the parameter name "preset" have to be removed.
__
I did not yet try, but should AvsPmod be able to support several alternative syntax completions for one function name? Here, at least e.g.:
AssumeFPS (clip, int numerator [, int denominator], bool "sync_audio")
AssumeFPS (clip1, clip2, bool "sync_audio")
AssumeFPS (clip, string preset, bool "sync_audio")
I'd agree with 'AssumeFPS (clip, float fps, bool "sync_audio")' being "deprecated" due to the inexact representation of fractional fps as floats.
If not yet, I guess it might be a little harder to implement, because it would have to be able to detect the used variant in an already existing source line.
Gavino
6th November 2011, 10:37
Found a small bug in the function definition of AssumeFPS(): The parameter "preset" is not named, so it must not be used as named. A call
AssumeFPS(preset="pal_video")
returns the AviSynth error "Invalid parameter". Correct is only:
AssumeFPS("pal_video")
Therefore the quotes around the parameter name "preset" have to be removed.
I assume this issue also affects ConvertFPS and ChangeFPS, which have similar alternative parameter lists.
Zarxrax
6th November 2011, 16:36
Hmm, yes it seems there is a bug in the autocomplete for that function. I will fix it for the next release.
jmac698
6th November 2011, 16:46
It would be really nice if you could do something about the editing slowdown/crash problem :) Thanks :)
I really think it's a great editor by the way, changed my life in developing scripts...
ANGEL_SU
7th November 2011, 02:27
Hi, everybody. Sorry, i'm too busy to fix bugs in time.
@jmac698
@redfordxx
Please see POST#556 (http://forum.doom9.org/showthread.php?p=1511932#post1511932) and try the beta version. If you still have the same problem, please send me your script for debugging.
jmac698
7th November 2011, 02:49
I updated the library, I turned off incomplete string, the typing is still very slow.
ANGEL_SU
7th November 2011, 07:35
I updated the library, I turned off incomplete string, the typing is still very slow.
Please update Avsp.pyo again. I have made an improvement.
PS:
Sorry, if you got an error after updating, please download and update again.
forclip
7th November 2011, 12:34
ANGEL_SU
Could you be so kind and take a look at this (http://forum.doom9.org/showthread.php?p=1522653#post1522653) issue please?
redfordxx
7th November 2011, 13:18
ANGEL_SU
Could you be so kind and take a look at this (http://forum.doom9.org/showthread.php?p=1522653#post1522653) issue please?
I installed it, Ill let you know, if that is still slow after a while of usage.
jmac698
7th November 2011, 13:47
I discussed this with angel in pm, he found a problem in code folding. So I'm assuming that the slow typing occurs when there is many functions in the script.
I will test again.
jmac698
7th November 2011, 13:52
It's fixed! yay :)
Thanks for the work, angel.
ANGEL_SU
7th November 2011, 14:20
Could you be so kind and take a look at this (http://forum.doom9.org/showthread.php?p=1522653#post1522653) issue please?
See #556 (http://forum.doom9.org/showthread.php?p=1511932#post1511932) and you need to update library with one more file. After updating, you should see the error message only one time.
jmac698
7th November 2011, 14:49
Feature Request:
It woud really hep me if I could draw a rectangle on the image and when releasing the mouse, the crop statement is in the paste buffer.
forclip
7th November 2011, 14:52
See #556 (http://forum.doom9.org/showthread.php?p=1511932#post1511932) and you need to update library with one more file. After updating, you should see the error message only one time.
Thank you! Yes, now it appears only once :)
redfordxx
7th November 2011, 16:14
it is because all the filters I use in the script.
So I'm assuming that the slow typing occurs when there is many functions in the script.
Thats what I thought.
Well, my file has 20kb. Cant wait to put the functions to .avsi
But I cannot before it is completely tested, coz I experienced AviSynth crashes w/o warning when there is an error in *.avsi.
redfordxx
7th November 2011, 16:17
BTW Update means copy avsp.pyo, right?
StainlessS
7th November 2011, 16:54
BTW Update means copy avsp.pyo, right?
I've only just installed AvsPmod with intent of giving it a try,
but I think I'm correct in saying that you should eg copy the
'Avsp.pyo' file into AvsPmod\lib folder, and assuming that you
have WinZip installed, just pick it up and drop it on the
'library.zip' file, and accept to add it to the achive (overwriting
the original file). (If a copy remains in the lib dir, you can delete
it.)
Gavino
7th November 2011, 17:38
Cant wait to put the functions to .avsi
But I cannot before it is completely tested, coz I experienced AviSynth crashes w/o warning when there is an error in *.avsi.
That seems more like an AvsP problem - if there is an error in some .avsi, VirtualDub correctly reports the error when you try to open a .avs.
redfordxx
7th November 2011, 20:46
That seems more like an AvsP problem - if there is an error in some .avsi, VirtualDub correctly reports the error when you try to open a .avs.
Then MeGui has same problem...
redfordxx
7th November 2011, 20:48
Moreover, I wondered I have installed files *.py, and the doownloaded file is *.pyo...:confused:
LigH
8th November 2011, 10:37
I don't know Python well, but as far as I remember, *.py are source files, and they are compiled to some "object code" during the first execution, as *.pyo
StainlessS
8th November 2011, 11:23
@redfordxx
In my recent clean install, there is an AvsP.py file in the src folder and the only place where
AvsP.pyo exists is in the library.zip in the lib folder.
src\
__translation_new.py
avisynth.py
AvsP.ico
AvsP.py <------ AvsP.py
AvsP_build.py
AvsP_i18n.py
AvsP_setup.py
build_instructions.txt
icons.py
Microsoft.VC90.CRT.manifest
pyavs.py
pyavs_avifile.py
run.py
wxp.py
tools\
avs2avi.exe
avs2avi_gui.dat
avs2avi_gui.py
encoder_gui.py
MP3Info.py
resize_calc.py
ToolsMenu.py
ToolsMenu.pyo
x264.presets
xvid.presets
macros\
Example(Resize) (Directory)
Examples(Directory)
Bookmarks at Intervals.py
Bookmarks from Chapter.py
Bookmarks to Chapter.py
DeleteFrame.py
DuplicateFrame.py
macros_readme.txt
Preview from current point.py
Random Clip Order.py
Save bookmarks to images.py
Save Image Sequence.py
lib\
_ctypes.pyd
_hashlib.pyd
_socket.pyd
_ssl.pyd
bz2.pyd
gdiplus.dll
library.zip <------- AvsP.pyo lives here
select.pyd
unicodedata.pyd
wx._controls_.pyd
wx._core_.pyd
wx._gdi_.pyd
wx._misc_.pyd
wx._stc.pyd
wx._windows_.pyd
wxbase28uh_net_vc.dll
wxbase28uh_vc.dll
wxmsw28uh_adv_vc.dll
wxmsw28uh_core_vc.dll
wxmsw28uh_html_vc.dll
wxmsw28uh_stc_vc.dll
EDIT: The file dates may give you a clue as to what you have done. You might have to
switch to "details" rather than "Icons" in windows Explorer to see the dates.
(I personally hate Icon View, it has nothing whatever of use in it).
Also, if you cannot see file extensions in Windows Explorer, you can switch them back on again,
go to: (Assuming Windows XP)
Windows Explorer-Menu-Tools-Folder Options-View
And untick, "Hide Exensions for known File Types" to restore a little sanity to the system.
Hiding information from yourself is rarely useful.
jmac698
8th November 2011, 11:50
Just don't install the *.pryo file or it will burn out your computer...
ANGEL_SU
8th November 2011, 11:51
@redfordxx
Please update library.zip as StainlessS said. In fact, I use 7z UI and can do in the same way. And then, run Avspmod.exe, click Help->About Avspmod and you should see the version number changed.
As to files under ./src folder, they are mainly for developers and you can ignore or even delete them.
LigH
8th November 2011, 12:46
@ jmac698:
Not "pyro"! :p
magnatique
10th November 2011, 22:59
I am not sure if it's an issue with AVSPMOD, but when I preview mp4 scenes that are using one of the latest ffvideosource version, if I randomly seek different frames it will not be accurate and frame 2000 might be something in Vegas , but different in AVSP... thne I'll seek somewhere 200 frames before in AVSP and frame by frame go to the 2000 mark and then it'll match that of vegas (real frame). sometimes I'll get green as well or it'll crash.
kypec
11th November 2011, 07:23
I'd rather blame ffmpegsource filter for any frame inaccuracies than AvsPmod, since that is just an user interface to output from Avisynth (and filters used therein of course).
LigH
11th November 2011, 08:16
FFmpegSource has different "seekmode" values. Try them all. Or - as recommended - remux other formats to MKV before loading them in FFMS2, because they are indexed more accurately.
magnatique
11th November 2011, 16:36
I'd rather blame ffmpegsource filter for any frame inaccuracies than AvsPmod, since that is just an user interface to output from Avisynth (and filters used therein of course).
yeah the only reason why I thought it could be AVSP was that whenever I encode I have zero frame issue, no "green" frame or what not... but when seeking inside avsp I would get them. But then again, it's just encoding from beginning to end so there's no random seek
I updated to the latest mods so perhaps it got fixed now
Mounir
12th November 2011, 10:50
Request:
It would be nice that asvpmod support the Debugmode frame server if that's not asking the moon.
carlmart
12th November 2011, 13:53
Does AvsPmod 2.2.0 work fine within Windows 7 x64? Has anyone tried it?
the_weirdo
12th November 2011, 19:09
Yes. It works fine here. (Windows 7 Home Premium 64-bit)
Zarxrax
12th November 2011, 22:08
Request:
It would be nice that asvpmod support the Debugmode frame server if that's not asking the moon.
Exactly what kind of support are you asking?
Mounir
15th November 2011, 10:53
well to have directly access to DFS gui (in the tool tab ) and start frame serving to any app i want with minimal ram taken.
For instance if i want to frame serve currently i must use the following scheme: avisynth > sony vegas, DFS > another app that's lots of apps opened for a simple matter.
Chikuzen
15th November 2011, 19:24
well to have directly access to DFS gui (in the tool tab ) and start frame serving to any app i want with minimal ram taken.
For instance if i want to frame serve currently i must use the following scheme: avisynth > sony vegas, DFS > another app that's lots of apps opened for a simple matter.
Why don't you use AVFS?
redfordxx
16th November 2011, 15:42
OK, so updating the zip file is important thing. Thanx.EDIT: The file dates may give you a clue as to what you have done. You might have to
switch to "details" rather than "Icons" in windows Explorer to see the dates.
(I personally hate Icon View, it has nothing whatever of use in it).
Also, if you cannot see file extensions in Windows Explorer, you can switch them back on again,
go to: (Assuming Windows XP)
Windows Explorer-Menu-Tools-Folder Options-View
And untick, "Hide Exensions for known File Types" to restore a little sanity to the system.
Hiding information from yourself is rarely useful.That's why I use FARmanager ;)
And as I am reading your post, unless u are spanish, you shoud too;-) (because FAR has problems opening files with this spanish n with wave on it in theri names:)
LigH
16th November 2011, 16:36
That's why I use FARmanager ;)
:cool: Me too. I am old enough to have used the original Norton Commander, and Eugene Roshal made the FAR manager like a grandson Peter Norton never had... there are many other blue or differently colored clones, but no other was as satisfying.
Unfortunately, version 3 delays for a reason unknown to me; the website should add a ™ after the "soon".
Groucho2004
16th November 2011, 17:51
I am old enough to have used the original Norton Commander
Really? The 16 Bit version for DOS? That was my first file manager (NC4).
Unfortunately, version 3 delays for a reason unknown to me; the website should add a ™ after the "soon".
I'm still using 1.75, does everything I want. :D
StainlessS
17th November 2011, 13:00
Thankyou redfordxx, I'll look into it :)
jmac698
21st November 2011, 02:29
There seems to be a bug, in the status line showing the pixel values, if the preview is zoomed, it's reading the wrong coodinates. Should be very simple to fix. I don't think it accounted for the 2x coordinates.
Zarxrax
21st November 2011, 13:48
There seems to be a bug, in the status line showing the pixel values, if the preview is zoomed, it's reading the wrong coodinates. Should be very simple to fix. I don't think it accounted for the 2x coordinates.
If you have a video that is, for example, 640x480, then whether you are viewing it at 25% or 200%. the maximum coordinates that it displays would still be 640 and 480. It seems to be working as intended. If you need the coordinates to change, you should resize the video.
FlimsyFeet
24th November 2011, 19:58
Quick question - I've searched but can't find the answer. When you have multiple tabs open in AvsPmod, how do you "unlink" the timelines? I.e. so you can navigate to frame 250 in tab 1, but tab 2 stays put at frame 0?
FlimsyFeet
24th November 2011, 22:33
Found an answer - if you make the two videos different lengths by for example using a Trim(1,0) at the end of one of the scripts, this breaks the link and you can move the preview independently in each tab.
jmac698
27th November 2011, 02:26
That's not quite what I mean. I mean reading the pixel value at the mouse pointer. It's reading the wrong "getpixel".
VideoFanatic
6th December 2011, 00:32
I'm using AvsPmod 2.20. Lately when I load an Avisynth script and press refresh I get the unable to load file message. Previously I just restarted my PC then it worked but I tried that today and it still doesn't work. I even downloaded the program again but I get the same problem. Can you help. Thanks
Gavino
6th December 2011, 10:10
Lately when I load an Avisynth script and press refresh I get the unable to load file message.
What does the message actually say?
Does this happen for any Avisynth script, or a particular one?
Perhaps you have a problem in your plugins folder that is preventing Avisynth from loading. Try cutting your plugins folder down to the bare minimum.
VideoFanatic
6th December 2011, 16:57
The message says "MPEG2Source: unable to load D2V file "my video.d2v" (New File, line 1)".
This is my script and there's nothing wrong with it because I can load it in HC Encoder without problems.
Mpeg2Source("704 by 480 June 30 1997 before avisynth.d2v", CPU=6)
DeGrainMedian(limitY=2, limitUV=3, mode=1, interlaced=true)
DeGrainMedian(limitY=2, limitUV=3, mode=1, interlaced=true)
ttempsmooth(maxr=3, lthresh=8, cthresh=5, strength=4, interlaced=true)
AddBorders(8, 0, 8, 0)
It happens for any script.
Gavino
6th December 2011, 17:31
Mpeg2Source("704 by 480 June 30 1997 before avisynth.d2v", CPU=6)
You need the full pathname for the .d2v file unless you have saved the script to the same folder where the .d2v resides.
VideoFanatic
6th December 2011, 17:35
Thanks, it's working now.
Mounir
7th December 2011, 08:43
@holygamer
For the record, AvspMod support Drag and Drop so you don't have to manually write the full path but rather drag the .d2v and drop it into your script on avspmod....same goes for the .dll if you don't use autoloading
Zarxrax
9th December 2011, 19:41
That's not quite what I mean. I mean reading the pixel value at the mouse pointer. It's reading the wrong "getpixel".
Sorry, I'm still not quite sure what you are saying here.
kypec
10th December 2011, 17:26
Sorry, I'm still not quite sure what you are saying here.
I think he means that the reported color value is wrong due to wrong coordinates being used by color picker.
vdcrim
12th December 2011, 16:47
Bug in the GetTextEntry() macro function. It converts the 'message' and ''default' parameters to byte string, which causes an error when using non-ASCII characters.
Those parameters should already be a string anyway (byte or unicode), so removing the conversion shouldn't affect existing macros.
AvsP.py, lines 13442 and 13443:
staticText = wx.StaticText(dlg, wx.ID_ANY, str(eachMessage))
textCtrl = wx.TextCtrl(dlg, wx.ID_ANY, str(eachDefault), size=(400,-1))
should be:
staticText = wx.StaticText(dlg, wx.ID_ANY, eachMessage)
textCtrl = wx.TextCtrl(dlg, wx.ID_ANY, eachDefault, size=(400,-1))
ANGEL_SU
14th December 2011, 19:37
@vdcrim
Thanks for your report. Yes, this issue may happen if you use a unicode string with non-ASCII characters.
However, I recommend to use only ASCII characters in your code and encapsulate a string inside the translation function _(). And then, users can add an entry into translation.py if they really need localization.
Zarxrax
14th December 2011, 23:25
I think he means that the reported color value is wrong due to wrong coordinates being used by color picker.
It seems to be working properly for me.
I can load a script such as ColorBars(), and then change zoom to 25% or 200%, and in the statusbar it shows the color of whichever pixel I am moving the mouse over.
I will be releasing a new build shortly, I know its been a long time :)
vdcrim
14th December 2011, 23:42
@vdcrim
However, I recommend to use only ASCII characters in your code and encapsulate a string inside the translation function _().
This probably would be the best solution for a localization of the 'message' list, but I'm more concerned with the 'default' parameter:
avsp.GetTextEntry(['avs path'], [avsp.GetScriptFilename()])
In this case you can't even just encode the unicode string to your locale code, as the filename's character set may not be the same. I know this is a bit of nitpicking though ;).
Thanks for your response.
ANGEL_SU
15th December 2011, 02:19
...but I'm more concerned with the 'default' parameter:
avsp.GetTextEntry(['avs path'], [avsp.GetScriptFilename()])
Yes, a unicode string is quite naturally in your case. At the current stage, a workaround is to do the string conversion by yourself:
import sys
encoding = sys.getfilesystemencoding()
avsp.GetTextEntry(['avs path'], [avsp.GetScriptFilename().encode(encoding)])
PS: The latest .pyo files were uploaded. See this post (http://forum.doom9.org/showthread.php?p=1511932#post1511932).
vdcrim
15th December 2011, 13:44
@ANGEL_SU
Tried new Avsp.pyo, working fine. Thanks again.
Overdrive80
20th December 2011, 18:37
Hi, I translate languge.py file to spanish. I based in older translate of zemog. Bye http://www.mediafire.com/?vwbo5wokbb48pz4
unreal666
20th December 2011, 22:51
Zarxrax
AvsPmod 2.2.0 crashed when trying to transfer 149th line of translation.py ("Zoom" : u"",).
avsp_error_log.txt
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 13791, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 13781, in OnInit
File "AvsP.pyo", line 4467, in __init__
AttributeError: 'NoneType' object has no attribute 'GetSubMenu'
AvsPmod.exe.log
'exception: access violation writing 0x7B27852A'Exception exceptions.WindowsError: 'exception: access violation reading 0x7B29852F' in <bound method PIScriptEnvironment.__del__ of <avisynth.PIScriptEnvironment instance at 0x03591418>> ignored
'exception: access violation reading 0x80108018'
ANGEL_SU
21st December 2011, 16:27
@unreal666
This is a known issue. Please update to the beta version - see here (http://forum.doom9.org/showthread.php?p=1511932#post1511932).
unreal666
22nd December 2011, 01:58
ANGEL_SU
thx
PS.
Space key was just Space in AvsPMod v2.0.5. In v2.2.0: Space key is Zoom and Shift+Space is just Space.
How does it change back in v2.2.x?
protovision
27th December 2011, 19:56
link for 2.2.0 is asking for pwd?:
http://amvhell.com/stuff/avspmod/AvsPmod_v2.2.0.zip
the_weirdo
28th December 2011, 12:41
link for 2.2.0 is asking for pwd?:
http://amvhell.com/stuff/avspmod/AvsPmod_v2.2.0.zip
I believe that happened because of this:
AMV Hell.com is currently down for maintenence after a recent hack. Everything will be restored within a few days.
Zarxrax
30th December 2011, 04:16
Sorry about that, things should be back up tomorrow.
Zarxrax
4th January 2012, 22:20
I have uploaded version 2.2.1
This mainly just incorporates all the fixes from the latest patches that were released by AngelSu
I had been planning to try and work on some new stuff for it, but some things have come up lately and I just haven't had much time to look into it.
Version 2.2.1
- Pixel info remains in the statusbar while typing
- fixed bug in definition of assumefps/changefps/convertfps
- fixed bug with preview caching
- fixed a bug parsing some avsi files
- fixed a bug when removing plugins
- fixed a bug related to folding
- fixed a bug which caused slowdowns when incomplete string highlighting is enabled
- fixed a bug when opening a 2nd instance of avspmod
- added Shift bookmarks by # of frames macro by wOxxOm
- other minor bugfixes and tweaks
As always, the download is in the first post.
DrPhill
5th January 2012, 10:50
Neat tool.....
Is this the place to make a request? I would really like a simple(?!) feature but maybe it is there already and I missed it in the documentation.....
I have several projects on the go, and could probably swap sessions. It would be nice though if I could specify the session as a commandline argument. I could then specify the session in my windows shortcut, and so eliminate the need to load a session after loading AVsPmod.
Just a thought.
SubJunk
8th January 2012, 02:13
Thanks for the update :)
Dogway
8th January 2012, 11:59
Hi, I translate languge.py file to spanish. I based in older translate of zemog. Bye http://www.mediafire.com/?vwbo5wokbb48pz4
Thanks a lot! it had a warning when loading to v.2.2.1 but everything seems fine otherwise. I changed (http://www.mediafire.com/?fx9765ip28r6335) a few things in orthography and kept some technical words in English. Anyways I dont know whether to stay in Spanish, I'm too used to English terms lol
As for the new version 2.2.1 it fixes some issues, leaves many old issues and introduces some new ones. I hope this year is as good as the first half of the last one.
BTW does anyone know any template for avisynth in Notepad2 even if it is a loosy one?
Mak0rz
9th January 2012, 18:37
Thanks for this! AvsPmod is essential for my graduate research!
Is there any way to make the video preview pane/window show the time in the status bar in just seconds (and sub-second units), as opposed to HH:MM:SS.sss? It's not a necessity, but I have to convert all times to seconds in my head and it can slow me down a little.
Zarxrax
10th January 2012, 18:29
Thanks for this! AvsPmod is essential for my graduate research!
Is there any way to make the video preview pane/window show the time in the status bar in just seconds (and sub-second units), as opposed to HH:MM:SS.sss? It's not a necessity, but I have to convert all times to seconds in my head and it can slow me down a little.
If you are comfortable editing the source code, look in AvsP.py line 10678, and you will see the following line:
time = '%02i:%02i:%06.3f' % (h ,m, s)
If you change it to
time = '%06.3f' % (frame/framerate)
Then it will do what you are asking.
Mak0rz
10th January 2012, 19:11
If you are comfortable editing the source code, look in AvsP.py line 10678, and you will see the following line:
time = '%02i:%02i:%06.3f' % (h ,m, s)
If you change it to
time = '%06.3f' % (frame/framerate)
Then it will do what you are asking.
Well, I've done that much... but then what do I do? I assume it has to be rebuilt/compiled? I can't just put anything in the "customize video status bar..." window?
Zarxrax
10th January 2012, 22:11
I believe as long as you have python and wxpython installed, you can then just run the modified version by double clicking on the AvsP.py file. At least thats how I do it.
unreal666
12th January 2012, 10:31
Zarxrax
1. What about my question above (http://forum.doom9.org/showthread.php?p=1546544#post1546544)?
2. Why GetLeftChannel & GetRightChannel functions are in Clip properties, instead of in Core filters?
Zarxrax
12th January 2012, 17:24
unreal666:
the space key is not set up to zoom. I can only imagine that you have changed it from the defaults. You can set keyboard shortcuts in the menu 'Options>Keyboard shortcuts'
It does appear that GetLeftChannel and GetRightChannel are wrongly classified in avspmod.
Mak0rz
12th January 2012, 18:27
I believe as long as you have python and wxpython installed, you can then just run the modified version by double clicking on the AvsP.py file. At least thats how I do it.
Looks like that's not an option because I don't have authority to install on this computer. Plan B: Make a chart of minute-second conversions benchmarks :v
However, I have (very) suddenly ran into another problem when I tried to run AvsPmod this morning. It fails to start and gives me a dialog box telling me to check the error log, which says this:
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: %1 is not a valid Win32 application.
The DLL load failing is baffling. No plugins have been changed/added or new codecs installed and, to my knowledge, there hasn't been any new programs installed at all since the last time I used it. AvsPmod worked fine yesterday. I'm guessing a DLL got corrupted somehow.
How do I identify and fix this? :/
EDIT: Nevermind. Doing some quick research identified this as Python messing up somehow. Re-downloading AvsPmod 2.2.1 fixed it!
unreal666
12th January 2012, 19:29
unreal666:
the space key is not set up to zoom. I can only imagine that you have changed it from the defaults. You can set keyboard shortcuts in the menu 'Options>Keyboard shortcuts'
no. All default (I delete options.dat file for test).
PS.
torment AvsPmod settings.
Has changed shortcuts for zoom in/zoom out with Numpad +/- on others and space key has worked.
Bug.
(win 7 x64 + AviSynth 2.60 ST x32)
unreal666
12th January 2012, 20:46
Zarxrax
It is bug. When I changed default shortcuts for zoom in/out with "Numpad +/-" on other, then space key has worked.
Zarxrax
12th January 2012, 22:51
Mak0rz: I made you a special build that allows putting seconds into the status bar from the customize status bar options: http://www.mediafire.com/?55slz1tg89zvs40
ANGEL_SU
13th January 2012, 13:00
Zarxrax
1. What about my question above (http://forum.doom9.org/showthread.php?p=1546544#post1546544)?
2. Why GetLeftChannel & GetRightChannel functions are in Clip properties, instead of in Core filters?
1. If possible, please upload translation.py and options.dat for my study.
2. IsXxx(clip), HasXxx(clip) and GetXxx(clip) will be classfied as clip properties. You can override this behavior by modifying filterdb.dat which is a general text file indeed.
TheProfileth
14th January 2012, 23:22
I don't know if this is intended or a bug but when ever I go to save a screenshot and I have not saved my script IE it has the * at the top left, the file name of the screenshot has * at the start of it, in addition to this, if I do have the file saved the screenshots are automatically named based on the script's name, and there is no way to stop turn this off in the options or from anywhere else, now this may not seem like much of a hindrance but when I am trying to take a very large amount of screenshots like 50+ it ends up adding a fair amount of time to the process because if I have not save the script I have to change the filetype from the dropdown menu then change it back (as this clears the name out quickly and shows all the previous screenshots I have in the folder) then pick the name and add the frame number to it. Hopefully this can atleast have a option to turn it off as for some people they may like the automatic naming based on the script name but I need to name each screenshot differently, hence my problem. Until the issue is fixed I unfortunately will have to settle with using 2.1.8 as that is the most recent version that does not have this change.
ANGEL_SU
16th January 2012, 16:08
.. I have not saved my script IE it has the * at the top left, the file name of the screenshot has * at the start of it...
A stupid bug, fixed.
If you would try the latest code, please download this executable file (http://www.mediafire.com/?i5rbpqs17gv4508). Before running it, make sure to put it under your AvsPmod folder.
unreal666
17th January 2012, 12:48
1. If possible, please upload translation.py and options.dat for my study.
Not make sense. Error with translation.py fixed in v2.2.1.
options.dat was default.
2. IsXxx(clip), HasXxx(clip) and GetXxx(clip) will be classfied as clip properties.
GetLeftChannel & GetRightChannel return clip => they can not be properties.
You can override this behavior by modifying filterdb.dat which is a general text file indeed.
I know
ChrisW77
17th January 2012, 18:21
Great program. Is it possible to batch-script a whole directory full of images with just one single script for them all, using AvsPmod ?
For example, I have well over a thousand images of the last 10 years my family's lives, pets, mates, etc.. all taken on different devices from camera, to digital cameras, to mobile phones. They all exhibit varying levels of noise, most of it is jpeg noise, but I would just like to give them a once-over image clean with TNLMEANS, with a script similar to this.
SetMTMode(2,6)
SetMemoryMax(512)
SetMTMode(5,6)
ImageSource("D:\Camera_Pics\pic1.jpg", end = 300, use_DevIL=true)
ConvertToYV12(interlaced=false)
SetMTMode(2,6)
TNLMeans(Ax=10,Ay=10, Sx=3,Sy=3, Bx=0,By=0, a=1.0, h=1.0, sse=true)
At least 9 out of 10 pics come out really great with this simple script, some may need a slight sharpen at the end, but I'm happy with the result. So, instead of doing this task one by one, I am wondering if it's possible to use that one script on the whole directory ?
Thanks for any help.
Zarxrax
17th January 2012, 18:38
Yes, take a look at the Batch example macro in a text editor, and you should be able to see how to do it.
You can use SaveImage(filename='', framenum=None, index=None) in the macro to output to an image file. However, this does not allow you to specify any options as to image type or settings.
jmartinr
17th January 2012, 18:48
Great program. Is it possible to batch-script a whole directory full of images with just one single script for them all, using AvsPmod ?
I sometimes use for video an avisynth wrapper file like: file=GetSystemEnv("filename")
FFVideoSource(file)
etc. etc.
With a batchfile with in the midde something like:
setlocal
set filename=%%~dpnP.mp4
"C:\Program Files\x264\x264.exe" "wrapper.avs" etc.etc.
endlocal
You can find GetSystemEnv here: http://avisynth.org/stickboy/
This way each directory can have his own wrapper.avs.
ChrisW77
19th January 2012, 15:34
Thanks for the two replies. I have been out of avisynth editing for the best part of a year, and so I am a little rusty.
Yes, take a look at the Batch example macro in a text editor, and you should be able to see how to do it.
You can use SaveImage(filename='', framenum=None, index=None) in the macro to output to an image file. However, this does not allow you to specify any options as to image type or settings.
I didn't really understand this. I have looked at the batch example, but all it does is create a script for each and every file, so I would have a few thousand scripts to execute, unless I am missing something.
Is there no way of simply executing the script I posted above on a whole directory ? I am not worried about filenames, the images will be burned to DVD to be used on a home DVD upscaler so me and my family can sit back and look at them on a big HDTV. This is why they need a slight clean because when viewed upscaled they look a little grainy and noisy.
If you have the time, could you do me a simple walk through using Avspmod and my script above ? I would be most appreciated if possible, many thanks.
Zarxrax
19th January 2012, 16:52
You might want to take a look at Fritz Photo: http://forum.doom9.org/showthread.php?t=150291
I have never used it, but it is an interface for avisynth which is specifically designed for processing images.
jmartinr
19th January 2012, 19:48
You might want to take a look at Fritz Photo: http://forum.doom9.org/showthread.php?t=150291
I have never used it, but it is an interface for avisynth which is specifically designed for processing images.
What he says. I totally forgot about that possibility.
Mak0rz
19th January 2012, 20:31
Mak0rz: I made you a special build that allows putting seconds into the status bar from the customize status bar options: http://www.mediafire.com/?55slz1tg89zvs40
Thanks, It works beautifully! You are awesome. Never stop being awesome.
Do you accept donations?
Zarxrax
19th January 2012, 20:42
Do you accept donations?
No thanks, its cool :)
vdcrim
20th January 2012, 00:26
@ChrisW77
This should work:
suffix = ' new'
format = '.png'
using_jpg_quality_no_dialog_fix = False
jpg_quality = 90
# Avisynth script. Replace the input path with "in_path".
script = ur"""
SetMTMode(2,6)
SetMemoryMax(512)
SetMTMode(5,6)
ImageSource("in_path", end = 300, use_DevIL=true)
ConvertToYV12(interlaced=false)
SetMTMode(2,6)
TNLMeans(Ax=10,Ay=10, Sx=3,Sy=3, Bx=0,By=0, a=1.0, h=1.0, sse=true)
"""
from os import listdir
from os.path import splitext, basename, join
dir_path = avsp.GetDirectory(title='Select a directory')
if not dir_path:
return
avsp.NewTab()
avs = avsp.GetWindow().currentScript
progress = avsp.ProgressBox(max=1000, title='Batch processing progress')
paths = [join(dir_path, filename) for filename in filter(
lambda x: x.endswith('.jpg'), listdir(dir_path))]
for i, path in enumerate(paths):
progress.Update(i*1000.0/len(paths), basename(path))
# avsp.SetText(script.replace('in_path', path)) # converts to ascii
avs.SetText(script.replace('in_path', path))
try:
if using_jpg_quality_no_dialog_fix:
avsp.SaveImage(splitext(path)[0] + suffix + format, quality=jpg_quality)
else:
avsp.SaveImage(splitext(path)[0] + suffix + format)
except:
avsp.MsgBox('Processing failed at ' + basename(path))
break
progress.Destroy()
avsp.CloseTab()
There's a catch: the SaveImage function prompts for a quality setting if the output is jpg. I made a small modification to the related functions in AvsP.py so they also accept the quality as an argument.
UPDATE: the modification is included in AvsPmod 2.3.0. An improved version of this script is available at https://github.com/vdcrim/avsp-macros
ChrisW77
20th January 2012, 01:43
vdcrim, many thanks, will try that a bit later. Quality will be PNG, although I will see what 90% jpeg looks like, it depends on how well TNLMeans handles some of my older, low megapixel camera and phone pics. And Zarxrax, thanks for the Fritz Photo suggestion.
wOxxOm
28th January 2012, 20:45
Avisynth itself loads dlls and reports names of functions in a table, there is no parsing of dlls in AvsPmod.
And anyway there's nothing wrong in autoloading of your plugins if you use all of them in most of your scripts.
StainlessS
29th January 2012, 07:48
Tis a shame that there is no way to relate argument ranges within a plug description (Avisynth General).
vdcrim
3rd February 2012, 17:28
I was trying to find out if it was possible to add a button to search for file in a dialog box generated by the GetTextEntry macro function, and I ended up rewriting almost the whole thing. It adds some new functionality:
- New entry types in addition to simple text field.
- A single line can contain multiple entries.
- Horizontal separator between entries.
- Customizable dialog box width.
This new version of GetTextEntry is backwards compatible with the current one. It adds two new optional parameters and extend the existing ones. I'd be happy if it were to be incorporated to an eventual next AvsPmod release.
UPDATE: Added in AvsPmod 2.3.0
http://i.imgur.com/XtF7a.png
This is an example of dialog box showing the new different types of entry. It was generated with this macro demo:
title = 'Improved GetTextEntry macro function demo'
message = [
'Separator, both text and line optional',
['Regular text field 1', 'Regular text field 2'],
'Text field with browse for file button ("open" dialog)',
'Text field with browse for file button ("save" dialog)',
'Text field with browse for directory button',
'',
['Drop-down list (writable)', 'Drop-down list (read only)'],
['Spin', 'Check'],
'Slider (horizontal)',
'No type specified, defaults to regular text field '
]
default = [
200,
'default text',
'default file path 1',
('default file path 2', 'Avisynth Script (*.avs)|*.avs'),
'default directory path',
'',
[('list1 1', 'list1 2', 'list1 3', 'list1 2'), ('list2 1', 'list2 2', 'list2 3', 'list2 3')],
[(4, 0, 10, 2, 1), True],
(71, 0, 100, 25)
]
types = [
'sep',
'',
'file_open',
'file_save',
'dir',
'sep',
['list_writable', 'list_read_only'],
['spin', 'check'],
'slider_h'
]
width = 300
options = avsp.GetTextEntry(message, default, title, types, width)
if not options:
return
avsp.MsgBox((u'Field #{}: {}\n' * len(options)).format(
*[i[j] for i in zip(range(1, len(options) + 1), options) for j in range(2)]), 'Returned values')
Zarxrax
3rd February 2012, 22:54
cool, thanks vdcrim
wOxxOm
4th February 2012, 01:54
How about implementing a fullscreen video mode toggle? It'd be a killer feature.
ANGEL_SU
4th February 2012, 05:10
...
This new version of GetTextEntry is backwards compatible with the current one.
...
Nice work. If possible, please look OptionsDialog class in wxp.py and merge your code into.
Yellow_
4th February 2012, 16:03
How about implementing a fullscreen video mode toggle? It'd be a killer feature.
Also for dual monitor+ setups a way to run one instance of an external player if possible outside of that app, currently using mplayer on seperate screen but can't get it to only run one instance each time I want to run amended script in the external player it starts a new one. :-(
vdcrim
7th February 2012, 00:19
Nice work. If possible, please look OptionsDialog class in wxp.py and merge your code into.Done.
Edit: added this (http://forum.doom9.org/showthread.php?p=1552739#post1552739) too.
Edit 2: corrected small mistake.
Edit 3: cosmetics.
Edit 4: fixed error. This is the last update.
UPDATE: link removed, changes incorporated in AvsPmod 2.3.0
matfra
8th February 2012, 14:06
I have a issue with my AVSP. All the version of AVSP do this.
[Wed Feb 08 08:05:53 2012]
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 13863, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 13853, in OnInit
File "AvsP.pyo", line 4165, in __init__
File "AvsP.pyo", line 4784, in defineFilterInfo
File "AvsP.pyo", line 5012, in getFilterInfoFromAvisynth
WindowsError: exception: access violation reading 0x00000000
I can't event start it. That the error I have in the log. Any 1 have this issue ?
LigH
8th February 2012, 14:16
Do you possibly have junk in your AviSynth plugins folder, like plugin DLLs not suitable for your CPU or outdated DLLs for different AviSynth versions?
Reino
9th February 2012, 18:11
I'd like to report a little bug:
AvsP seems to remember the image type you used last time with "Save image as..." the next time you use it (png in my case). However, there are no png-files visible. I have to select another image type and then png again to see the content of the directory.
Can anyone confirm?
naoan
9th February 2012, 18:32
I'd like to report a little bug:
AvsP seems to remember the image type you used last time with "Save image as..." the next time you use it (png in my case). However, there are no png-files visible. I have to select another image type and then png again to see the content of the directory.
Can anyone confirm?
Nope, doing fine just naming the file without selecting filetypes.
I used this build btw :
A stupid bug, fixed.
If you would try the latest code, please download this executable file (http://www.mediafire.com/?i5rbpqs17gv4508). Before running it, make sure to put it under your AvsPmod folder.
Reino
9th February 2012, 18:49
Hehe, thx for the quick reply. It works!
Mounir
22nd February 2012, 06:38
Request: Can you add a LoadVirtualdubPlugin option ? I'm tired to write it manually
Edit > insert > LoadVirtualdubPlugin would be very much appreciated, thank you
wOxxOm
23rd February 2012, 17:48
I've spotted an error in AvsP.py:
def OnMenuVideoGotoFrameNumber(self, event):
#~ bmenu = self.GetMenuBar().GetMenu(2).FindItemByPosition(1).GetSubMenu()
#~ framenum = int(bmenu.GetLabel(event.GetId()))
menuItem = self.GetMenuBar().FindItemById(event.GetId())
framenum = int(menuItem.GetLabel().split()[0])
self.ShowVideoFrame(framenum)
Under certain circumstances (thousands of bookmarks loaded) menuItem.GetLabel() returns a label of executed menu item (character-string type, naturally) and nothing happens - AvsP just shows the error
Traceback (most recent call last):
File "C:\Program Files\[video]\AvsP\lib\library.zip\AvsP.py", line 6958, in OnMenuVideoGotoFrameNumber
ValueError: invalid literal for int() with base 10: 'Bookmarks'and doesn't execute the command.
ANGEL_SU
25th February 2012, 15:11
@wOxxOm
I believe there are duplicate IDs in menu items. The following code should be better:
def OnMenuVideoGotoFrameNumber(self, event):
#~ bmenu = self.GetMenuBar().GetMenu(2).FindItemByPosition(1).GetSubMenu()
#~ framenum = int(bmenu.GetLabel(event.GetId()))
#~ menuItem = self.GetMenuBar().FindItemById(event.GetId())
menuItem = self.menuBookmark.FindItemById(event.GetId())
framenum = int(menuItem.GetLabel().split()[0])
self.ShowVideoFrame(framenum)
wOxxOm
25th February 2012, 15:57
ANGEL_SU, thanks, now it shows another error message: OnMenuVideoGotoFrameNumber, AttributeError: 'NoneType' object has no attribute 'GetLabel'
btw, here's an instantly working *pythonic* version of Bookmarks at Intervals.py:
try:
totalframes = avsp.GetVideoFramecount()
value = float(avsp.GetTextEntry(\
"Values of 1 or greater will create bookmarks at that interval. \n"\
"e.g. a value of 1000 will create a bookmark every 1000 frames. \n"\
"Values between 0 and 1 will distribute bookmarks \n"\
"at even intervals throughout the video. \n"\
"e.g. a value of 0.2 will create 5 evenly spaced bookmarks.",\
default="1000", title="Bookmark Interval"))
step=int(value) if value>1 else int(totalframes*float(value))
avsp.SetBookmark(range(0,totalframes-1,step))
except:
pass
p.s. I've got an idea - bookmarks drawing could probably be much faster if _PaintSlider would skip painting when pixelpos is within 1 or 2 px of previously drawn one.
vdcrim
26th February 2012, 05:07
This is some changes I made to be (hopefully) incorporated in AvsPmod. It's mostly minor bugfixes, but also includes a pair of things worth mention:
Added an option to not prompt to save a script if it doesn't already exist on the filesystem. This is useful when making copies of a script in tabs to compare the previews.
Make a macro run in a new thread if it contains a comment line like "# run macro in new thread" somewhere. That makes possible to wait for the end of external commands started from the macro without locking AvsPmod.
The link also contains a new library.zip if someone wants to try.
UPDATE: link removed, changes incorporated in AvsPmod 2.3.0
btw, here's an instantly working *pythonic* version of Bookmarks at Intervals.py
Oh well, I also included a new version of that macro in the archive :D. Hope you don't mind. It needs the new library.zip:
value = avsp.GetTextEntry(['Choose a frame step or a number of intervals',
'Frame step', 'Number of intervals'],
'', 'Bookmarks at Intervals',
'sep', width=100)
if any(value):
totalframes = avsp.GetVideoFramecount()
step = float(value[0]) if value[0] else totalframes / float(value[1])
def float_range(start=0, end=10, step=1):
while start < end:
yield start
start += step
avsp.SetBookmark(float_range(0, totalframes - 1, step))
Mak0rz
27th February 2012, 18:03
I have a question about frame-accuracy.
As I previously mentioned I'm processing videos on my lab computer and I have to keep track very specific times at which certain events occur. However, sometimes the lab computer is used by one of my colleagues which leaves me nothing to do. I'd like to be able to use my laptop as a backup in case this happens, but I noticed that there is an inconsistency between the two machines. When I open the exact same video in AvsPmod (same version) on both computers they report the exact same video length, but the time recordings for these events are not equivalent between them.
Zarxrax, you made a quick update for me that allows AvsPmod to report seconds (thanks for this, it's been a real time-saver!). I assume it calculates this by some sort of simple "frame/framerate" calculation, is that right? I noticed that AvsPmod reports the framerate as 59.940fps, while my laptop reports it as 60.000fps. Would this be the cause of the inconsistency? Why is that happening?
AvsPmod version 2.2.1.1
Lab computer: Windows Vista 32-bit
My computer: Windows 7 64-bit
All videos are *.m2ts files encoded with some variant of MPEG-2 I believe. I'd give you more information about the encoding, but I actually don't know how to find it out.
LigH
28th February 2012, 07:40
If you read a file via DirectShowSource (probable for an M2TS source), then the result depends on the choice and settings of the used splitter and decoder filters registered in your system. Different PCs may have a different selection of filters or different settings for them, which may result in different clips provided via DirectShowSource.
Mak0rz
28th February 2012, 22:11
If you read a file via DirectShowSource (probable for an M2TS source), then the result depends on the choice and settings of the used splitter and decoder filters registered in your system. Different PCs may have a different selection of filters or different settings for them, which may result in different clips provided via DirectShowSource.
I forgot to mention that I'm using DSS2.
LigH
29th February 2012, 08:04
This is still a source plugin based on the DirectShow filter system. Just probably using Haali's Media Splitter to be able to read Transport Streams. Still, which decoder is used depends on each system.
Mak0rz
29th February 2012, 22:39
This is still a source plugin based on the DirectShow filter system. Just probably using Haali's Media Splitter to be able to read Transport Streams. Still, which decoder is used depends on each system.
So is this something I can install myself or is it inherent in the Windows operating systems? I would like to make the two systems equivalents for my video processing.
LigH
1st March 2012, 09:19
Just one example: On one PC you may have installed Xvid and ffdshow, but set up ffdshow to leave decoding of Xvid video to the Xvid DirectShow decoder. On another PC, you may have ffdshow set up to use libav to decode Xvid videos. So even if you have the same DirectShow filters installed, you will get different video sources into AviSynth because they are not set up identically. If you have even installed a different set of DirectShow filters, the result might be even more unreliable.
This is only one reason to try to avoid using DirectShowSource (both the original and DDS2) if possible. If you remux a Transport Stream to MKV, you will probably be able to use FFmpegSource instead, via the File Muxer.
Bernardd
2nd March 2012, 12:35
Hello,
When we use a script with ConditionalFilte like below, we need a ConditionalReader file.
ConditionalFilter(clip,clip_mod, "Is_true", "==", "false", false)\
ConditionalReader ("ConditionalReader_File.txt", "Is_true")
I have modified the AVSPmod macro "Bookmarks to chapter" to get a macro "Bookmarks to ConditionalReader". So i propose this macro file in attachment (change Txt extension in Py extension for use)
I do not know Python language, i have written this macro by many test crops and test mod, so this macro is not smart written but she is ok.
She is limited because, she produce only one kind of ConditionalReader File : file with Type = bool, Default = True, only Framenumber linked to value.
Perhaps, it is possible to create one interface to choose Type and Defaut, but i do not know write a macro like this.
Thank you for AvsPmod
Bernard
Mak0rz
2nd March 2012, 18:18
Just one example: On one PC you may have installed Xvid and ffdshow, but set up ffdshow to leave decoding of Xvid video to the Xvid DirectShow decoder. On another PC, you may have ffdshow set up to use libav to decode Xvid videos. So even if you have the same DirectShow filters installed, you will get different video sources into AviSynth because they are not set up identically. If you have even installed a different set of DirectShow filters, the result might be even more unreliable.
Is there any way to check and make sure they ARE set up identically?
This is only one reason to try to avoid using DirectShowSource (both the original and DDS2) if possible. If you remux a Transport Stream to MKV, you will probably be able to use FFmpegSource instead, via the File Muxer.
I'm not sure how possible this option is. I have hundreds of hours worth of video (therefore hundreds of gigabytes of it) to process and remuxing them will be time consuming. It also requires installing yet more software on the lab computer, which is something my supervisor is probably sick of permitting by now.
Furthermore, it means inconsistency between my video data. I already have a gigantic chunk of it processed using the DSS2 method on the computer that reports 59.940fps. Whether or not it's reporting accurate times I don't even know any more (I was under the impression that it was), but changing that now will result in inconsistency, which is equally non-favorable.
This is important because it's thesis data I'm dealing with.
Zarxrax
3rd March 2012, 13:41
Is there any way to check and make sure they ARE set up identically?
One thing that you could try is use media player classic (it doesnt require install), and in the options, disable all internal filters, and then when you right click on the video while its playing, go to the filters menu, and you get see what all filters are being used.
Mak0rz
3rd March 2012, 20:19
One thing that you could try is use media player classic (it doesnt require install), and in the options, disable all internal filters, and then when you right click on the video while its playing, go to the filters menu, and you get see what all filters are being used.
Ah, Found it! The lab computer required that I install ffdshow whereas the laptop didn't (It's using a Microsoft DTV-DVD video decoder that I'm guessing Windows 7 has, but Vista doesn't).
I have ffdshow set up exactly as I do on the lab computer; same build, same codecs, same settings, you name it. The problem now is that I can't seem to get Windows 7 to use them. It still decodes the video using the DTV-DVD decoder.
Any suggestions? I'm almost there! Thanks for your help so far, Zarxrax!
vdcrim
3rd March 2012, 20:34
The problem now is that I can't seem to get Windows 7 to use them. It still decodes the video using the DTV-DVD decoder.Use Win7DSFilterTweaker (http://www.codecguide.com/windows7_preferred_filter_tweaker.htm) or any other similar solution. More info in that page.
Mak0rz
3rd March 2012, 23:12
Use Win7DSFilterTweaker (http://www.codecguide.com/windows7_preferred_filter_tweaker.htm) or any other similar solution. More info in that page.
That did the trick! Thanks everyone!
vdcrim
4th March 2012, 18:30
I have modified the AVSPmod macro "Bookmarks to chapter" to get a macro "Bookmarks to ConditionalReader".
Nice idea. I've made a more featured version, but to use it you'll need to replace the library.zip in "AvsPmod\lib" with this one, or wait for the next AvsPmod release.
UPDATE: links removed, the macro is now included in AvsPmod 2.3.0
TheoRI
5th March 2012, 06:31
Fellow users,
I have some issues with a script and I would like your assistance
The script is a modification of the script developed by videoFred for super8 restoration (http://forum.doom9.org/showthread.php?t=144271)
I have tried to modify it for use with AvsPmod to enable easier adjustment of the various options
The issues I have are:
1) When i try to preview the video it often crashes...
2) All the time I get the following message:
Exception WindowsError: 'exception: access violation reading 0x09BC772F' in <bound method PIScriptEnvironment.__del__ of <avisynth.PIScriptEnvironment instance at 0x039E69E0>> ignored
3) I also get the error popup 5-6 times " Warning: Invalid slider tag for rescaling! Accept only +,-, or an integer" What am I defining wrong?
4) How can I modify the script so the input is requested from the user with a popup that can then navigate to a file (as in explorer)
I am running this on a dual Xeon X5660 96GB machine...
The script processes fine in VirtualDub
# film restoration script by videoFred.
# version with frame interpolation
# modified 30 august 2010
# added removedirtMC() as suggested by John Meyer
# cleaning, degraining, resizing, stabilizing, sharpening, auto-levels and auto-white balance.
# Modified by Theo Doucakis 2012.
#=============================================================================================
film="e:\telecine\24 A TEST L.avi" # source clip, please specify the full path here
#PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
result= "result4" # specify the wanted output here
# Select([<"Result", 0, 9, 2>], "Result1", "Result2", "Result3","Result4","Result5","ResultS1","ResultS2","ResultS3","ResultS4") # effort to create a pick list
#"resultS4" # specify the wanted output here
# Result options
# RESULT1: AUTOLEVELS,AUTOWHITE
# RESULT2: MANUAL LEVELS, AUTOWHITE
# RESULT3: AUTOLEVELS, MANUAL COLOR CORRECTIONS
# RESULT4: MANUAL LEVELS, MANUAL COLOR CORRECTIONS
# RESULT5: SPECIAL SERVICE CLIP FOR RESULT S5
# Adding an S before the result number outputs the comparison to the original ex resultS1 is a comparison of the original to the Result 1
[<separator="Film Speed parameters">]
trim_begin=0
play_speed=[<"Source Speed", 12, 24, 18>] #trim frames and play speed (PAL: 16.6666 or 18.75)
numerator=[<"Out Speed Numerator", 1, 60000, 24 >] #numerator for the interpolator (final frame rate)
denumerator=[<"Out Speed Denominator", 1, 1001, 1 >] #denumerator example: 60000/1001= 59.94fps
[<separator="Color and Level parameters">]
#COLOR AND LEVELS PARAMATERS
#----------------------------------------------------------------------------------------------------------------------------
saturation= [<"Saturation", 0, 2, 1.3>] #for all outputs default=1
gamma= [<"Gamma", 0, 3, 1.2>] # for all outputs default = 1
blue=[<"Blue", -255, 255, -2>]
red=[<"Red",-255,255,-3 >] #manual color adjustment, when returning result3 or result4. Values can be positive or negative
black_level=[<"Black In Level", 0, 255, 0>]
white_level=[<"White In Level", 0, 255, 246>]
output_black=[<"Black Out Level", 0, 255, 0>] # default 0
output_white=[<"White Out Level", 0, 255, 200>] # manual levels, when returning result4 default 255
[<separator="Film Size parameters">]
#SIZE, CROP AND BORDERS PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
CLeft=20 CTop=20 CRight=20 CBottom=20 #crop values after Depan and before final resizing
W_target=[<"Film Width % 8", 320, 1920, 1920>]
H_target=[<"Film Hight % 8", 240, 1080, 1080>] #final size after cropping
[<separator="Stabilising parameters">]
#STABILISING PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
maxstabH= [<"Vertical Stab (pixels) % 5", 0, 100, 25>]
maxstabV=[<"Horizontal Stab (pixels) % 5", 0, 100, 25>] #maximum values for the stabiliser (in pixels) 20 is a good start value
est_left=40 est_top=40 est_right=40 est_bottom=40 est_cont=1.4 #crop and contast values for special Estimate clip
[<separator="Clean and Denoise parameters">]
#CLEANING PARAMETERS
#--------------------------------------------------------------------------------------------------------------
dirt_blur= [<"Dirt blur", -1.0, 1.58, .5>] # some blur before cleaning to avoid pixel artifacts
dirt_strength=[<"Dirt Strenght", 0, 200, 45>] # set this lower for clean films.
#DENOISING PARAMETERS
#----------------------------------------------------------------------------------------------------------------------------
denoising_strength= [<"Denoise Strength % 50", 0, 5000, 900>] #denoising level of second denoiser: MVDegrainMulti()
denoising_frames= [<"Denoise Frames",0,10,4>] #number of frames for averaging (forwards and backwards) 3 is a good start value
block_size= [<"Block size %2", 2,24,16>] #block size of MVDegrainMulti()
block_size_v= block_size
block_over= [<"Block overlap",1,16,8>] #block overlapping of MVDegrainMulti()
[<separator="4 Step Sharpening parameters">]
# FOUR STEP SHARPENING PARAMETERS
#--------------------------------------------------------------------------------------------------------------------------------
USM_sharp_ness1= [<"Sharpness 1",0,500,120>] USM_radi_us1=[<"Radius 1",0,10,4>] #first sharpening (UnsharpMask) after cleaning with removedirtMC() Original values 120 & 4
USM_sharp_ness2= [<"Sharpness 2", 0, 200, 75>] USM_radi_us2=[<"Radius 2",0,10,3>]#second harpening (UnsharpMask) after cleaning with removedirtMC() Original values 80 & 3
USM_sharp_ness3= [<"Sharpness 3",0,100,40>] USM_radi_us3=[<"Radius 3",0,10,1>] #third sharpening (UnsharpMask) after degraining with MVDegrainMulti() Original values 40 & 1
last_sharp= [<"Final Sharp",0,5,0.4>] #final sharpening step after interpolation Original value 0.4
last_blur= [<"Final Blur",0,5,0.3>] #this smooths out the heavy sharpening effects original value 0.3
#AUTO LEVELS PARAMETER
#--------------------------------------------------------------------------------------------------------------------------------
X=2 # X is a special parameter for reducing the autolevels effect on the whites
X2=2 # X2 is a special parameter for reducing the autolevels effect on the blacks
# END VARIABLES, BEGIN SCRIPT
#===================================================================================================================
SetMemoryMax(1024) #set this to 1/3 of the available memory
SetMTMode(5) #disable all MT calls if you are using a single core computer
LoadPlugin("Deflicker.dll")
Loadplugin("Depan.dll")
LoadPlugin("DepanEstimate.dll")
Loadplugin("removegrainSSE3.dll")
LoadPlugin("removedirt.dll")
LoadPlugin("MVTools.dll")
LoadPlugin("MVTools2.dll")
Loadplugin("mt_masktools.dll")
Loadplugin("warpsharp.dll")
LoadPlugin("MT.dll")
LoadPlugin("autolevels.dll")
LoadPlugin("agc.dll")
Import("03_RemoveDirtMC.avs")
source1= Avisource(film).assumefps(play_speed).trim(trim_begin,0).converttoYV12()
SetMTMode(1,0)
#DETERMINE Original Frame size, Final Frame size and Borders
#...................................................................................................................
W_source= width(source1)
H_source= height(source1)
AR_ratio=float(W_source)/float(H_source)
H_ratio = float(H_target) / float( H_source)
W_ratio= float(W_target)/float(W_source)
Mag_ratio = min(H_ratio,W_ratio)
W= 4*(int( Mag_ratio * W_source/4))
H= 4*(int( Mag_ratio * H_source/4))
Bord_right = max(0, int( (W_target-W) /2))
Bord_left = Bord_right
Bord_top= max(0, int( (H_target - H) /2))
Bord_bot= Bord_top
#STABILIZING/CROPPING
#...................................................................................................................
stab_reference= source1.crop(est_left,est_top,-est_right,-est_bottom).tweak(cont=est_cont).MT_binarize(threshold=80).greyscale().invert()
mdata=DePanEstimate(stab_reference,trust=1.0,dxmax=maxstabH,dymax=maxstabV)
stab=DePanStabilize(source1,data=mdata,cutoff=0.5,dxmax=maxstabH,dymax=maxstabV,method=0,mirror=15).deflicker()
stab2= stab.crop(CLeft,CTop,-CRight,-CBottom)
stab3=DePanStabilize(source1,data=mdata,cutoff=0.5,dxmax=maxstabH,dymax=maxstabV,method=0,info=true)
WS= width(stab)
HS= height(stab)
stab4= stab3.addborders(10,10,10,10,$B1B1B1).Lanczos4Resize(WS,HS)
stab5= Lanczos4Resize(stab2,W,H).sharpen(0.5)
#CLEANING/PRESHARPENING/RESIZING
#...................................................................................................................
noise_baseclip= stab2.levels(0,gamma,255,0,255).tweak(sat=saturation).blur(dirt_blur)
cleaned= RemoveDirtMC(noise_baseclip,dirt_strength).unsharpmask(USM_sharp_ness1,USM_radi_us1,0)\
.unsharpmask(USM_sharp_ness2,USM_radi_us2,0).Lanczos4Resize(W,H)
#DEGRAINING/SHARPENING
#.................................................................................................................................................
vectors= cleaned.MVAnalyseMulti(refframes=denoising_frames, pel=2, blksize=block_size, blksizev= block_size_v, overlap=block_over, idx=1)
denoised= cleaned.MVDegrainMulti(vectors, thSAD=denoising_strength, SadMode=1, idx=2).unsharpmask(USM_sharp_ness3,USM_radi_us3,0)
#CHANGING FRAME RATE WITH INTERPOLATION/FINALSHARPENING
#.................................................................................................................................................
super= denoised.MSuper()
backward_vec= MAnalyse(super, blksize=block_size, blksizev= block_size_v, overlap=block_over, isb=true)
forward_vec= MAnalyse(super,blksize=block_size, blksizev= block_size_v, overlap=block_over, isb= false)
interpolated= denoised.MFlowFps(super, backward_vec, forward_vec, num=numerator, den= denumerator, ml=100)\
.sharpen(last_sharp).sharpen(last_sharp).blur(last_blur)
#RESULT1: AUTOLEVELS,AUTOWHITE
#.................................................................................................................................................
result1= interpolated.coloryuv(autowhite=true).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000)\
.autolevels().crop(X,0,-X2,-0).addborders(bord_left, bord_top, bord_right, bord_bot)
#RESULT2: MANUAL LEVELS, AUTOWHITE
#...................................................................................................................
result2= interpolated.levels(black_level,1.0,white_level,0,255).coloryuv(autowhite=true)\
.addborders(bord_left, bord_top, bord_right, bord_bot)
#RESULT3: AUTOLEVELS, MANUAL COLOR CORRECTIONS
#...................................................................................................................
result3= interpolated.coloryuv(off_U=blue,off_V=red).addborders(X,0,0,0,$FFFFFF)\
.addborders(0,0,X2,0,$000000).autolevels().crop(X,0,-X2,-0).addborders(bord_left, bord_top, bord_right, bord_bot)
#RESULT4: MANUAL LEVELS, MANUAL COLOR CORRECTIONS
#...................................................................................................................
result4= interpolated.coloryuv(off_U=blue,off_V=red).levels(black_level,1.0,white_level,0,255)\
.addborders(bord_left, bord_top, bord_right, bord_bot)
#RESULT5: SPECIAL SERVICE CLIP FOR RESULT S5
#...................................................................................................................
result5= overlay(source1,stab_reference,x=est_left,y=est_top).addborders(2,2,2,2,$FFFFFF).Lanczos4Resize(WS,HS)
#PARAMETERS FOR THE COMPARISONS
#.................................................................................................................................................
W2= W+bord_left+bord_right
H2= H+bord_top+bord_bot
final_framerate= numerator/denumerator
source4= Lanczos4Resize(source1,W,H).changeFPS(final_framerate).addborders(bord_left, bord_top, bord_right, bord_bot)
# COMPARISONS: ORIGINAL VS RESULTS
#.................................................................................................................................................
resultS1= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result1,"result1: autolevels, autowhite",size=28,align=2))
resultS2= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result2,"result2: autowhite, manual levels correction",size=28,align=2))
resultS3= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result3,"result3: autolevels, manual color correction",size=28,align=2))
resultS4= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result4,"result4: manual colors and levels correction",size=28,align=2))
#SPECIAL COMPARISON CLIP FOR TESTING THE STABILIZER
#.................................................................................................................................................
resultS5= stackhorizontal(subtitle(result5,"baseclip for stabiliser -only the B/W clip is used",size=32,align=2),\
subtitle(stab4,"test stabiliser: dx=horizontal, dy=vertical",size=32,align=5))
SetMTMode(5)
Eval(result)
Bernardd
5th March 2012, 10:59
Hello vdcrim,
I have a dream, you a have made it. Thank you very much.
But mode "Ranges of frames (with interpolation)" do not ok, the second value for interpolation is missing in text file.
Because i have not understood first the way to input int, float and string values, i propose a kind of commentary like in this mod of 69 number lign of ConditionalReader script.
message=[['Type (choice)', 'Default (choice or custom)', 'Value (choice or custom)'] (mod lign)
message=[['Type', 'Default', 'Value'] (original scrip lign)
Still, thank you for you quick action and answer.
Bernard
vdcrim
5th March 2012, 14:52
mode "Ranges of frames (with interpolation)" do not ok, the second value for interpolation is missing in text file.
You can just introduce in 'Value' the two necessary ints/floats separated by a space. Maybe I should have called it 'Value(s)'...
Also, note that while 'Value' is applied to all the frames selected, singular values can be specified by adding titles to the bookmarks (Video -> Titled bookmarks -> Set titles (manual)). If you do that while using the interpolation option the two values must be introduced as the title of either the start or end frame, but not one value in each bookmark [UPDATE: not anymore]. This is for consistency with the no interpolation option (and for save me some work). I just added it as a note to the script.
Because i have not understood first the way to input int, float and string values...Probably the best would be just leave blank by default these two fields (preferences section). I don't think that comment is neccesary.
Bernardd
5th March 2012, 18:40
Hi vdcrim,
OK, apologize, with your explanations all is clear now.
Thank you for this macro script.
Bernard
Revo
9th April 2012, 20:58
Hi, when using DgDecNV for decoding, and refreshing the avspmod window, gpu memory usage keeps adding up, untill the vram is full, and i get a decoder error. And even when i use the "release all videos from memory" feature, it does not lower memory usage, its not untill i actually restart avsp, that memory is released in vram.
This is super anoying, shouldn't it continue to just use the same amount of memory after a refresh?
And shouldn't the release video from memory feature actually do it?
Are my settings wrong, or does this need fixing?
Picture illustrating the problem, each step in memory usage is a refresh:
http://i.imgur.com/LZfvN.jpg
vdcrim
9th April 2012, 23:06
Have you tried opening the avs with another program? I don't own a Nvidia GPU, but with FFT3dGPU and AMD I also notice that not all the GPU memory is released until AvsPmod finishes, and the same happens with VirtualDub and mpc-hc using 'close' and 'open' file successively. It may be Avisynth or DgDecNV related.
Guest
10th April 2012, 01:06
Hi, when using DgDecNV for decoding, and refreshing the avspmod window, gpu memory usage keeps adding up, untill the vram is full, and i get a decoder error. And even when i use the "release all videos from memory" feature, it does not lower memory usage, its not untill i actually restart avsp, that memory is released in vram. When developing DGDecNV and working with Zathor to get MEGUI to play nice with it, I used VirtualDub to test proper deinstantiation of filter instances on refresh. Load your AVS in VirtualDub and start hitting F2 to reopen the script. You should see stable memory usage. I guess that Avspmod is not properly closing scripts on refresh.
Mounir
5th May 2012, 16:48
I have a problem today when i try to import my script:
Traceback (most recent call last):
File "AvsP.pyo", line 6495, in OnMenuFileOpen
File "AvsP.pyo", line 9354, in OpenFile
File "wx\stc.pyo", line 2934, in SetText
File "encodings\cp1252.pyo", line 15, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 6398: character maps to <undefined>
What could cause this ?
vdcrim
5th May 2012, 18:08
Does your script includes the character ü? 0x81 maps to ü in extended ASCII but it's undefined in CP-1252 (the code used by Windows in most Western countries). Extended ASCII is not very used nowadays, you should set your editor to UTF-8 or regular ASCII.
I'd recommend you Notepad2-mod (https://code.google.com/p/notepad2-mod/). It's as fast as Window's notepad but includes syntax highlighting for a bunch of languages, AviSynth included.
Mounir
13th May 2012, 06:30
@vdcrim
Here is my full script in the hope you can find out what's wrong (i tried to encode it in UTF-8 w/o luck)
http://www.mediafire.com/?vds8jqaud2rymmt
When i try to open it avsp won't open
error returned:
Traceback (most recent call last):
File "AvsP.pyo", line 4275, in OnData
File "AvsP.pyo", line 9354, in OpenFile
File "wx\stc.pyo", line 2934, in SetText
File "encodings\cp1252.pyo", line 15, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 5928: character maps to <undefined>
vdcrim
13th May 2012, 16:38
Here is my full script in the hope you can find out what's wrong
Here is the problem:
# RGBEQ (Hue with 3 sliders, R'G'B/3 mode, #1 slider=+12, #2 slider=0 (default), #3 slider=+14 )
LoadvirtualdubPlugin("C:\Program Files (x86)\virtualdub1.9\plugins\rgbeq.vdf","rgbeq",1)
rgbeq("€Œ€€€€€€€†€€ [...] )
Are really these the characters you're seeing in the "save processing settings" file? I tried to reproduce your settings and got this:
VirtualDub.video.filters.Add("RGB Equalizer(2.2)");
VirtualDub.video.filters.instance[0].Config("20G2020G2020G2020G2020G2C20G2020G2020G2020G2020G2020G2020G2020G2020
G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G20
20G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G
2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2020G2E20G2020G2020G202
0G2020G2020G2020G2020G2020G2020G2020G2000G4100G4100G4100G4100G4100G4100G4100G4100G4100G4100H4H00G0
J00001");
All valid ASCII characters.
This reminds me:
Request: Can you add a LoadVirtualdubPlugin option ? I'm tired to write it manually
Edit > insert > LoadVirtualdubPlugin would be very much appreciated, thank you
Use this library.zip for now.
UPDATE: AvsPmod 2.3.0 released, link removed
Mounir
13th May 2012, 18:49
That's odd i see €€€€..... when i open the .vdf
What am i supposed to do with this library ?
vdcrim
13th May 2012, 19:20
That's odd i see €€€€..... when i open the .vdf
I don't know, check that you're using the latest versions of Virtualdub and RGB Equalizer. Also try opening the vdscript file with another editor, like the one previously linked.
What am i supposed to do with this library ?
Replace the one in the "Avspmod\lib" directory. Then you can use the updated "Insert plugin" menu option to also insert VirtualDub plugins, or drag & drop the vdf file. Don't forget to change the preroll parameter if necessary.
Mounir
16th May 2012, 00:08
Which rgbeq version did you use ? I use the v2.1, i had no luck to get numbers instead of €€.. so far
vdcrim
16th May 2012, 01:42
Latest is v2.2 (http://fdump.narod.ru/equalizer.htm). I just checked v2.1 and yes, € everywhere.
IIRC, binary filter data should be stored with Base64 encoding or similar...
wOxxOm
16th May 2012, 23:50
Periodic autosaving of the session would be much appreciated - dozens of times I've had to use procexp's memory dumper to recover unsaved script that crashed AvsPmod and sometimes it didn't help..
--------------------
Number-of-replacements-messagebox after ReplaceAll shouldn't steal focus from Search & Replace dialog after it's closed, instead it should report its _status_ in _statusbar_ like convenient text editors do, so instead of
dlg = wx.MessageDialog( ................. )
dlg.ShowModal()
dlg.Destroy()
def OnReplaceAllPressed(event): should have
self.app.GetStatusBar().SetStatusText(_('Replaced %(count)i times') % locals())
The same goes for def OnFindPressed(event):
Zarxrax
6th June 2012, 23:34
vdcrim has contributed lots of changes to AvsPmod, and he has also created a new Git Repository for the project: https://github.com/avspmod/avspmod
From here on out, I don't think I will be posting much more regarding AvsPmod, as things have gotten really busy for me, and I don't have the time that I used to. My own contributions are not the ones that have been pushing AvsPmod forward over the past couple of years, so hopefully things will continue to improve just as always. I will be glad to continue updating the first post with new versions and stuff, if necessary.
Version 2.3.0
- Add an option to decide based on the video resolution the coefficients used in the conversion to RGB for the video preview
- Add 'Run analysis pass' to the 'Video' menu (for two-pass filters)
- Add periodic session backup option
- Add an option to not prompt to save a script if it doesn't already exist on the filesystem
- Add original source time (%ST) and encoded frame type (%EFT) to the video status bar options (only works with ffms as source filter and no temporal filters in the script)
- VirtualDub and VFAPI plugins can be also inserted now with the 'Insert plugin...' menu option and the 'GetPluginString' macro function, and be dropped over a script
- Fix exception opening the crop editor
- The default filename in a save script dialog wasn't taken from the first source in the script in some cases
- Saving an image with an unsaved script not longer causes to include a '*' in the default output filename
- Solved single instance + restart AvsPmod + child process still running -> socket error
- The interface language can be chosen now from the options. Several translations are included.
- Add macro files to the translations
- The macro documentation can be checked now with 'help(avsp.function)' or 'help(avsp)' from a macro
- All included macros and macro functions support unicode strings now
- Add persistent storage to macros - 'Options' dictionary
- Macros can run now in its own thread by including a comment line like: # run macro in new thread
- The macro API functions are now thread-safe
- Add a new macro function 'SafeCall' for thread-safe calls in separate-thread macros and tools
- Add a new macro function 'GetPixelInfo' that waits for the user to click on the video preview and returns the coordinates and colour of that point
- Add a new macro function 'GetVar' to retrieve the contents of a specified Avisynth variable. Some limitations apply.
- Update GetTextEntry macro function with new types of entry, multiple entries per row and customizable width, backwards compatible
- Add an optional cancel button to the MsgBox macro function
- SaveImage macro function also accepts now JPEG quality as a parameter
- Fix ProgressBox macro function 'Cancel' button
- Fix SaveScript macro function 'filename' parameter
- Add new macro 'ConditionalReader file from bookmarks'
- Update some macros with the improvements in GetTextEntry
- A number of intervals can be specified directly now in the 'Bookmarks at Intervals' macro
- Set the Large Address Aware flag
- Python 2.6-2.7 is required now
- Other minor changes and fixes
SubJunk
7th June 2012, 00:58
Thanks for the update!
I just wondered how to download an end-user build from github ... when I remembered that you keep updating the start post of this thread. :o
Zarxrax
7th June 2012, 14:57
I just wondered how to download an end-user build from github ... when I remembered that you keep updating the start post of this thread. :o
There is in fact a download button on the github page as well, towards the top right.
Indeed, quite subtle...
https://github.com/AvsPmod/AvsPmod/downloads
Mounir
7th June 2012, 17:59
Nice i will try this out right now. Before you go to new horizons Zarxax try to find a successor at least ,it would be unfortunate that avspmod development is stopped in its tracks.
vdcrim
8th June 2012, 19:38
Two new macros taking advantage of the changes introduced in AvsPmod 2.3.0:
GraMaMa mask (http://www.mediafire.com/download.php?qo7p33rc8vrzkij)
Overlay a clip on top of another using a mask with a prescribed shape
Requirements:
- GraMaMa AviSynth filter <http://www.wilbertdijkhof.com/>
Instructions:
This macro uses the last assigned variable as the overlay clip and 'last'
as the overlayed. Example:
ColorBars(pixel_type="yv12")
alt=Invert()
becomes:
ColorBars(pixel_type="yv12")
alt=Invert()
Overlay(alt,mask=GraMaMa(mode=1,a=200,b=200,rad=100,rad2=100,binarize=False).Invert(),mode="blend")
where (a, b) is the center of the mask, selected by clicking on the video
preview.
Create GIF with ImageMagick (http://www.mediafire.com/download.php?0q3bde6s76ygw8r)
Create GIF with ImageMagick
Requirements:
- convert.exe from ImageMagick <http://www.imagemagick.org>
By default the executable is expected to be found in 'AvsPmod\tools'
or one of its subdirectories. A path will be asked for in the first
run otherwise.
If you only need ImageMagick for this macro then do the following:
1) download the portable static version of IM
2) extract only convert.exe
3) place it on the 'AvsPmod\tools' directory
The GIF creation may take a while for long clips.
For loading/saving other formats with ImageMagick check out Wilbert's
Immaavs AviSynth plugin <http://www.wilbertdijkhof.com>
Also, a new repository for my macros spreaded around this forum: https://github.com/vdcrim/avsp-macros
real.finder
10th June 2012, 17:13
hi vdcrim
I tried to use Create GIF with ImageMagick
But this error has occurred
http://i.imgur.com/CIuNg.png
thank you
________
1st edited:
thank you again, but both of them don't work, and the same problem above.
note: this error happens after the chosen settings of "Create GIF with ImageMagick" and press ok button.
_________
2nd edit: thank you very much, it's work now, all of them but the C one show empty CLI in the work, I wait the final stable version.
vdcrim
10th June 2012, 23:45
I don't have any error here. Try the two modified versions included in this archive [link removed] and tell me if it works for you. Please answer by editing your previous post or sending me a pm to avoid bumping this thread.
Edit 1: please try again [link removed]
Edit 2: fixed. It was some handle inheritance issue that only happens under specific circumstances.
sl1pkn07
25th June 2012, 00:03
in the middle of possibility... is posssible port this to use with avxsynth (linux)?
greetings
vdcrim
26th June 2012, 19:15
is posssible port this to use with avxsynth (linux)?
Most of the code should be already compatible. AvsP is written in Python + wxWidgets and there's a port to Unix using GTK as base. However there's some important things that would need work. This is what I can think of:
Adapt the Python AviSynth C API wrapper to also accept AvxSynth.
Possible incompatibilities between Python on Windows and Unix, and wxWidgets and wxGTK.
Video preview. While the preview could be displayed with wxPython, the perfomance would be very poor and so AvsP uses VFW direcly. Something similar would be necessary for Unix.
On Windows the AviSynth location is read from the registry.
avs files association.
Currently AvsP stores all its settings in the program's directory. Something like this would be better: if options.dat exists on the program's directory, use portable mode (as it does now). Otherwise, use the user profile / HOME.
Personally I don't have the time or will to do this, at least right now. Contributors are welcome.
Stephen R. Savage
26th June 2012, 21:56
Most of the code should be already compatible. AvsP is written in Python + wxWidgets and there's a port to Unix using GTK as base. However there's some important things that would need work. This is what I can think of:
Adapt the Python AviSynth C API wrapper to also accept AvxSynth.
Possible incompatibilities between Python on Windows and Unix, and wxWidgets and wxGTK.
Video preview. While the preview could be displayed with wxPython, the perfomance would be very poor and so AvsP uses VFW direcly. Something similar would be necessary for Unix.
On Windows the AviSynth location is read from the registry.
avs files association.
Currently AvsP stores all its settings in the program's directory. Something like this would be better: if options.dat exists on the program's directory, use portable mode (as it does now). Otherwise, use the user profile / HOME.
Personally I don't have the time or will to do this, at least right now. Contributors are welcome.
I briefly tried to port avisynth.py to Avxsynth. On the face of it, the only required change is swapping "avisynth=ctypes.windll.avisynth" for the appropriate Linux call, but I kept getting segmentation faults in Python when trying to call avs_get_var and avs_set_var, presumably because of some incompatibility in the exact types being passed.
Edit: The problem is related to 64-bit code and ctypes. It should be much simpler to port AvsPmod to 32-bit AvxSynth.
LigH
27th June 2012, 08:58
Wish:
I could use an export of the syntax-highlighted source as e.g. HTML or RichText, to format it in a word-processor and print parts of it. There are other text editors with syntax highlighter support, but their selection of known filters and functions is usually less complete.
And an own highlight class for named function parameters might be missing yet.
vdcrim
27th June 2012, 22:51
Come to think of it, there's actually not printing support in AvsPmod. A virtual printer could be used to export the styled text. I just tried applying some borrowed code and it seems to work OK. I'll take a better look at it in a few days.
lansing
29th June 2012, 14:27
bug found, when i start the crop editor and then zoom, the cropping doesn't work, or giving me random crop numbers like -199 when i jump to another frame.
When I zoomed then crop editor, it will pop a message saying can't crop with zoom.
lordsmurf
1st July 2012, 09:58
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 13863, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "AvsP.pyo", line 13853, in OnInit
File "AvsP.pyo", line 4165, in __init__
File "AvsP.pyo", line 4784, in defineFilterInfo
File "AvsP.pyo", line 5012, in getFilterInfoFromAvisynth
WindowsError: exception: access violation reading 0x00000000
In my case, it was caused by having ffavisynth.avsi in the plugins folder.
What's strange is that AvsPmod had been working fine.
I moved it to a backup folder (plugins.backup) in case I need it again.
It's nice to see AvsPmod is still getting community support and updates. :thanks:
matfra
5th July 2012, 14:57
Im trying to load a virtualdubplugin into avsp. I know it was working before with older version of ASVP.
This is the line im importing.
LoadVirtualDubPlugin ("C:\Program Files (x86)\AviSynth 2.5\plugins\CCD.VDF", "CCD",0)
This is the error its giving me.
Traceback (most recent call last):
File "AvsP.pyo", line 7472, in OnMenuVideoToggle
File "AvsP.pyo", line 11313, in ShowVideoFrame
File "AvsP.pyo", line 11782, in UpdateScriptAVI
File "pyavs.pyo", line 168, in __init__
File "avisynth.pyo", line 117, in Invoke
WindowsError: exception: access violation reading 0xA6446895
vdcrim
5th July 2012, 15:24
I just checked that plugin and works fine for me. Usually "WindowsError: exception: access violation reading ..." errors are related to Avisynth plugins. Try moving the contents of your plugins directory to another place and see if the exception occurs. If not, add your plugins back in bunches to get the faulty one.
Also, if you're using SEt's 2.6 builds update to the latest one, there were some troubles with VD plugins in the past.
Stephen R. Savage
19th July 2012, 20:07
I briefly tried to port avisynth.py to Avxsynth. On the face of it, the only required change is swapping "avisynth=ctypes.windll.avisynth" for the appropriate Linux call, but I kept getting segmentation faults in Python when trying to call avs_get_var and avs_set_var, presumably because of some incompatibility in the exact types being passed.
Edit: The problem is related to 64-bit code and ctypes. It should be much simpler to port AvsPmod to 32-bit AvxSynth.
For what it's worth, these changes to avisynth.py allow it to be used with AvxSynth. The frame-drawing code is a little bit trickier to port.
--- avisynth.py.orig 2012-07-19 15:00:31.956879785 -0400
+++ avisynth.py 2012-07-19 15:03:54.632940526 -0400
@@ -1,8 +1,9 @@
import ctypes
import sys
-avidll = ctypes.windll.avisynth
-
+#avidll = ctypes.windll.avisynth
+avidll = ctypes.CDLL("libavxsynth.so")
+
#constants
PLANAR_Y=1<<0
PLANAR_U=1<<1
@@ -503,15 +504,24 @@
-GETFRAME=ctypes.WINFUNCTYPE(ctypes.POINTER(VideoFrame),
+#GETFRAME=ctypes.WINFUNCTYPE(ctypes.POINTER(VideoFrame),
+# ctypes.POINTER(FilterInfo),ctypes.c_int)
+#GETPARITY=ctypes.WINFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
+# ctypes.c_int)
+#GETAUDIO=ctypes.WINFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
+# ctypes.c_void_p,ctypes.c_int64,ctypes.c_int64)
+#SETCACHEHINTS=ctypes.WINFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
+# ctypes.c_int,ctypes.c_int)
+#FREEFILTER=ctypes.WINFUNCTYPE(None,ctypes.POINTER(FilterInfo))
+GETFRAME=ctypes.CFUNCTYPE(ctypes.POINTER(VideoFrame),
ctypes.POINTER(FilterInfo),ctypes.c_int)
-GETPARITY=ctypes.WINFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
+GETPARITY=ctypes.CFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
ctypes.c_int)
-GETAUDIO=ctypes.WINFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
+GETAUDIO=ctypes.CFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
ctypes.c_void_p,ctypes.c_int64,ctypes.c_int64)
-SETCACHEHINTS=ctypes.WINFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
+SETCACHEHINTS=ctypes.CFUNCTYPE(ctypes.c_int,ctypes.POINTER(FilterInfo),
ctypes.c_int,ctypes.c_int)
-FREEFILTER=ctypes.WINFUNCTYPE(None,ctypes.POINTER(FilterInfo))
+FREEFILTER=ctypes.CFUNCTYPE(None,ctypes.POINTER(FilterInfo))
FilterInfo._fields_=[("child",ctypes.c_void_p),
("vi",VideoInfo),
@@ -598,7 +608,9 @@
avs_vsprintf.restype = ctypes.c_char_p
avs_vsprintf.argtypes=[PIScriptEnvironment,ctypes.c_char_p,ctypes.c_void_p]
-APPLYFUNC=ctypes.WINFUNCTYPE(ctypes.POINTER(AVS_Value),PIScriptEnvironment,
+#APPLYFUNC=ctypes.WINFUNCTYPE(ctypes.POINTER(AVS_Value),PIScriptEnvironment,
+# AVS_Value,ctypes.c_void_p)
+APPLYFUNC=ctypes.CFUNCTYPE(ctypes.POINTER(AVS_Value),PIScriptEnvironment,
AVS_Value,ctypes.c_void_p)
avs_add_function=avidll.avs_add_function
@@ -638,7 +650,8 @@
ctypes.c_int,ctypes.POINTER(ctypes.c_ubyte),
ctypes.c_int,ctypes.c_int,ctypes.c_int]
-SHUTDOWNFUNC=ctypes.WINFUNCTYPE(ctypes.c_void_p,PIScriptEnvironment)
+#SHUTDOWNFUNC=ctypes.WINFUNCTYPE(ctypes.c_void_p,PIScriptEnvironment)
+SHUTDOWNFUNC=ctypes.CFUNCTYPE(ctypes.c_void_p,PIScriptEnvironment)
avs_at_exit=avidll.avs_at_exit
avs_at_exit.restype=None
FlimsyFeet
19th July 2012, 22:04
Took me ages to work out why my script wasn't workign as expected, turned out to be a strange bug in AvsPmod!
Try this script:
colorbars()
levels (0,1,255,0,255)
Press F5, then try playing with the sliders - they have no effect.
Removing the space between the "levels" and the "(" fixes the problem.
LigH
20th July 2012, 09:37
Well, the AvsP source parser is not the same as the AviSynth source parser; one is tolerant about spaces between name and parameter list of functions, the other isn't. I would not recommend spaces between them, ever, no matter if it is tolerated. But there are even more strict "style guidelines" for different languages (e.g. Python PEP#)...
vdcrim
20th July 2012, 14:09
@Stephen R. Savage - thanks
@FlimsyFeet - fixed
I won't be contributing more for a while, so expect a minor release in a few days. There's some things I'd like to do that won't make it:
- syntax highlighting rewrite
- using the crop editor while the video is zoomed or flipped
- regular expressions in the find/replace dialog
Zarxrax
26th July 2012, 16:46
vdcrim's new release is now linked in the first post, with the following changes:
Version 2.3.1
- Add detached video preview window visibility options:
- Always on top of other windows ('Options' menu)
- Always on top of the main window ('Program Settings' dialog, needs restart)
- Add printing support
- Disable showing line numbers if 'line margin width' option is 0
- Don't fail to launch AvsPmod if the option files are damaged
- Work around event ID overlapping when working with a large number of bookmarks by disabling 'Go to bookmark' submenu for more than 1000
- Add version info to the macro API
- Add draw lines option to the GetPixelInfo macro function, and fix marks position
- Rename the last executed macro return value from 'last' to 'avsp.Last'. The former is still accepted.
- Add 'Macros - Extra' section to the translation files. Strings that no longer exist are deleted from the translation files when updating to a new version. That means that translation strings added for the user for macros not bundled with AvsPmod are lost. This new section at the end is copied verbatim from the original file.
- Rename 'Bookmarks from Chapter' macro to 'Import bookmarks from file' and add support for some other file types:
- TFM log (combed, possible combed and u/v mismatches)
- x264 QP file
- XviD and SCXviD log
- Fix performance issues in the 'Bookmarks at Intervals' macro
- Other minor changes and fixes
Stephen R. Savage
27th July 2012, 17:33
I've hacked away the platform-dependent parts of AvsP.py and pyavs.py:
--- AvsP.py.orig 2012-07-22 00:03:10.000000000 -0400
+++ AvsP.py 2012-07-27 12:22:55.871314784 -0400
@@ -50,8 +50,9 @@
import StringIO
import textwrap
import ctypes
-import _winreg
-import _md5 as md5
+##import _winreg
+##import _md5 as md5
+from hashlib import md5
import __builtin__
from collections import OrderedDict, Iterable, Sequence, MutableSequence
@@ -5107,25 +5108,25 @@
self.options['version'] = self.version
# Get the avisynth directory as necessary
if not os.path.isdir(self.options['avisynthdir']):
- try:
- # Get the avisynth directory from the registry
- key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'Software\\AviSynth')
- name, value, typereg = _winreg.EnumValue(key, 0)
- if os.path.isdir(value):
- self.options['avisynthdir'] = value
- else:
- raise WindowsError
- key.Close()
- except WindowsError:
- # Get the avisynth directory from the user with a dialog box
- defaultdir = os.environ.get('PROGRAMFILES')
- if defaultdir is None:
- defaultdir = ''
- dlg = wx.DirDialog(self, 'Select the Avisynth directory', defaultdir)
- ID = dlg.ShowModal()
- if ID==wx.ID_OK:
- self.options['avisynthdir'] = dlg.GetPath()
- dlg.Destroy()
+## try:
+## # Get the avisynth directory from the registry
+## key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'Software\\AviSynth')
+## name, value, typereg = _winreg.EnumValue(key, 0)
+## if os.path.isdir(value):
+## self.options['avisynthdir'] = value
+## else:
+## raise WindowsError
+## key.Close()
+## except WindowsError:
+## # Get the avisynth directory from the user with a dialog box
+## defaultdir = os.environ.get('PROGRAMFILES')
+## if defaultdir is None:
+ defaultdir = ''
+ dlg = wx.DirDialog(self, 'Select the Avisynth directory', defaultdir)
+ ID = dlg.ShowModal()
+ if ID==wx.ID_OK:
+ self.options['avisynthdir'] = dlg.GetPath()
+ dlg.Destroy()
self.options['avisynthhelpfile'] = self.options['avisynthhelpfile'].replace('%avisynthdir%',$
# Fix recentfiles as necessary???
try:
@@ -8161,33 +8162,34 @@
s2 = _('Do you wish to continue?')
ret = wx.MessageBox('%s\n\n%s' % (s1, s2), _('Warning'), wx.YES_NO|wx.ICON_EXCLAMATION)
if ret == wx.YES:
- if hasattr(sys,'frozen'): # run in py2exe binary mode
- value = '"%s" "%%1"' % sys.executable
- else: # run in source mode
- dirname = os.path.dirname(__file__)
- basename = os.path.basename(__file__)
- if not dirname:
- dirname = os.getcwd()
- script = os.path.join(dirname, basename)
- value = '"%s" "%s" "%%1"' % (sys.executable, script)
- try:
- hkey = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, 'avsfile\\shell\\Open\\command', 0$
- _winreg.SetValue(_winreg.HKEY_CLASSES_ROOT, 'avsfile\\shell\\Open\\command', _winreg$
- _winreg.CloseKey(hkey)
- except WindowsError, e:
- print e
- try:
- hkey = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\Cur$
- _winreg.DeleteValue(hkey, 'Application')
- _winreg.CloseKey(hkey)
- except WindowsError, e:
- print e
- try:
- hkey = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\Cur$
- _winreg.DeleteKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\CurrentV$
- _winreg.CloseKey(hkey)
- except WindowsError, e:
- print e
+ pass
+## if hasattr(sys,'frozen'): # run in py2exe binary mode
+## value = '"%s" "%%1"' % sys.executable
+## else: # run in source mode
+## dirname = os.path.dirname(__file__)
+## basename = os.path.basename(__file__)
+## if not dirname:
+## dirname = os.getcwd()
+## script = os.path.join(dirname, basename)
+## value = '"%s" "%s" "%%1"' % (sys.executable, script)
+## try:
+## hkey = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, 'avsfile\\shell\\Open\\command',$
+## _winreg.SetValue(_winreg.HKEY_CLASSES_ROOT, 'avsfile\\shell\\Open\\command', _winr$
+## _winreg.CloseKey(hkey)
+## except WindowsError, e:
+## print e
+## try:
+## hkey = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\C$
+## _winreg.DeleteValue(hkey, 'Application')
+## _winreg.CloseKey(hkey)
+## except WindowsError, e:
+## print e
+## try:
+## hkey = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\C$
+## _winreg.DeleteKey(_winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\Curren$
+## _winreg.CloseKey(hkey)
+## except WindowsError, e:
+## print e
def OnMenuConfigureShortcuts(self, event):
@@ -10238,9 +10240,9 @@
setSavePoint = False
if crc is not None:
try:
- crc2 = md5.new(txtFromFile).digest()
+ crc2 = md5(txtFromFile).hexdigest()
except UnicodeEncodeError:
- crc2 = md5.new(txtFromFile.encode(encoding)).digest()
+ crc2 = md5(txtFromFile.encode(encoding)).hexdigest()
if crc != crc2:
self.reloadList.append((index, scriptname, txt))
self.OpenFile(filename=scriptname, scripttext=scripttext, setSavePoint=setSavePoint,$
@@ -10324,7 +10326,7 @@
f = open(scriptname, 'r')
txt = f.read()
f.close()
- crc = md5.new(txt).digest()
+ crc = md5(txt).hexdigest()
except UnicodeDecodeError:
f = codecs.open(scriptname, 'rU', encoding)
txt = f.read()
@@ -10332,7 +10334,7 @@
#~ f = codecs.open(scriptname, 'rU', encoding)
#~ txt = f.read()
#~ f.close()
- crc = md5.new(txt.encode(encoding)).digest()
+ crc = md5(txt.encode(encoding)).hexdigest()
splits = (script.lastSplitVideoPos, script.lastSplitSliderPos, script.sliderWindowSh$
scripts.append((scriptname, boolSelected, script.GetText(), crc, splits, script.last$
# Get the remaining session information, store in a dict
@@ -10409,7 +10411,7 @@
bmp = wx.EmptyBitmap(w, h)
mdc = wx.MemoryDC()
mdc.SelectObject(bmp)
- script.AVI.DrawFrame(self.currentframenum, mdc.GetHDC())
+ script.AVI.DrawFrame(self.currentframenum, mdc)
ext = os.path.splitext(filename)[1].lower()
if ext not in extlist:
ext = '.bmp'
@@ -12367,7 +12369,7 @@
dc = wx.MemoryDC()
bmp = wx.EmptyBitmap(w,h)
dc.SelectObject(bmp)
- script.AVI.DrawFrame(frame, dc.GetHDC())
+ script.AVI.DrawFrame(frame, dc)
self.PaintCropRectangles(dc, script)
self.PaintTrimSelectionMark(dc, script, frame)
try: # DoPrepareDC causes NameError in wx2.9.1 and fixed in wx2.9.2
@@ -12381,7 +12383,7 @@
self.videoWindow.DoPrepareDC(dc)
except:
self.videoWindow.PrepareDC(dc)
- script.AVI.DrawFrame(frame, dc.GetHDC())
+ script.AVI.DrawFrame(frame, dc)
else:
dc = wx.MemoryDC()
w = script.AVI.Width
@@ -12391,7 +12393,7 @@
else:
bmp = wx.EmptyBitmap(w,h)
dc.SelectObject(bmp)
- script.AVI.DrawFrame(frame, dc.GetHDC())
+ script.AVI.DrawFrame(frame, dc)
if self.flip:
img = bmp.ConvertToImage()
if 'flipvertical' in self.flip:
--- pyavs.py.orig 2012-06-23 01:31:50.000000000 -0400
+++ pyavs.py 2012-07-27 11:57:41.000000000 -0400
@@ -27,6 +27,8 @@
import ctypes
import sys
import os
+import array
+import wx
import avisynth
@@ -82,22 +84,24 @@
# Define C functions
-CreateFile = ctypes.windll.kernel32.CreateFileA
-WriteFile = ctypes.windll.kernel32.WriteFile
-CloseHandle = ctypes.windll.kernel32.CloseHandle
-
-DrawDibOpen = ctypes.windll.msvfw32.DrawDibOpen
-DrawDibClose = ctypes.windll.msvfw32.DrawDibClose
-DrawDibDraw = ctypes.windll.msvfw32.DrawDibDraw
+##CreateFile = ctypes.windll.kernel32.CreateFileA
+##WriteFile = ctypes.windll.kernel32.WriteFile
+##CloseHandle = ctypes.windll.kernel32.CloseHandle
+##
+##DrawDibOpen = ctypes.windll.msvfw32.DrawDibOpen
+##DrawDibClose = ctypes.windll.msvfw32.DrawDibClose
+##DrawDibDraw = ctypes.windll.msvfw32.DrawDibDraw
handleDib = [None]
avsfile=None
def InitRoutines():
- handleDib[0] = DrawDibOpen()
+ pass
+## handleDib[0] = DrawDibOpen()
def ExitRoutines():
- DrawDibClose(handleDib[0])
+ pass
+## DrawDibClose(handleDib[0])
class AvsClip:
def __init__(self, script, filename='', env=None, fitHeight=None, fitWidth=None, oldFramecount=2$
@@ -246,8 +250,9 @@
if keepRaw:
self.clipRaw = self.clip
+ # RGB24 makes copying memory easier.
# Initialize display-related variables
- if not self.vi.IsRGB32():
+ if not self.vi.IsRGB24():
try:
arg(self.clip)
except NameError:
@@ -273,7 +278,7 @@
arg2 = avisynth.AVS_Value(interlaced)
args = avisynth.AVS_Value([arg, arg1, arg2])
try:
- avsfile = self.env.Invoke("converttorgb32", args, 0)
+ avsfile = self.env.Invoke("converttorgb24", args, 0)
arg.Release() #release the clip
self.clip = avsfile.AsClip(self.env)
except avisynth.AvisynthError, err:
@@ -347,18 +352,32 @@
else:
return False
- def DrawFrame(self, frame, hdc=None, offset=(0,0), size=None):
+ def DrawFrame(self, frame, dc=None, offset=(0,0), size=None):
if not self._GetFrame(frame):
return
self.current_frame
- if hdc:
+ if dc:
if size is None:
w = self.Width
h = self.Height
else:
w, h = size
- DrawDibDraw(handleDib[0], hdc, offset[0], offset[1], w, h, self.pInfo, self.pBits, 0, 0,$
-
+## DrawDibDraw(handleDib[0], dc.GetHDC(), offset[0], offset[1], w, h, self.pInfo, self.pB$
+ buf = array.array('B', [0] * w * h * 3)
+ # RGB is upside-down
+ pitch = self.bmih.biWidth * self.bmih.biBitCount / 8
+ idx_start = (h - 1) * pitch
+ write_idx = 0
+ for i in range(h):
+ for j in range(w):
+ buf[write_idx + 0] = self.pBits[idx_start + j * 3 + 2] # R
+ buf[write_idx + 1] = self.pBits[idx_start + j * 3 + 1] # G
+ buf[write_idx + 2] = self.pBits[idx_start + j * 3 + 0] # B
+ write_idx += 3
+ idx_start -= pitch
+ bmp = wx.BitmapFromBuffer(w, h, buf)
+ dc.DrawBitmap(bmp, 0, 0)
+
def GetPixelYUV(self, x, y):
if self.clipRaw is not None:
if self.IsYV12:
With these changes, AvxPmod should be a reality, although in practice this is not the case due to some outstanding bugs in AvxSynth (issues recreating script environments).
The primary problem with the above diffs is that it is not possible to cast the raw VideoFrameBuffer memory into a DIB as on Windows with DrawDibDraw so a memory copy of the framebuffer needs to be performed. Another issue is that AVS uses BGR ordering but wx expects RGB bitmaps, so a long-width memory copy of each line is not possible either. I've only tested this on Windows, and performance seems to be good enough for preview, but not playback.
mastrboy
27th July 2012, 19:23
Version 2.3.1
- TFM log (combed, possible combed and u/v mismatches)
Now this one is pure gold for us who deal with a lot of anime :)
:goodpost:
vdcrim
27th July 2012, 21:50
I've hacked away the platform-dependent parts of AvsP.py and pyavs.py:
Thanks, I'm going to create an AvxSynth branch on the repository. However as I said before I won't be contributing much for now.
The primary problem with the above diffs is that it is not possible to cast the raw VideoFrameBuffer memory into a DIB as on Windows with DrawDibDraw so a memory copy of the framebuffer needs to be performed. Another issue is that AVS uses BGR ordering but wx expects RGB bitmaps, so a long-width memory copy of each line is not possible either
Yes, we can't really use wxPython for the preview. A good starting point would be to take a look at GTK+/Cairo.
It would be better to keep this development discussion on its issue (https://github.com/AvsPmod/AvsPmod/issues/7) on the GitHub repository.
On a related note I'm having troubles applying your diffs. Long lines are cut and there's also ocassional whitespace issues. I already applied them manually so don't bother this time.
Now this one is pure gold for us who deal with a lot of anime :)
:goodpost:
This one is thanks to tophf (https://github.com/AvsPmod/AvsPmod/issues/2)
Also, a new macro for AvsPmod. It will work on v2.3.0, but v2.3.1 is recommended:
Create mask with ImageMagick (http://www.mediafire.com/download.php?xuxmocny1syyor9)
Create mask with ImageMagick
Requirements:
- convert.exe from ImageMagick <http://www.imagemagick.org>
By default the executable is expected to be found in 'AvsPmod\tools'
or one of its subdirectories. A path will be asked for on the first
run otherwise.
If you only need ImageMagick for this macro then do the following:
1) download the portable static version of IM
2) extract only convert.exe
3) place it on the 'AvsPmod\tools' directory
The mask vertices are selected by clicking on the video preview. If
'apply mask to script' is selected, 'Overlay' is inserted using the
last assigned variable as the overlay clip and 'last' as the overlayed.
Example:
ColorBars()
alt = Invert()
turns into:
ColorBars()
alt = Invert()
mask = ImageSource("C:\mask\path.png")
Overlay(alt, mask=mask, mode="blend")
Latest version: https://github.com/vdcrim/avsp-macros
Zech
5th August 2012, 16:46
Weird problem, using avspmod 2.30 and 2.31 I am unable to copy/paste/drag once a video preview has been loaded and the script has been changed after updating the video preview.
Example, I am able to copy/paste upon opening a script and able to copy/paste even with video preview is open but once I change the script and click on the preview to update I am no longer able to copy and paste. I get the following error...
"Failed to put data on the clipboard (error -2147221008: coInitialize has not been called.)"
wOxxOm
5th August 2012, 17:00
"Failed to put data on the clipboard (error -2147221008: coInitialize has not been called.)"
A friend of mine has this problem as well.
LigH
8th August 2012, 09:54
Friendly bump: Do you consider RichText / HTML export and a syntax highlight class for named parameter names?
AlanHK
5th September 2012, 10:01
If I try to change any settings under "Options/Program settings", when I click "OK", I get an error popup saying "Invalid directory".
But other options I change on the "options" tab, such as "Keyboard shortcuts" are saved.
Only the options in the "Program settings" group fail.
There is an "options.dat" file in the program directory, timestamped a few minutes earlier.
Program is latest 2.3.1 installed in d:\AvsPmod and I'm running Win2k.
Everything else seems to be working okay.
vdcrim
5th September 2012, 13:51
I get an error popup saying "Invalid directory"
And is that so? Set the 'AvsP help directory' and 'AviSynth directory' fields to the correct paths, or clear them if you don't care for help files.
Do you consider RichText / HTML export and a syntax highlight class for named parameter names?
I'd like to revise the syntax highlighting, but currently I don't have the time to work on AvsP. Also, the AvxSynth port takes priority. Anyone willing to contribute is welcome.
AlanHK
5th September 2012, 14:01
And is that so? Set the 'AvsP help directory' and 'AviSynth directory' fields to the correct paths, or clear them if you don't care for help files.
They were already correct. And I couldn't change them or any other "program setting", that was the problem.
Anyway, I deleted "options.dat" and now I can set all the options, though I of course had to re-enter all my keyboard shortcuts and other customisations.
So I'm making backups of options.dat after setting all that in case it goes bad again.
vdcrim
5th September 2012, 14:36
I couldn't change them
Do you mean that clearing the field or reselecting the path with the browse button didn't work? That's weird.
AlanHK
5th September 2012, 17:56
Do you mean that clearing the field or reselecting the path with the browse button didn't work? That's weird.
I wasn't even trying to change any of the paths, they were all correct and had worked for months.
And I could change any of the settings; but when I clicked "OK" to save I got the error. None of the new settings were saved. Closing the settings and opening again, my changes were lost.
The file wasn't locked, because other changes, eg, keyboard shortcuts, were saved into it. Only those under the submenu "Program settings" didn't work.
Anyway, attached the bad options file if you want to take a look. I can see it's ASCII, but rather cryptic so manually editing without a cheat sheet wasn't an option.
If I swap that back in the same problem recurs.
vdcrim
5th September 2012, 19:32
I wasn't even trying to change any of the paths, they were all correct and had worked for months.
Yes, I was telling you to try reselecting again the directories. Did you try?
Better upload the options file to another host to avoid waiting for approval. Anyway, the 'AvsP help directory' field shows "D:\AvsPmod\help" on your system, and that folder actually exists, right?
And I could change any of the settings; but when I clicked "OK" to save I got the error. None of the new settings were saved. Closing the settings and opening again, my changes were lost.
That's how it's supposed to work. Before closing the dialog and saving the options it checks if all paths are valid.
AlanHK
6th September 2012, 03:29
Yes, I was telling you to try reselecting again the directories. Did you try?
Yes. I could change them, but not save them. Though the paths were already correct.
The paths in the "bad" version I attached earlier are the same as in the "good" one I have now after starting clean.
I attach the "good" version to this.
(I don't upload files to hosts often, so I don't know one offhand, they keep disappearing.)
the 'AvsP help directory' field shows "D:\AvsPmod\help" on your system, and that folder actually exists, right?
Yes. And all the "Help" menu items worked.
Anyway, I had never set the directories to begin with, AvsP does that itself when it first runs.
POSTSCRIPT
OK, something weird happened.
I swapped the "Bad" options file back and now it showed
"D:\AvsPmod23\help", which prevented saving the options, but after correcting it, it could be saved.
"D:\AvsPmod23" was a folder I initially installed the latest version in when I was testing it a few months ago before swapping it into the current folder.
I really don't think that was what was displayed yesterday, and you said you saw it as "D:\AvsPmod\help" which is and was correct, but without a screencap to prove that I suppose that PEBCAK is the most likely cause.
Sorry about that.
I any case, I have it working now.
vdcrim
6th September 2012, 12:47
I swapped the "Bad" options file back and now it showed "D:\AvsPmod23\help", which prevented saving the options, but after correcting it, it could be saved.
"D:\AvsPmod23" was a folder I initially installed the latest version in when I was testing it a few months ago before swapping it into the current folder.
I really don't think that was what was displayed yesterday, and you said you saw it as "D:\AvsPmod\help" which is and was correct, but without a screencap to prove that I suppose that PEBCAK is the most likely cause.
I couldn't take a look at the file back then as it was waiting for approval, but you mentioned earlier that your AvsP folder is "D:\AvsPmod", hence my suggestion of checking for "D:\AvsPmod\help" on the program settings dialog. Now that it's approved I see that the help dir path is indeed set to "D:\AvsPmod23\help", so yeah that was the problem. Incidentally, I made some changes to the paths thing a few weeks ago and now if the help dir doesn't exist but "%programdir%\help" does it gets set again to the later.
AlanHK
6th September 2012, 15:36
OK, good.
Thanks for your patience.
The reason I was not even looking really was that I never set the help directory to begin with, and I wasn't trying to change it when I got the error. So the error "Invalid directory" was entirely cryptic to me. I thought it was talking about the directory the options file was in. I can see, in hindsight, that the help directory was highlighted. It would be better to just spell it out and say "AvsP help directory invalid". Or maybe that isn't necessary after your above change; would the help directory even need to be a user setting? It should always be in that subfolder of the program directory.
But other paths might become invalid, "External player" for one. So again, the message should just say exactly which setting is bad and then it's up to the user.
What format is the "options.dat" file in anyway? When I reset it I was able to copy and paste some settings from my old file in to save some time, but I was flying blind.
vdcrim
6th September 2012, 18:08
It would be better to just spell it out and say "AvsP help directory invalid"
OK, changed.
would the help directory even need to be a user setting?
I guess not, but there's not need to remove it neither.
What format is the "options.dat" file in anyway? When I reset it I was able to copy and paste some settings from my old file in to save some time, but I was flying blind.
It's a pickle, a file format used by Python to store data, not really intended for manual editing. I don't know if some kind of GUI viewer exists for it.
StainlessS
7th September 2012, 03:45
Odd problem in AVSPmod v2.3.1.
Only used AVSPMod once or twice, but I dont think I could be doing anything wrong.
Initially had problem in ~2.2.0, so downloaded latest, still same problem.
Test script below, output via RT_Debug (writes text strings to OutputDebugview).
Running Avisynth v2.6a3, XP32
colorbars()
s=ScriptName() # should be a string
RT_Debug("S is String", String(IsString(s)))
RT_Debug("S is Int", String(IsInt(s)))
RT_Debug("S is Float", String(IsFloat(s)))
RT_Debug("S is Bool", String(IsBool(s)))
RT_Debug("S is Clip", String(IsClip(s)))
RT_Debug("S is Defined",String(Defined(s)))
RT_Debug("S is Exist", String(Exist(s)))
Subtitle(String(s)) # String() is last ditch attempt to make whatever it is a string
return last
# MediaPlayer, VDub etc
00000005 01:31:03 RT_Debug: S is String true
00000006 01:31:03 RT_Debug: S is Int false
00000007 01:31:03 RT_Debug: S is Float false
00000008 01:31:03 RT_Debug: S is Bool false
00000009 01:31:03 RT_Debug: S is Clip false
00000010 01:31:03 RT_Debug: S is Defined true
00000011 01:31:03 RT_Debug: S is Exist true # false on ScriptDir ie dir not an existing FILE.
# Subtitled OK
# From AVSPMod v2.3.1
00000122 01:32:10 RT_Debug: S is String false
00000123 01:32:10 RT_Debug: S is Int false
00000124 01:32:10 RT_Debug: S is Float false
00000125 01:32:10 RT_Debug: S is Bool false
00000126 01:32:10 RT_Debug: S is Clip false
00000127 01:32:10 RT_Debug: S is Defined false
# Exist halt with Avisynth "Invalid arguments to Function 'Exist'", message.
# Subtitle will not work if Exist line commented out
# Similar results all 2.6 Script???? funcs
Also, as error message alerts show only the Script File eg 'name.avs', so
the synthetic _ScriptName will return only the name eg 'name.avs', and _ScriptDir fn will return only the
name + line number eg 'name.avs, line 9)', dont know about synthetic _ScriptFile, did not try to find
an equivalent, but the best it could possibly do is the name only (which would be correct).
So, anyway around, all you can get in AVSPMod is the filename name node eg 'name.avs', synthetically.
There was post in 2009 that mentioned same with AVSP, so its been there a long long time (missing path).
http://forum.doom9.org/showthread.php?p=1296183#post1296183
EDIT: As it does not seem to be any kind of variable, what is it that v2.6 thinks it's returning (undefined).
:confused:
EDIT: The good news is that Import errors give the path (only), so assuming nothing has changed the import path,
you could perhaps use both import and Assert to get the path and name node in a set of synthetic funcs,
or better still, get it working properly.
vdcrim
7th September 2012, 13:37
AvsP uses Invoke("Eval", [script_text, script_filename]) to pass the script to AviSynth. AviSynth doesn't actually open the file by itself and can't know where is located. That's why ScriptName etc. return undefined [edit: void]. This info is stored as global variables, I'll try to set it on AvsPmod before the script is evaluated.
Edit: I haven't managed to make SetGlobalVar work properly with strings.
error message alerts show only the Script File eg 'name.avs'
What the error message shows is the script title (second parameter of eval()). I'll change it to the fullname.
mastrboy
7th September 2012, 21:13
Any chance one of you avspmod devs are looking at vapoursynth and making that work with avspmod?
Considering vapoursynth has native python bindings it should be "easy" to integrate, right? ;)
Keiyakusha
7th September 2012, 21:26
Yeah, very easy, considering that the only thing it can do is to output y4m in stdout (and even that is buggy) ^__^
But I support the idea.
StainlessS
7th September 2012, 23:22
Thank you vdcrim for your attention.
EDIT: The good news is that Import errors give the path (only), so assuming nothing has changed the import path,
you could perhaps use both import and Assert to get the path and name node in a set of synthetic funcs,
or better still, get it working properly.
See Here:
http://forum.doom9.org/showthread.php?p=1590402#post1590402
vdcrim
8th September 2012, 18:41
Any chance one of you avspmod devs are looking at vapoursynth and making that work with avspmod?
Not me, because I don't have the time, but I'm highly interested on this.
Considering vapoursynth has native python bindings it should be "easy" to integrate, right? ;)
The bindings are for Python 3, so it'll need to be adapted to Python 2. I think integrating VS would be more tedious that difficult, if you don't count adding support for new features like metadata.
Edit: on second thought, adapting VapourSynth to Python 2 would be a bad idea. Complex (Python 3) scripts would break trying to run them as Python 2 in AvsP, which pretty much defeats the advantage of Python vs AviSynth script language.
Yeah, very easy, considering that the only thing it can do is to output y4m in stdout
AviSynth can't stdout anything by itself at all ;). GetFrame is what AvsP needs and is already implemented.
_GetWorkingDir()
This won't work for applications that load the script with Invoke("Eval", ...) unless the application also used SetWorkingDir() before creating the script to change the working directory to the one containing it. Thing that would be advisable and AvsP does.
Still trying to figure out how to use SetGlobalVar + SaveString on Python.
Keiyakusha
8th September 2012, 18:48
AviSynth can't stdout anything by itself at all ;). GetFrame is what AvsP needs and is already implemented.
Uhh. What I mean is Vapoursynth outputs things in stdout. Well not counting writing to file.
vdcrim
8th September 2012, 19:10
What I mean is Vapoursynth outputs things in stdout. Well not counting writing to file.
I didn't actually try it, but:
class VideoNode(builtins.object)
| Methods defined here:
|
| get_frame(...)
|
| output(...)
active1
10th September 2012, 08:29
does AvsPmod works under linux without using wine?
LigH
10th September 2012, 09:24
When it uses avxSynth, it probably will... (IMHO)
vdcrim
10th September 2012, 12:53
There's an AvxSynth branch on development. AvxSynth support seems to work OK (thanks primarily to the work of Stephen R. Savage) but there's some important issues with the interface that need to be solved. For the adventurous:
AvxSynth setup (https://github.com/avxsynth/avxsynth/wiki/System-Setup)
Latest AvsPmod code is always at https://github.com/AvsPmod/AvsPmod/zipball/avxsynth. Be sure to save the files to a directory with write access
Requirements: Python 2.6-2.7, wxPython
List of known bugs and limitations (https://github.com/AvsPmod/AvsPmod/issues/7#issuecomment-8028701)
Note that Microsoft's TrueType core fonts are still used by default
zerowalker
10th September 2012, 15:54
Is it just me that can´t Stop the Avs2Avi with the Stop button?
i have to use task manager.
vdcrim
10th September 2012, 16:17
It seems that button has never ever worked :eek:
Fixed
Edit: a new build is not needed, just add 'import ctypes' at the start of 'AvsPmod\tools\avs2avi_gui.py'
mastrboy
11th September 2012, 00:19
Having a little trouble writing a macro, could someone explain what i'm doing wrong with the "previous_bookmark" variable asignment?
I just get the following: "local variable 'previous_bookmark' referenced before assignment (ApplyRange.py, line 23)"
First time writing something more than oneliners in python, and it's kind of hard getting used to the syntax and indent stuff....
# define current and last frame possible to search
max_frames = avsp.GetVideoFramecount(index=None)
current_frame = avsp.GetFrameNumber()
# set bookmarks as a list
bookmarks = avsp.GetBookmarkList(title=False)
bookmarks = list(set(bookmarks))
bookmarks.sort()
# search for next bookmark
for nframe in range(int(current_frame),int(max_frames)):
if nframe in bookmarks:
next_bookmark = nframe
break
# search for previous bookmark
for pframe in reversed(range(int(current_frame))):
if pframe in bookmarks:
previous_bookmark = pframe
break
# insert applyrange
avsp.InsertText('\nApplyRange(%i,%i,"test")' % (previous_bookmark,next_bookmark))
wOxxOm
11th September 2012, 00:24
mastrboy, I use another way of finding prev and next bookmarks (so called 'half-interval search' which takes log2(N) iterations and is much faster when there are lots of bookmarks, like 1000 or more), the result is placed in fnum1 and fnum2:
curframe,lastframe = avsp.GetFrameNumber(), avsp.GetVideoFramecount()-1
bm = sorted(avsp.GetBookmarkList())
a,b = 0, len(bm)-1
while a+1<b:
c = (a+b)/2
a,b =(c,b) if bm[c]<curframe else (a,c)
fnum1,fnum2 = (bm[b],bm[b+1] if b+1<len(bm) else lastframe) if curframe==bm[b] \
else (bm[a],bm[a+1]) if curframe<bm[b] \
else (bm[b],lastframe)
mastrboy
11th September 2012, 00:28
That reply was a lot faster than expected :)
Though I think I'll have to read those few lines a couple of times to understand it. I'll try to use your method instead, thanks.
wOxxOm
11th September 2012, 00:36
Actually this one is better (no need to sort first):
curframe,lastframe = avsp.GetFrameNumber(), avsp.GetVideoFramecount()
bm = [0]+avsp.GetBookmarkList(title=False)+[lastframe-1]
prev = max(bm,key=lambda x: x-curframe if x<=curframe else -lastframe)
next = min(bm,key=lambda x: x-curframe if x>curframe else lastframe)
active1
11th September 2012, 01:32
There's an AvxSynth branch on development. AvxSynth support seems to work OK (thanks primarily to the work of Stephen R. Savage) but there's some important issues with the interface that need to be solved. For the adventurous:
AvxSynth setup (https://github.com/avxsynth/avxsynth/wiki/System-Setup)
Latest AvsPmod code is always at https://github.com/AvsPmod/AvsPmod/zipball/avxsynth. Be sure to save the files to a directory with write access
Requirements: Python 2.6-2.7, wxPython
List of known bugs and limitations (https://github.com/AvsPmod/AvsPmod/issues/7#issuecomment-8028701)
Note that Microsoft's TrueType core fonts are still used by default
oh, so it works on linux, great!
should i build it? or run it with python like any other script?
vdcrim
11th September 2012, 01:44
oh, so it works on linux, great!
should i build it? or run it with python like any other script?
There's still not build script for linux, so just run run.py or AvsP.py. The avs file association menu option should work and it also registers AvsPmod on your desktop environment's menu (I hope, only tried on Gnome).
But I must warn you that there's sometimes problems with closing tabs. And don't try to reorder them for now.
UPDATE: tab issues are fixed now
active1
11th September 2012, 02:46
There's still not build script for linux, so just run run.py or AvsP.py. The avs file association menu option should work and it also registers AvsPmod on your desktop environment's menu (I hope, only tried on Gnome).
But I must warn you that there's sometimes problems with closing tabs. And don't try to reorder them for now.
i ran it with python 2.6.6, and this error occurs:
File "AvsP.py", line 5672
translation_list = {'eng'}
^
SyntaxError: invalid syntax
vdcrim
11th September 2012, 03:08
It's a Python 2.6 compatibility issue, I'll fix it tomorrow.
Edit: should work now
mastrboy
11th September 2012, 11:27
Actually this one is better (no need to sort first):
curframe,lastframe = avsp.GetFrameNumber(), avsp.GetVideoFramecount()
bm = [0]+avsp.GetBookmarkList(title=False)+[lastframe-1]
prev = max(bm,key=lambda x: x-curframe if x<=curframe else -lastframe)
next = min(bm,key=lambda x: x-curframe if x>curframe else lastframe)
Thanks, this worked great. I only had to do a slight modification to get the correct frame when using bookmarks imported from SCXvid log files: next = min(bm,key=lambda x: x-curframe if x>curframe else lastframe)-1
This is going to save me a lot of time :D
wOxxOm
11th September 2012, 11:34
mastrboy, ah I forgot about -1, but then the 2nd line should be as follows to fix handling of the very last scene:bm = [0]+avsp.GetBookmarkList(title=False)+[lastframe]
mastrboy
11th September 2012, 11:54
Off course, else the last frame would be -2. Thanks again.
zerowalker
14th September 2012, 23:28
It seems that button has never ever worked :eek:
Fixed
Edit: a new build is not needed, just add 'import ctypes' at the start of 'AvsPmod\tools\avs2avi_gui.py'
Thanks, works perfect:)
george84
31st October 2012, 11:09
I use V2.3.1 on Windows XP. Opening a avs gives a fatal error. In WordPad or Editor it opens normally. Seems to be Unicode problem. The file contains Hindi characters. It plays well in VDub. It would be useful to generate a special character instead of a crash, because in Subtitles any 8-bit value is allowed.
Traceback (most recent call last):
File "AvsP.pyo", line 7082, in OnMenuFileRecentFile
File "AvsP.pyo", line 2607, in wrapper
File "AvsP.pyo", line 2589, in TimeToRun
File "AvsP.pyo", line 9827, in OpenFile
File "wx\stc.pyo", line 2934, in SetText
File "encodings\cp1252.pyo", line 15, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 1161771: character maps to <undefined>
vdcrim
31st October 2012, 16:43
I use V2.3.1 on Windows XP. Opening a avs gives a fatal error. In WordPad or Editor it opens normally. Seems to be Unicode problem. The file contains Hindi characters. It plays well in VDub. It would be useful to generate a special character instead of a crash, because in Subtitles any 8-bit value is allowed.
So you mean that the Hindi characters are only in subtitles and VirtualDub can open the file but replaces/ignores those characters?
Opening Unicode files is already 'fixed' for the next release, as in it will work as good as it can, because AviSynth uses the filesystem's encoding (see http://forum.doom9.org/showthread.php?t=110467 for discussion).
Try this development build.
george84
2nd November 2012, 16:16
Try this development build.
Thank you. This fixed my problem and I can now open my file. I also checked, that after saving the file everything is correct.:thanks:
Chikuzen
2nd November 2012, 21:18
Hi, I send a pull request.
https://github.com/AvsPmod/AvsPmod/pull/10
StainlessS
2nd November 2012, 22:15
@Everybody
Although the site url auto linking is broken at the moment, the 'Insert Link' icon in the quick reply message box works fine.
Easy to copy and paste on desktop, not so easy if on a tablet (have not figured mine out yet, maybe I should read the manual).
gnol009
3rd November 2012, 10:45
Avspmod can create a sample mkv file?
FFvideosource(...)
Crop(...)
Spline36Resize(...)
Sorry for my english.
vdcrim
4th November 2012, 19:32
Here's a new macro, originated from a discussion in another thread (http://forum.doom9.org/showthread.php?p=1598231#post1598231).
Pipe RGB to ImageMagick (https://github.com/vdcrim/AvsP-macros/blob/master/Pipe RGB to ImageMagick.py)
Pipe the script in the current tab to ImageMagick as RGB24 or RGB48
To send RGB48 the script must return a fake YV12 clip containing the RGB
data (see the Dither package docs for more info).
To send RGB24 the clip must be already RGB24. BGR24 in fact, as that is
the order AviSynth/AvxSynth uses. This macro reorders the data as RGB on
its own.
Video range
By default all the frames in the clip are sent. Bookmarks can be used
to delimit specific frame ranges if the corresponding option is checked.
The first and last frame of each range must be added as bookmarks.
A warning is shown if the number of bookmarks is uneven. If the user
accepts then the last range goes till the end of the clip. If the 'only
bookmarks' option is checked but there's none all the video range is
piped.
If the 'save every range to a subdirectory' is checked then the bookmark
title of the starting frame of each range is used as the directory name,
a generic name if it's not set. The titles can be introduced in the Video
menu -> Titled bookmarks -> Set title (manual).
Splitting
Process all the image data in one go can be very memory/filesystem space
expensive. Instead the frames can be sent in batches. There's various
dividing choices:
- Specify a frame step
- Specify a time step
- Specify a number of intervals
To create a single file for each batch (e.g. single TIFF output) be sure
to uncheck the 'Add the padded frame number as suffix' option. To create
GIFs better use this other macro:
https://github.com/vdcrim/AvsP-macros/blob/master/Create GIF with ImageMagick.py
Requirements:
- 'convert' executable from ImageMagick <http://www.imagemagick.org>
By default the executable is expected to be found in 'AvsPmod\tools' or
one of its subdirectories. On *nix it can also be in PATH (there's already
a 'convert' executable on Windows). A path will be asked for in the first
run otherwise.
Windows note:
If you only need ImageMagick for this macro then do the following:
1) download the portable static version of IM
2) extract only convert.exe
3) place it on the 'AvsPmod\tools' directory
AvsPmod can create a sample mkv file?
AvsPmod doesn't ship with encoders. However you can use the (video only) tools 'Save to AVI' (that uses the VFW encoders installed in your system) or 'Save to MP4' (you need to download x264 CLI for this) and later mux (http://www.bunkus.org/videotools/mkvtoolnix/) the video and audio to Matroska.
Not sure if that was your question.
fvisagie
5th November 2012, 14:22
vdcrim's new release is now linked in the first post, with the following changes:
Version 2.3.1
...
Thanks for the great work you guys are doing continuing the AvsP legacy!
If I may report an annoying but hopefully minor niggle, it's that the keyboard shortcut for Switch video/text focus does not switch back from video to text when video is in a separate preview window.
So far this happens regardless of which valid shortcut key was assigned. The Switch video/text focus menu and context menu commands both still work.
vdcrim
5th November 2012, 18:36
After trying different shortcuts it only won't work for me for escape without modifiers (the default). However it does work when using the wxPython 2.9 development series so I guess it was a bug or limitation on their part and they already fixed it.
fvisagie
6th November 2012, 07:44
Thanks, I should have checked beyond Escape and now it works OK with Ctrl+F1.
Just BTW, Shift+Esc doesn't work here but according to you it should?
fvisagie
6th November 2012, 07:52
With Load session set to its default shortcut Alt+O the Options menu can't be opened from the keyboard. This is quite easily fixed by setting the shortcut to e.g. Alt+L, though.
Perhaps this could be done by default for the next release?
vdcrim
6th November 2012, 16:37
Shift+Esc doesn't work hereOh, didn't try that one.
With Load session set to its default shortcut Alt+O the Options menu can't be opened from the keyboard
You're supposed to Alt, release, O.
fvisagie
7th November 2012, 08:12
You're supposed to Alt, release, O.
Thanks :).
Yellow_
7th November 2012, 08:20
vdcrim, many many thanks, the piping to IM works a treat. :-)
Hundreds of small batches to IM ( in my case writing 16bit tifs) works great.
Thank you, its made what was a manual process so much faster.
Yellow_
10th November 2012, 10:45
Hi again
I'd like to write to OpenEXR format with the RGB pipe script from AVSPmod, now I understand this is not necessarily your knowledge with Linux + Wine but could you make an educated guess on the following.
I'm using AVSPmod + Wine on Linux and all works well using a IM Windows binary wrting to 16bit tif, the IM build I'm using is Q16 but no builds seem to be hdri which is required for EXR format. I know IM 7 will be compiled with hdri formats support as standard but can not find any IM 7 testing builds so far.
So if I use an avs script with AVS2yuv or pipemod with Wine on Linux, I can pipe to a Linux IM binary which is hdri from Windows AVSPmod.
But with your RGB pipe script from AVSPmod I get an error trying to use a Linux IM binary by setting the path to 'convert' in /usr/bin/. I expected it to fail but thought I'd try. The error AVSPmod throws after asking me to browse for the convert.exe, the path is in windows speak rather than /usr/bin/ of coarse as I'm doing all this under Wine so the file browsing and paths is windows 'format', the error is 'invalid arguement in line 385' and AVSP's error console says:
Exception WindowsError: (6, 'Invalid handle') in <bound method Popen.__del__ of <subprocess.Popen object at 0x23972A10>> ignored after 'ok'ing the error message.
Any ideas other than me compiling a Windows binary with MingW or hunting for a hdri build of IM 6 / 7?
vdcrim
10th November 2012, 17:00
I don't think that's possible. You'd need a inverse Wine-like application to pipe to and I don't think that it exists. It would be a bigger hassle than compile ImageMagick anyway. AvsPmod runs natively on *nix now but you won't find something like the Dither package for AvxSynth.
Yellow_
10th November 2012, 22:33
Thanks, yes I had a go with Avxsynth on it's initial availability and look forward to more plugins being ported.
AVS2yuv, a windows binary under Wine successfully pipes to my Linux hdri build of IM but not so via python / AVSPmod, no problem though luckily now found hdri Windows builds of IM 6 to resolve the problem.
http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=22247
Although much prefer native Linux versions where ever possible.
Thanks again.
Yellow_
13th November 2012, 09:41
The RGB pipe script is working great, how difficult would it be to add a create new folder of sequencial number ie: Scene_01 etc at each bookmark and batch convert at intervals between bookmarks.
vdcrim
14th November 2012, 19:54
Try now.
Yellow_
16th November 2012, 21:43
Wicked. :-) Excellent addition. :-)
Although not quite there, unless I'm doing it wrong.
As a test I chose to take a 8000 ish short video, set bookmarks at every 25 frames to test scene folders (although in reality I'd scoot through and set bookmarks at scene changes) and chose 10 frame intervals to stay safely within available memory.
Ticked the "Include only the range between bookmarks" and "when using bookmarks save to sub folders"
So anticipated sub folders every 25 frames and frame numbers ending 0 to 24 for scene 01, then frame numbers ending 25 to 50 for scene 02 folder.
Hope I'm using it correctly, as output was numbers ending 0 to 25 ie: 26 frames for scene 01 folder, then scene 02 folder numbers started at 50 rather than 25.
Many thanks for a great addition to the macro.
vdcrim
16th November 2012, 22:33
You have to set a bookmark for both the first and last frame of every scene, in your example 0, 24, 25, 49, 50, 74... That way you can skip parts of the video. Imagine you want to save scene 1 (100,199) and scene 2 (400,599), you can just set bookmarks then on 100, 199, 400, 599 instead of adding Trim(100,199)+Trim(400,599) and placing a bookmark on the first frame and in the scene change. Read also the macro description for setting a custom directory name.
fvisagie
20th November 2012, 19:02
Hi All,
I can't get tabs to work on different timelines even though Shared timeline is unchecked. AvsPmod 2.3.1.
I've closed the video preview, Release all videos from memory, closed and re-opened the tabs, closed and re-opened the application, but nothing so far works.
Is there any other way of getting tabs to work on independent timelines?
Thanks,
Francois
vdcrim
20th November 2012, 19:28
Funny, I just fixed that two days ago. There's going to be a new AvsPmod release in a few days, so this is the time to report bugs.
fvisagie
21st November 2012, 10:51
Great, thanks.
Here's another I found just this morning. Although it's quite obscure in the sense that it doesn't easily happen, when it does the consequences can be disastrous. When autocomplete is active but the text selection is moved elsewhere, AvsPmod deletes everything in between once the autocomplete is accepted.
How to reproduce:
1. Ensure Show autocomplete with variables is enabled
2. Start off with this text and move the cursor to the top
source
2
3
input
5
6
7
8
9
10
11
12
input
14
15
16
17
18
3. Press Ctrl-F, type 'input' without the quotes and press Enter
4. Move the focus to the tab (dismiss the Find dialog or click on the title bar). 'input' in line 4 is now highlighted and Find is now preloaded with 'input'.
5. Type 'source' without the quotes. 'source' autocomplete appears. Do not press Enter.
6. Press F3 to move the selection to 'input' on line 13
7. Press Enter in the mistaken belief that autocomplete will be applied to line 13
8. Everything between the two Find occurrences including the last one itself is deleted
Good luck with the release, I'm looking forward to it.
fvisagie
21st November 2012, 17:30
When toggling between videos with Zoom set to Fit inside window, the cursor position and value disappear off the status bar. Those can be displayed again by moving the cursor, but this kind of defeats the purpose of trying to compare values in different videos.
If you want that display size, a work-around is to use Zoom > Fill window instead.
vdcrim
22nd November 2012, 03:03
Both are fixed now.
fvisagie
23rd November 2012, 09:29
This is one that surely must have been reported already but let me err on the side of caution ;).
When a manual preview refresh is done, sliders' initial values are set to their current values. This happens whether Refresh preview automatically is enabled or not.
vdcrim
23rd November 2012, 19:36
That's on purpose. I just took a look for adding a 'revert all slider changes' contextual menu option but it's not that easy without a good revision/rewrite so it will stay like this for now.
vdcrim
27th November 2012, 21:46
Time for a new release:
Windows build (http://www.amvhell.com/avspmod/AvsPmod_v2.4.0.zip)
Source code (https://github.com/AvsPmod/AvsPmod/archive/v2.4.0.zip)
Changelog
Version 2.4.0 [2012-11-27]
- Add AvxSynth support. AvsPmod runs now natively on *nix
- Add script playback (video only)
- Add 'keep variables on refreshing' menu option, useful for dealing with heavy scripts
- Detect correctly AviSynth 2.6.0 new color spaces
- Add temporary support for VapourSynth AVIFile scripts (.vpy)
- Add option to specify directly the location of avisynth.dll/libavxsynth.so
- Add option to change the autoload plugins directory
- Add option to choose an alternative working directory
- Accept some variables on 'program settings' paths: %programdir%, %avisynthdir%, %pluginsdir%.
Useful for portable use.
- Add 'undo close tab':
- file menu -> undo close tab
- middle click on empty tab bar space
- Ctrl+Shift+N default hotkey
- New find and replace dialogs with added features
- Add auto-crop option to the crop editor
- The crop editor can be used now with the video preview zoomed or flipped
- Add a new variable to the video status bar - bookmark title (%BM)
- Improve avs and avsi files association option:
- on Windows, prompt to associate files for all users or only the current one and ask for permissions
for the former
- on *nix, this choice is made by starting AvsPmod as root to associate for all users. The application
is also registered on the desktop environment's menu.
- make the option toggleable
- Improve default filename on prompts:
- add two new settings to the options dialog, 'save/load' tab
- better basename choice on save image dialog and fix last saved image's name still being used when
changing tabs
- add 'default' parameter to several macro functions
- The mouse wheel can be used now to scroll through tabs
- Ctrl + mouse wheel can be used to zoom the video preview
- If 'enable scroll wheel through similar tabs' is off the mouse wheel can be used to scroll vertically
the video preview, or horizontally with Shift pressed.
- The CLI script encoder now checks PATH and the tools subdirectory before asking for the path to the
executable
- Fix opening and saving Unicode scripts
- Fix decoding of command line arguments
- Fix ScriptFile, ScriptName and ScriptDir functions not returning the right value [AviSynth 2.6.0]
- Fix 'share timeline' option being always in effect
- Fix 'last scrolled frame' menu option for 'update video while dragging' on
- Fix tabs without filename still being closed when canceling a save dialog
- Fix stop button of the avs2avi GUI tool
- Add new macro function Pipe, for sending video frame data to external applications
- Add 'propose' and 'only' parameters to the GetScriptFilename macro function
- Add 'clean' parameter to the GetText macro function
- Improvements on the 'Import bookmarks from file' macro:
- add timecode format v1 parsing
- add support for list of frames on TFM log u/b section and optimize its parsing
- Merge 'Save bookmarks to images' macro into 'Save Image Sequence'
- Fix Python 2.6 compatibility
- Other minor changes and fixes
Some new features need an explanation:
Path settings additions
The paths on the settings dialog can be set now using some variables: %programdir%, %avisynthdir%, %pluginsdir%. Also the location of the AviSynth library used by AvsP can be specified. For example you can place avisynth.dll on an AvsP subdirectory and it will be always picked even if the AvsP directory changes location. This can also be useful to alternate between AviSynth 2.5 and 2.6.
The autoload plugins directory can also be changed. However this is a system-wide change as AviSynth doesn't provide a way for applications to specify its own directory (AvxSynth does). A similar effect can be achieved by setting the working directory to the alternative plugin directory and check the for all scripts option.
Of course a script written taken advantage of this setting won't work on external applications if the working directory is not the alternative avisynth.dll/plugins location set on AvsP.
AvsP help directory location
The option to set a custom help directory has been removed from the settings dialog. If someone was using a translated version of these (a bit outdated) files now needs to rename the directory to help_xxx and place it on the main AvsP directory, where xxx is the code of the language used for the program's interface.
Keep variables on refreshing option
What this new option placed on the Video menu actually does is reuse the AviSynth environment when refreshing the preview. It's intended for trying new filters/tweaking parameters. Don't leave it on when not needed.
Additionally, changing a slider now reuses the environment if the script is unchanged, regardless of the preference state.
Advantages of using the same environment:
- Avoids scanning the autoload directory again after a change in the script. Noticeable speed-up for large directories.
- Variables are shared between all clips in the same environment. This may be used to avoid processing heavy filters again, e.g:
LoadPlugin("heavy_filter.dll")
source("video")
clip = heavy_filter()
clip.Tweak(cont=1.0)
With the new option checked, observing the effect of changing a Tweak parameter can be speed-up by commenting the first lines or creating a tagged section on them and turning it off:
#LoadPlugin("heavy_filter.dll")
#source("video")
#clip = heavy_filter()
clip.Tweak(cont=1.05)
or
LoadPlugin("heavy_filter.dll")
source("video")
clip = heavy_filter()
clip.Tweak(cont=1.05)
The clip variable is still in memory when the preview clip is recreated. Note that the result would be incorrect if the same variable is assigned again in the uncommented lines. For that reason last can't be used as the saved variable.
Disadvantages:
- More memory usage
- Unexpected results if used without care
Pipe macro function
This function can be used to pipe raw video data to external applications. It's described in macros_readme.txt, here are some examples:
avsp.Pipe(ur'x264 - --demuxer y4m -o output.mkv', y4m=True) # x264
avsp.Pipe(ur'x264 - --demuxer y4m -o output.mkv', y4m={'depth':16, 'width':'/2'})
# 420p16 sent as fake YV12, recent x264 revisions
avsp.Pipe(ur'convert -depth 8 -size 1280x720 rgb:- output.png', reorder_rgb=True) # ImageMagick
avsp.Pipe(ur'convert -depth 8 -size 1280x720 -interlace plane -sampling-factor 4:2:0 '
'-colorspace rgb yuv:- output.png')
Remember that a macro can run in a separate thread by adding a # run in new thread line. Example of callback function for Pipe, where progress is an avsp.ProgressBox instance:
def pipe_callback(i, frame, total):
message = 'Processing...' if i == total else 'Piping frame ' + str(frame)
return avsp.SafeCall(progress.Update, i, message)[0]
AvxSynth/*nix
AvsP can run now natively on *nix with AvxSynth (https://github.com/avxsynth/avxsynth/wiki) backend, though certain UI bugs still remain. No build is provided, so grab the source code package, extract it to a directory with write permissions for the user and run run.py. You can also get the Windows build, delete all executable files and move the content of the src subdirectory to its parent. The avs file association menu option also registers AvsP on the desktop environment's menu.
Requirements: Python 2.6-2.7, wxPython 2.8-2.9
VapourSynth
While AvsP still doesn't support VapourSynth a small tweak has been added to allow writing and previewing scripts. VapourSynth scripts using the AVIFile interface (Windows) will now be opened as regular avs files but previewed by evaluating AviSource("scriptname.vpy"). The syntax highlighting and filter database is still AviSynth's.
Issues
- Refreshing the preview while the video is playing can lead to crashes
- Invalid vpy scripts tend to crash (UPDATE: not anymore in VapourSynth R19+).
- Video preview horizontall scrolling: wheel tilt is not supported by the current wxPython 2.8 series but it will be in the next stable series
- A minor visual glitch when using the crop editor and changing zoom is also fixed on the next wxPython.
Next
I'll be leaving AvsPmod development now for an undetermined time. New contributors are always welcome. This is the current to-do list:
- Add real VapourSynth support
- Fix remaining wxPython 3 / *nix compatibility issues
- Syntax highlighting / sliders revision
xekon
28th November 2012, 12:30
First my question: Is there a way to get AvsP to check for file modification, I know when you open an .avs file if its different from the last time you opened it in AvsP it will ask if you want to reload it. (The old AvsP 2.0.2 did this but not AvsPmod it seems)
What I am looking for is a hotkey to force it to do that check. The reason I need this is because I wrote an autoit program that modifies the .avs file that I have open in AvsP based on episode information I have on a TV series
If it doesnt exist, maybe a new option on the File Menu under save script, could be reload script
more info for those interested:
I am dealing with a large TV series, where I am performing AlignedSplice() and DelayAudio() on all episodes.
I get all my frame numbers visually and enter them into excel per episode, the audio delay is generated to log file by pgcDemux
So my next step is to check each episode by listening to it and adjusting the Frame number values
here is my autoit code for those that are curious:
#include <Excel.au3>
HotKeySet("{F9}","NextEp")
HotKeySet("{F10}","AskEp")
Global $episode
;================Spreadsheet================
Local $sFilePath1 = @ScriptDir & "\zdbz.xls" ;This file should already exist
Local $oExcel = _ExcelBookOpen($sFilePath1)
If @error = 1 Then
MsgBox(0, "Error!", "Unable to Create the Excel Object")
Exit
ElseIf @error = 2 Then
MsgBox(0, "Error!", "File does not exist - Shame on you!")
Exit
EndIf
While 1
sleep(100);random delay
WEnd
Func Update()
;================AVS================
FileDelete("set_listen.avs")
Local $file = FileOpen("set_listen.avs", 1)
FileWriteLine($file, "LoadPlugin(""F:\AviSynth\plugins\ffms2.dll"")" & @CRLF)
$sCellValue = _ExcelReadCell($oExcel, $episode, 3)
FileWriteLine($file, "A = FFAudioSource(""F:\AviSynth\!frames\"&$sCellValue&".mkv"")" & @CRLF)
FileWriteLine($file, "V = FFVideoSource(""F:\AviSynth\!frames\"&$sCellValue&".mkv"")" & @CRLF)
FileWriteLine($file, "AudioDub(V, A)" & @CRLF)
$sCellValue = _ExcelReadCell($oExcel, $episode, 4)
FileWriteLine($file, "DelayAudio("&$sCellValue&")" & @CRLF)
$s1 = _ExcelReadCell($oExcel, $episode, 5)
$s2 = _ExcelReadCell($oExcel, $episode, 6)
$s3 = _ExcelReadCell($oExcel, $episode, 7)
$s4 = _ExcelReadCell($oExcel, $episode, 8)
FileWriteLine($file, "AlignedSplice(Trim("&$s1&", "&$s2&"), Trim("&$s3&", "&$s4&"))" & @CRLF)
FileWriteLine($file, "ConvertToRGB()")
FileClose($file)
EndFunc
Func NextEp()
$episode = $episode + 1
Update()
EndFunc
Func AskEp()
$episode = InputBox("Episode", "What episode are you working on?")
$episode = $episode + 2
Update()
EndFunc
and what my data looks like in my spreadsheet:
Bat File Ep Delay F1 F2 F3 F4
CALL encode.bat F:\eng\000 000 -0.217 0 13166 13467 27144
CALL encode.bat F:\eng\001 001 -0.198 0 11497 11798 27216
CALL encode.bat F:\eng\002 002 -0.197 0 13217 13518 27735
CALL encode.bat F:\eng\003 003 -0.194 0 12415 12716 27325
LigH
28th November 2012, 12:44
Please update the thread title... ;)
xekon
28th November 2012, 13:48
I was about to see about adding this feature myself, but as I was looking at the list of requirements for building, I got an idea for a quick and easy workaround.
with my cursor in the script editing part, I press the hotkey for my script, after my script modifies the .avs I am working on it copies the contents of the new file and then pastes the contents into the text window of AvsPmod and then saves and refreshes the preview.
here is my new autoitscript for anyone curious:
#include <Excel.au3>
HotKeySet("{F9}","NextEp")
HotKeySet("{F10}","AskEp")
Global $episode
;================Spreadsheet================
Local $sFilePath1 = @ScriptDir & "\zdbz.xls" ;This file should already exist
Local $oExcel = _ExcelBookOpen($sFilePath1)
If @error = 1 Then
MsgBox(0, "Error!", "Unable to Create the Excel Object")
Exit
ElseIf @error = 2 Then
MsgBox(0, "Error!", "File does not exist - Shame on you!")
Exit
EndIf
While 1
sleep(100);main loop
WEnd
Func Update()
;================AVS================
FileDelete("set_listen.avs")
Local $file = FileOpen("set_listen.avs", 1)
FileWriteLine($file, "LoadPlugin(""F:\AviSynth\plugins\ffms2.dll"")" & @CRLF)
$sCellValue = _ExcelReadCell($oExcel, $episode, 3)
FileWriteLine($file, "A = FFAudioSource(""F:\AviSynth\!frames\"&$sCellValue&".mkv"")" & @CRLF)
FileWriteLine($file, "V = FFVideoSource(""F:\AviSynth\!frames\"&$sCellValue&".mkv"")" & @CRLF)
FileWriteLine($file, "AudioDub(V, A)" & @CRLF)
$sCellValue = _ExcelReadCell($oExcel, $episode, 4)
FileWriteLine($file, "DelayAudio("&$sCellValue&")" & @CRLF)
$s1 = _ExcelReadCell($oExcel, $episode, 5)
$s2 = _ExcelReadCell($oExcel, $episode, 6)
$s3 = _ExcelReadCell($oExcel, $episode, 7)
$s4 = _ExcelReadCell($oExcel, $episode, 8)
FileWriteLine($file, "AlignedSplice(Trim("&$s1&", "&$s2&"), Trim("&$s3&", "&$s4&"))" & @CRLF)
FileWriteLine($file, "ConvertToRGB()")
FileClose($file)
sleep(100)
Local $file = FileOpen("set_listen.avs")
$FileContent = FileRead($file)
ClipPut($FileContent);new file saved to clipboard
FileClose($file)
Send("^a");select all
Send("^v");paste
Send("^s");save
Send("{F5}");refresh preview
EndFunc
Func NextEp()
$episode = $episode + 1
Update()
EndFunc
Func AskEp()
$episode = InputBox("Episode", "What episode are you working on?")
$episode = $episode + 2
Update()
EndFunc
vdcrim
28th November 2012, 14:20
Is there a way to get AvsP to check for file modification, I know when you open an .avs file if its different from the last time you opened it in AvsP it will ask if you want to reload it. (The old AvsP 2.0.2 did this but not AvsPmod it seems)
AvsPmod still checks on start if the files in the saved session have been modified. It also does now for the new 'undo close tab' option.
Actually there's a bug that I didn't bother to fix because I really didn't expect it to affect anyone, but maybe this is what you noticed: when saving a session, e.g. closing AvsP with save session for next launch checked, the CRC for checking the scripts on the next start is taken from the file as it is on the filesystem, not in AvsP.
What I am looking for is a hotkey to force it to do that check. If it doesn't exist, maybe a new option on the File Menu under save script, could be reload script
I'll add that option.
naoan
28th November 2012, 19:00
I was always able to scroll through tab with mouse wheel when video preview is up but now the scroll order got reversed (i.e. scrolling up with mouse wheel will make me go to the left/previous tab instead of right/next tab), can I change this back to old behavior?
vdcrim
28th November 2012, 19:41
Do you mean the opposite? It goes to the right when I scroll up. It's true that I inverted it for this release, as it seemed more natural to me. Not sure if there's a standard direction.
naoan
28th November 2012, 19:43
Do you mean the opposite? It goes to the right when I scroll up. It's true that I inverted it for this release, as it seemed more natural to me. Not sure if there's a standard direction.
Whoops yeah, I mean that. Any way to change this back? I'm used to left/right = up/down.
vdcrim
28th November 2012, 19:48
I'll add a check in the settings I guess. I'm going to wait a few days for possible bugs and then release a v2.4.1 with that change and the one asked for by xekon.
naoan
28th November 2012, 20:19
I'll add a check in the settings I guess. I'm going to wait a few days for possible bugs and then release a v2.4.1 with that change and the one asked for by xekon.
Thank you, much appreciated. :thanks:
Mounir
28th November 2012, 20:20
God knows i love avsp but the urgent fixes for me are:
-bigger buttons (i have a large screen!) :button play, next frame etc..
-file sources natively supported: .dgi (DgDecNV) .dga (dgavdec), when i import one of these files i always get the directshowsource and have to manually write everything
Also there is a bug with videos decoded with DGDecNv (not sure if that's avsp fault) if open a frame, make a new color tweak and go back to that same frame avsp crash, this doesn't happen with .dga
Zarxrax
29th November 2012, 00:21
-file sources natively supported: .dgi (DgDecNV) .dga (dgavdec), when i import one of these files i always get the directshowsource and have to manually write everything
Options > Extension templates
xekon
29th November 2012, 08:25
I'll add a check in the settings I guess. I'm going to wait a few days for possible bugs and then release a v2.4.1 with that change and the one asked for by xekon.
RIGHT ON! Thanks! then I could just have my script press the hotkey for that new feature after it modifies the .avs file with my excel data. I will find this very useful because then I wont even have to click my mouse into the text editing section of AvsPmod.
I really appreciate it :)
:thanks:
Keiyakusha
29th November 2012, 09:07
In recent version I can't fully see reported colorspace. YV12 for example completely not seen in normal window, and this how it looks in maximized window.
http://dl.dropbox.com/u/110558786/DesktopScreens/C058E8DB.PNG
Edit: tabs and settings window don't use default system font. will be good if you can change that as it uses something hardcoded and its ugly in some languages.
Edit2: when we do zoom with mouse wheel, will be nice if image will be also centered on the mouse pointer (like in Photoshop, yeah =). There is no much point in using it if I'll need to scroll afterwards.
Motenai Yoda
29th November 2012, 23:29
with 2.4.0 I've a bug, on separate preview's window, the slider can't be "slid" with mouse...
fvisagie
30th November 2012, 07:22
Time for a new release:
...
Thanks, your trouble is sincerely appreciated!
vdcrim
1st December 2012, 00:18
bigger buttons
Added, only the video controls for now.
there is a bug with videos decoded with DGDecNv
Sorry I don't own a Nvidia GPU.
can't fully see reported colorspace
Try changing \T\T to \t\t on the customize video status bar dialog. The later was the default but I changed it on this release as it's not supported on *nix.
tabs and settings window don't use default system font. will be good if you can change that as it uses something hardcoded and its ugly in some languages.
They changed that in the current development releases of wxPython, but unfortunately as of v2.9.4 there's also two bugs at least that affect AvsP.
when we do zoom with mouse wheel, will be nice if image will be also centered on the mouse pointer
Now it does, provided that the preview is zoomed enough to have scrollbars. It also zooms now in factors of 1.25 instead of using the values that appear on the menu. The zoom in/out menu options are left as they were.
on separate preview's window the slider can't be "slid" with mouse
Fixed, along with two old bugs I found while at it.
martin53
4th December 2012, 18:32
Hi,
please have a look at this issue with ScriptName and ScriptFile (http://forum.doom9.org/showthread.php?p=1603865#post1603865). :thanks:
IanB
4th December 2012, 22:38
They think you should be setting these 3 global vars before you env->Eval the script buffer. env->SetGlobalVar("$ScriptName$", ScriptName);
env->SetGlobalVar("$ScriptFile$", ScriptFile);
env->SetGlobalVar("$ScriptDir$", ScriptDir);
vdcrim
4th December 2012, 22:56
It's already done on v2.4.0 but ScriptName and ScriptFile are swapped by mistake. Will be fixed on v2.4.1, maybe tomorrow.
Keiyakusha
4th December 2012, 23:52
Try changing \T\T to \t\t on the customize video status bar dialog. The later was the default but I changed it on this release as it's not supported on *nix.
Yeah this fixed it for me.
Now it does, provided that the preview is zoomed enough to have scrollbars. It also zooms now in factors of 1.25 instead of using the values that appear on the menu. The zoom in/out menu options are left as they were.
I'm not sure If I understand you correctly or if I was able to explain it correctly to begin with. Here is an example:
1080p screen, 1-line script ColorbarsHD(), zoom 100% (normal), AvsPmod window maximized, I can see the whole image
I hover mouse over blue color around position 1081,105
Then without moving mouse I press ctrl+mousewheel to zoom closer up to 400%
As a result I will see upper-left corner of the image with grays and yellow bar. Instead I expect to see upper-right corner with blue bar (1081,105) appearing near the center of the video area.
Basically pixel (1081,105) should stick to mouse cursor as much as possible.
Currently, after zooming to 400% i need to scroll to the right to be able see blue bar, regardless of mouse pointer position during zoom process.
vdcrim
5th December 2012, 00:13
Yes that's how it works now, but only if the video fills the frame/window. It could be done also for zooming out but it would require some deep changes that I'm not willing to do right now, and anyway is less useful.
Zarxrax
5th December 2012, 06:02
Looks like vdcrim has that new version ready:
Version 2.4.1
Windows build (https://github.com/downloads/AvsPmod/AvsPmod/AvsPmod_v2.4.1.zip)
Source code (https://github.com/AvsPmod/AvsPmod/archive/v2.4.1.zip)
Changelog:
- Add 'reload script' menu option
- Add 'use large size video controls' setting
- Add 'invert scroll wheel direction' setting
- Improve video zooming on Ctrl + mouse wheel
- Fix the 'navigate' menu options needing to be pressed two times when using a separate window for the video preview
- Fix the dragging of the handle of the separate window preview's slider
- Fix ScriptFile and ScriptName being swapped
- Accept several clip properties on the Pipe macro function's command line
- Other minor fixes
xekon
6th December 2012, 02:35
YAY! I see you added the reload script option, and it works perfect!
One more tiny request, could that "reload script" menu item have a hotkey combo added to it? maybe ctrl+r , I am fine with any combo though :)
StainlessS
6th December 2012, 02:45
I'll be leaving AvsPmod development now for an undetermined time.
vdcrim, get off on your vacation (or whatever), dont let this bunch drag you kicking and screaming back into the fold.
Enjoy your time away and come back refreshed and willing to do everybody else's bidding. :)
vdcrim
6th December 2012, 21:13
could that "reload script" menu item have a hotkey combo added to it?
F5 was already used so I left it without a default hotkey, but you can assign the one you prefer in Options -> Keyboard shortcuts.
vdcrim, get off on your vacation (or whatever), dont let this bunch drag you kicking and screaming back into the fold.
Enjoy your time away and come back refreshed and willing to do everybody else's bidding. :)
Thank you. I don't know if in some months from now I'll have the spare time to keep digging into AvsPmod, but I hope so.
xekon
7th December 2012, 00:55
F5 was already used so I left it without a default hotkey, but you can assign the one you prefer in Options -> Keyboard shortcuts.
ah I should have looked to see if there was a way to set shortcuts, excellent, thank you!
AlanHK
8th December 2012, 07:26
It looks like there won't be any updates for a while, but having just done the latest install, a comment: maybe I'm doing it wrong, but it's a bit of a hassle to update the program.
As it doesn't have an installer, you have to just unzip the whole thing to a folder and set a shortcut; which is fine, the first time, but when you have customised function settings and key bindings, you'd just lose all that.
I discovered the "export customizations" button, so I try to periodically back that up and import it when I upgrade.
This should me mentioned prominently in the readme file.
But key bindings and other program settings are still lost.
It appears these are all in "options.dat", but while just keeping my old options.dat file seems to work, it's possible this might also mess up any fixes or new features.
So, ideally there would be an installer that could upgrade while preserving all old settings that are appropriate for the new version.
Which I realise probably won't get done.
Otherwise, at least with new version, please note what if any changes to the two dat files have been made, and if previous versions of these can be retained safely.
And separately, does the video preview have sound? Plays video fine, but silent.
fvisagie
8th December 2012, 07:42
I've been postponing the upgrade precisely because of uncertainty about this. I do realise that vdcrim must have had a hard time juggling requested features against time available and I commend him for a great job. Your post has also served to confirm and explain a lot, :thanks:.
vdcrim
8th December 2012, 17:43
Overwriting the previous files is the recommended way to update. Not info is lost, unless you happened to edit a macro script or the encoder preset files. I figure that this is the reason why adding an installer never has got a high priority.
Occasionally some files may be renamed/not used anymore. For example the Save bookmarks to images and Save Image Sequence macros were merged in v2.4.0 and the former can be deleted now.
The settings files (every .dat file except filterdb.dat) can be safely used with a past or future version. When going back to an old version newer preferences are just ignored and when upgrading default values are added for new settings.
That may not be always the case for session files. There were some changes in v2.4.0 in this respect. Old session files will still work in the current releases but not the other way around.
does the video preview have sound? Plays video fine, but silent.
Not it doesn't. I don't have plans to support it but AvsPmod is basically a community project, anyone is welcome to get involved or even take the lead.
fvisagie
8th December 2012, 22:09
When the source file contains the line
# Each <splicen> is of the form [<framen>[:[<overlapn>]]]
AvsPmod saves the file/that line as
# Each <splicen> is of the form ]]
### AvsP marked script ###
# # Each <splicen> is of the form [<framen>[:[<overlapn>]]]
#
### AvsP marked script ###
If this is expected behaviour, what am I missing here, please? If this is unexpected behaviour, could someone please confirm whether this happens with 2.4.1 still - I'm getting this with 2.3.1.
@vdcrim, thanks for the confirmation about upgrading.
Many thanks,
Francois
vdcrim
9th December 2012, 18:45
[<framen>[:[<overlapn>] is being incorrectly detected as an user slider separator (see help -> user sliders for more info). Change the library.zip in your AvsPmod/lib directory with this one.
fvisagie
10th December 2012, 06:31
That's so obvious but I never even considered it! Thanks for the confirmation and especially the update.
Yellow_
12th December 2012, 17:32
Dumb question, how do I run this natively on Linux? Download source and build? Don't see any build instructions other than for Windows in the source git package. :-(
**EDIT**
Ah! is it just python ./run.py ? Then asks for avxsynth path, so if I want to use Vapoursynth native Linux build instead can I just set that as the path?
vdcrim
12th December 2012, 22:58
From the release notes (yes it's not mentioned on the readme):
AvsP can run now natively on *nix with AvxSynth (https://github.com/avxsynth/avxsynth/wiki) backend, though certain UI bugs still remain. No build is provided, so grab the source code package, extract it to a directory with write permissions for the user and run run.py. You can also get the Windows build, delete all executable files and move the content of the src subdirectory to its parent. The avs file association menu option also registers AvsP on the desktop environment's menu.
Requirements: Python 2.6-2.7, wxPython 2.8-2.9
Ah! is it just python ./run.py ? Then asks for avxsynth path, so if I want to use Vapoursynth native Linux build instead can I just set that as the path?
VapourSynth is not supported and probably won't be for a while (https://github.com/AvsPmod/AvsPmod/issues/13), even counting on someone willing to work on it. On Windows its VfW module can be used to make the video preview work but you're out of luck on linux.
Yellow_
12th December 2012, 23:10
ok, many thanks again.
kartola
18th December 2012, 07:00
Hi all,
I encoded the same video with x264 (different parameters), but when I try to compare the results with AvsPmod it make me see 2 differents frame in the video.
I use simply the string DirectShowSource(...mkv)
What's wrong?
Thanks
P.S. I hope you understood what i mean with my bad english...
naoan
18th December 2012, 07:31
Hi all,
I encoded the same video with x264 (different parameters), but when I try to compare the results with AvsPmod it make me see 2 differents frame in the video.
I use simply the string DirectShowSource(...mkv)
What's wrong?
Thanks
P.S. I hope you understood what i mean with my bad english...
Use FFMS2 (http://code.google.com/p/ffmpegsource/) instead of directshow.
kartola
18th December 2012, 07:45
Use FFMS2 (http://code.google.com/p/ffmpegsource/) instead of directshow.
Thank you naoan,
can you explain to me how to use ffmpegsource in a simply way?
I have to download the plugin, then use FFVideoSource(...) command?
naoan
18th December 2012, 08:07
Thank you naoan,
can you explain to me how to use ffmpegsource in a simply way?
I have to download the plugin, then use FFVideoSource(...) command?
Yeah basically, don't forget to put the plugin in your avisynth plugin folder.
kartola
18th December 2012, 08:29
It works great!
Thank you
Seedmanc
20th December 2012, 17:59
Is there any way to measure speed at which currently written script renders? In VirtualDub it was done by hitting F5 which started rendering and had fps counter, here, however, I only see "run analysis pass" option w/o fps.
Comparing scripts visually is nice, but speed matters as well.
Reino
20th December 2012, 20:11
AVSMeter v1.44 (http://forum.doom9.org/showthread.php?t=165528)
active1
23rd December 2012, 21:01
Hi
is there any way to use vapoursynth with avspmod on ubuntu?
lansing
29th December 2012, 09:31
hi, i got an error while trying to save an image from the preview, what is the problem?
Traceback (most recent call last):
File "avsp.pyo", line 7839, in OnMenuVideoSaveImage
File "avsp.pyo", line 11071, in SaveCurrentImage
File "re.pyo", line 151, in sub
File "re.pyo", line 242, in _compile
sre_constants.error: bad character range
StainlessS
29th December 2012, 10:02
As vdcrim not around lately, wild guess --- it does not like some characters in your chosen file name, try pick another.
lansing
29th December 2012, 20:01
ok, after a few trial and errors, i think the problem is that when saving the image, the program mistaken my file name as some kind of regular expression.
i changed the filename to "[me&u.avi" and got an error like this:
Traceback (most recent call last):
File "avsp.pyo", line 7839, in OnMenuVideoSaveImage
File "avsp.pyo", line 11071, in SaveCurrentImage
File "re.pyo", line 151, in sub
File "re.pyo", line 242, in _compile
sre_constants.error: unexpected end of regular expression
StainlessS
29th December 2012, 20:24
I can sort of understand using a regular expression to load a file from an r.e. wildcard to display a matching selection,
but dont see it being of use once a single file has been selected from that list (unless group selection of files).
Using r.e. for saving a single file seems to me to be a mistake, even if group saving I dont see much reason for it.
matfra
4th January 2013, 15:52
How can I make a Space in the code upper section.
When I press space it doing a zoom ! It drive me crazy. Before I use to Ctrl+Space , but its not working anymore.
Please Help meeeeeeee !
AlanHK
4th January 2013, 16:44
How can I make a Space in the code upper section.
When I press space it doing a zoom ! It drive me crazy. Before I use to Ctrl+Space , but its not working anymore.
Options/Keyboard shortcuts and see (and change) what you have set for "Video->Zoom".
lansing
11th January 2013, 04:17
i've been looking for the save preview image to clipboard option but couldn't find it. Am I just missing it or was it not implemented?
vdcrim
11th January 2013, 19:29
Is there any way to measure speed at which currently written script renders? In VirtualDub it was done by hitting F5 which started rendering and had fps counter, here, however, I only see "run analysis pass" option w/o fps.
Added to the run analysis pass dialog.
hi, i got an error while trying to save an image from the preview, what is the problem?
sre_constants.error: bad character range
Fixed. Regular expressions are used for setting the default filename for the next images saved from the same script. Let's say you want to save frames 50 and 120 from a script my movie.avs. The default filename offered by AvsPmod for the first frame would be my movie000050.ext. If it's saved instead as my movie (preview) [frame 050].ext the default for frame 120 would be my movie (preview) [frame 120].ext
i've been looking for the save preview image to clipboard option but couldn't find it. Am I just missing it or was it not implemented?
No, but it's easy to add. Try this new libray.zip (replace the one in AvsPmod/lib).
Dogway
16th January 2013, 04:37
I rarely pass by over doom9 nowadays and albeit having a long list of bugs concerning avspmod, I just wanted to warn current users of a big one.
avspmod is not color management aware, and as such anything you see will match any rgb output (screenshots, etc) because raw color data is sent to monitor profile, instead of encoded into a color profile.
You can easily check this by opening an rgb image in firefox (with correct color settings configured), photoshop, and avspmod.
vdcrim
17th January 2013, 20:02
Are you mixing up the cli and vfw encoders? Your capture is what really should appear when using avs2avi, together with this other window:
http://i.imgur.com/mMomh.png
vdcrim
18th January 2013, 20:01
I'm not sure what missing choices do you mean. The options can be accessed through the configure button in your capture, like always. Also that window is not even part of AvsPmod but of avs2avi, which hasn't been updated in years.
StainlessS
18th January 2013, 21:28
@turbomund
At the risc of asking the obvious, have you tried clicking on the 'Kompimeringsprogram'
dropdown box to select a compression codec (other than "Microsoft Video 1")
together with the options you are looking for (via the "Konfigurer" button) ?
I dont really use either AVSPmod nor avs2avi so I could well be wrong.
Dion
19th January 2013, 05:27
Share Timeline seems to be always off now. Regardless if checked or unchecked.
tucamthanh
19th January 2013, 09:26
please help !
i try open AvsPmod but windows has error :" An AviSynth script editor has encountered a problem and needs to close. We are sorry for the inconvenience. "
this is log of AvsPmod
'exception: access violation reading 0x00000004''exception: access violation reading 0x00000004'Traceback (most recent call last):
File "run.py", line 5, in <module>
File "AvsP.pyo", line 73, in <module>
File "pyavs.pyo", line 31, in <module>
File "avisynth.pyo", line 4, in <module>
File "ctypes\__init__.pyo", line 423, in __getattr__
File "ctypes\__init__.pyo", line 348, in __init__
WindowsError: [Error 126] The specified module could not be found
thanks all !
sorry my english !
StainlessS
19th January 2013, 13:10
Until vdcrim shows up, try a re-insatall (EDIT: AvsPmod), looks like you are missing a file.
Have a nice one. :)
vdcrim
19th January 2013, 16:28
I try open AvsPmod but windows has error [...]
Make sure that you have AviSynth installed on your system. Also the log shows that you aren't using the latest AvsPmod version.
Share Timeline seems to be always off now. Regardless if checked or unchecked.
Works fine for me on v2.4.1. Note that only tabs with the same resolution and frame count share the timeline.
tucamthanh
20th January 2013, 11:02
Make sure that you have AviSynth installed on your system. Also the log shows that you aren't using the latest AvsPmod version.
Works fine for me on v2.4.1. Note that only tabs with the same resolution and frame count share the timeline.
i have installed AviSynth 2.5.8 , and i using AvsPmod_v2.4.1 , but can not open program !
vdcrim
20th January 2013, 17:02
i have installed AviSynth 2.5.8 , and i using AvsPmod_v2.4.1 , but can not open program !
That log does not correspond to v2.4.1. Either you pasted the wrong part of your log file or failed to correctly update AvsPmod. Make sure to overwrite all files when updating.
FlimsyFeet
21st January 2013, 11:37
Having some issues with the video preview in 2.4.1.
Load any video (could be blankclip() or colorbars()), select zoom > 400%, then scroll to the bottom right hand corner of the image. Moving the horizontal or vertical window slider too fast sometimes results in minor pixel corruption in the rightmost or bottom line of the image.
It's even worse if your script comprises ImageReader to load a large image which is then cropped. For example:
ImageReader("[a 1440px by 960px image]")
Crop(720, 0, -0, -480)
vdcrim
26th January 2013, 01:25
Fixed. Those corrupted pixels are not part of the actual image but the surrounding margin, which was supposed to be blank.
tucamthanh
27th January 2013, 02:39
That log does not correspond to v2.4.1. Either you pasted the wrong part of your log file or failed to correctly update AvsPmod. Make sure to overwrite all files when updating.
this is error when i open AvsPmod :
http://i381.photobucket.com/albums/oo256/tucamthanh/error_zps60a73b8f.jpg
please help !
vdcrim
27th January 2013, 17:02
Can't say what the problem is. Make sure that you have all access rights to the files in your AvsPmod directory.
Or maybe the Python packaging is failing in your system for some reason. It works fine for me on Windows 7 SP1 and Windows XP SP3. You can try this:
Install Python 2.7 32-bit (http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi)
Install wxPython 2.8 Unicode 32-bit (http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.12.1-py27.exe)
Move the AvsPmod/src content to AvsPmod
Make a new shortcut for "C:\path\to\pythonw.exe" -O "C:\path\to\run.py"
tucamthanh
28th January 2013, 10:54
Can't say what the problem is. Make sure that you have all access rights to the files in your AvsPmod directory.
Or maybe the Python packaging is failing in your system for some reason. It works fine for me on Windows 7 SP1 and Windows XP SP3. You can try this:
Install Python 2.7 32-bit (http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi)
Install wxPython 2.8 Unicode 32-bit (http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.12.1-py27.exe)
Move the AvsPmod/src content to AvsPmod
Make a new shortcut for "C:\path\to\pythonw.exe" -O "C:\path\to\run.py"
when i open it on Win8 OK but not work on XP SP3
thanks !
maxxon
2nd February 2013, 06:50
I would like to say that this is a great programme. It really helped me put together a video which required quite a bit of transforms.
Thanks, :)
|\/|x
fvisagie
4th February 2013, 13:36
I don't have plans to support it [sound] but AvsPmod is basically a community project, anyone is welcome to get involved or even take the lead.
Just checking, I have a big project coming up where audio will determine many of the trims - has anyone started working on adding audio playback?
Thanks,
Francois
vdcrim
4th February 2013, 14:49
I don't think so.
Zarxrax
12th March 2013, 02:31
Version 2.4.2
- Function definitions can be imported now from a new wiki
- Allow specifying what sources of function definitions to read on start
- Updates to the filter database
- Add syntax for function parameters not included by default in autocomplete, [arg info]
- Add 'autocomplete parameter' menu option, Ctrl+Alt+Space shortcut
- Add 'copy image to clipboard' menu option
- Speed-up handling of a large number of bookmarks
- Fix corruption of the margin of the video preview
- Fix tab renaming
- Add a new macro function 'ClearBookmarks'
- Improve 'Bookmarks at Intervals' macro
- Other minor changes and fixes
Function definition wiki is at https://github.com/AvsPmod/AvsPmod/wiki/Filter-database
Download in the first post.
Thanks vdcrim!
Dion
13th March 2013, 06:22
Works fine for me on v2.4.1. Note that only tabs with the same resolution and frame count share the timeline.
I wish it would work on anything. It's stupid if they have to be the exact same frame # + rez. I'm using 2.3.1 still cause it allows you to do it. Even tho its considered broken.
Be nice to have an option that allowed shared timeline regardless of the frames/res.
vdcrim
13th March 2013, 17:14
It's not stupid at all. It covers the most usual case, that is checking the effect of applying a filter. Sharing the timeline in all cases is an annoyance when you're editing several videos at the same time.
However, is perfectly understandable that not all people may have the same opinion. You didn't answer and tell this was your issue. I can't read your mind.
Place this file on your lib subdirectory [EDIT] see a few posts below.
naoan
13th March 2013, 17:22
Is it possible to have two or more tab to be "tagged" so that avspmod doesn't have to guess which one is it has to share timeline with or go through each and every tab before it meet one (which usually crash the whole thing since it has to traverse through heavy scripts)?
vdcrim
14th March 2013, 02:39
Is it possible to have two or more tab to be "tagged" so that avspmod doesn't have to guess which one is it has to share timeline with or go through each and every tab before it meet one (which usually crash the whole thing since it has to traverse through heavy scripts)?
I'll give it a try. The problem is how to show to which group belongs each tab without right-clicking it. I don't think is possible (or at least easy) to set a custom colour for the tab text or background.
fvisagie
14th March 2013, 08:30
Is it possible to have two or more tab to be "tagged" so that avspmod doesn't have to guess which one is it has to share timeline with or go through each and every tab before it meet one (which usually crash the whole thing since it has to traverse through heavy scripts)?
Something to add that would be fantastic for synchronising and mixing multiple sources in editing: lock/unlock from shared timeline, independently of any tab's current frame position.
How you use it:
Unlock all tabs involved in mixing
Scroll each tab to a common synchronisation mark
Lock mixing tabs to shared timeline
Select footage from the synchronised timelines
Whenever you reach a point where a camera was stopped, you just resynchronise with the master shot.
The extra benefit of this approach is that it's flexible enough to cater for almost all tastes regarding sharing timeline, or not.
fvisagie
14th March 2013, 11:04
PS. Thanks for the new version! :)
naoan
14th March 2013, 12:55
I'll give it a try. The problem is how to show to which group belongs each tab without right-clicking it. I don't think is possible (or at least easy) to set a custom colour for the tab text or background.
The ideal solution would be color I guess, but maybe you could just use number for now (below the * which appear on unsaved scripts), is that easy to do? I wonder how should the shortcut keys be, maybe ctrl+left click to add and shift+left click to remove from group (which you must specify first via some sort of right click option)?.
I'm just afraid that this would make things too complicated... but then again people who use avspmod must be used to heavy customization in the first place. :p
fvisagie
14th March 2013, 14:15
If all else fails for adding some tag to the tabs, how about just doing a quick-and-dirty (for now) and adding a text flag to their status bars?
naoan
14th March 2013, 14:28
If all else fails for adding some tag to the tabs, how about just doing a quick-and-dirty (for now) and adding a text flag to their status bars?
Yeah that should be good enough for me, as long as we have clear all currently tagged/locked tab option so we don't have to undo them one by one. :)
vdcrim
14th March 2013, 15:15
Added tab groups [link removed, added in AvsPmod v2.5.0]. Tabs can be assigned to a group by right-clicking on its title. Uses:
Tabs on groups only share the timeline with other tabs on the same group, regardless of the 'shared timeline' settings.
If the 'apply offsets' option is checked the difference between showed frames when the tabs were added to the group is used as an offset for sharing the timeline, e.g. tab1 (on frame 100) and tab2 (on frame 250) are added to a group -> tab2 is always 150 frames ahead when switching between the two tabs.
Added a new 'enable scroll wheel through tabs on the same group' setting, similar to the already existing 'enable scroll wheel through similar tabs'. Both settings are moved from the 'misc' to the 'video' tab on the program settings.
Warning: session files produced after this won't be compatible with past releases. Changed also how this info is stored to prevent it from happening again.
vdcrim
18th March 2013, 03:19
Added 'apply offsets', 'clear current tab group' and 'clear all tab groups' options, as well as the group number as tab title prefix. Hotkeys can also be assigned now. See post above.
naoan
18th March 2013, 05:15
Whoah, it's working great! :D
Though if I enable the 'enable scroll wheel through similar tabs' option avspmod still try to seek video outside the grouped tab, can you make it only seek within group instead?
vdcrim
18th March 2013, 15:34
Changed. :)
fvisagie
25th March 2013, 09:21
Added tab groups
Thanks for this! I tested it over the weekend and it works great.
In case you find them useful, a couple of notes from testing:
When seeking to 0 on tab not closest to 0, tab closest to 0 wraps around to end instead of warning and/or stopping on 0 etc.
Frame number only correctly restored from previous session once video is previewed (although I suspect this is old behaviour)
Suggestion: rename Video>Tab group to Video>Group tabs (start with verb like the other menu items)
vdcrim
26th March 2013, 04:42
All right, try again the link in #935 (http://forum.doom9.org/showpost.php?p=1619670&postcount=935).
fvisagie
26th March 2013, 18:08
All right, try again the link in #935 (http://forum.doom9.org/showpost.php?p=1619670&postcount=935).
It all works great! :thanks:
Forensic
22nd April 2013, 07:25
Adding a % value (e.g. test %5) to a slider label field causes the error message
Invalid slider tag for rescaling!
Accept only +, -, or an integer.
The minimum, maximum and default values are all multipliers of that value and the error does not prevent functionality. Is there any way to prevent this error? It keeps reappearing with every F5 refresh and file reload.
Name User
22nd April 2013, 20:10
I really shouldn't be trying to create a GIF with this considering I really know nothing about using AvsPmod, but when I try to create a GIF with the Create GIF with ImageMagick macro, it gives me this:
"Error in the macro:
'int' object has no attribute 'GetHDC'"
I need a guide for this.
vdcrim
23rd April 2013, 00:36
Adding a % value (e.g. test %5) to a slider label field causes an error message
Fixed, and updated the library.zip in #935 (http://forum.doom9.org/showpost.php?p=1619670&postcount=935).
"Error in the macro: 'int' object has no attribute 'GetHDC'"
You need to update that macro script to the latest version. There's a link and instructions in the first lines of the file. Anyway:
0) Install AviSynth and extract AvsPmod to some directory.
1) Copy the latest version (https://github.com/vdcrim/AvsP-macros/raw/master/Create%20GIF%20with%20ImageMagick.py) of the script to the AvsPmod/macros directory.
2) Download (http://www.imagemagick.org/script/binary-releases.php#windows) the portable static version of ImageMagick, extract convert.exe from it and place it in AvsPmod/tools (skip this step if IM is already installed on your system. The path to the executable will be asked on the first run of the macro).
3) Write your script (trim, resize, whatever) and run the macro selecting it from the macros menu. Options are pretty straightforward. I wouldn't check optimize blindly; it lowers a bit the filesize, but sometimes it also causes artifacts.
Name User
23rd April 2013, 21:55
Thanks!
Did all those steps. After I save to the desktop, it says: "GIF created," but there's no GIF there.
Only two lines. The first is opening the video, second is trim. Everything else is default.
vdcrim
23rd April 2013, 22:16
After I save to the desktop, it says: "GIF created," but there's no GIF there.
It seems that ImageMagick couldn't write the file to disk. Two possible reasons:
The output path contains characters not in your system encoding. This is a limitation of Python 2.
The output path is too long (more than 259 characters). This is a limitation of Windows.
Edit: I added some error reporting to the script, download it again.
Name User
24th April 2013, 00:44
Sorry, I'm an idiot. -_-
The problem seems to be that when I copied convert.exe to the tools folder, I also needed to copy vcomp100.dll to it. Found that out by opening convert and it giving me that message.
Thanks a lot for trying to help, though! :)
Forensic
24th April 2013, 01:14
The new library did the trick.
AvsPmod is a fantastic GUI and helps us Forensic Video Analysts work far more efficiently. Thank you to everyone for keeping this project alive.
vdcrim
24th April 2013, 01:29
The problem seems to be that when I copied convert.exe to the tools folder, I also needed to copy vcomp100.dll to it. Found that out by opening convert and it giving me that message.
Glad it's working now for you. I also forgot about possible Windows dependencies, so don't feel bad ;).
Name User
24th April 2013, 01:55
That's fine! Should've been obvious on my part I guess and it worked out in the end and now I can stop bothering the thread. :p
I think I'm going to try resizing and/or checking optimize because the file is huge for a 7 seconds GIF... 46.5 MB. :eek:
LigH
24th April 2013, 07:08
GIF animation optimization is no trivial task due to the limitation of 255 colors (+ a transparent entry). There are several more or less browser-compatible features which may or may not reduce the size (e.g. palette changes, different kinds of partial image updates). Also it depends a lot on the amount of dithering: Enabling it probably creates visually more convenient results, but reduces compressibility. Most tools may not support a reduced error distribution factor. A limited range of hues in the original material is certainly helpful.
Famous old Windows tools to optimize animated GIFs were "GIF Construction Set" and "JASC Animation Shop 3"; I wonder which current tools are recommendable (both Windows 7 compatible and efficient)...
RockTheBass
28th April 2013, 13:31
Hey all,
Is there any possibility to open the video preview in new window? Outside the main AvsP window? I have 2 monitors, so I would prefer to see the video preview on my monitor #1, and the codes on my monitor #2.
I think something like that:
http://img402.imageshack.us/img402/2908/exampleam.jpg
fvisagie
29th April 2013, 08:20
Does Options > Program settings... > Video > Separate video preview window help? (I haven't tried moving the preview to a separate monitor yet.)
Cheers,
Francois
RockTheBass
30th April 2013, 17:18
Does Options > Program settings... > Video > Separate video preview window help? (I haven't tried moving the preview to a separate monitor yet.)
Cheers,
Francois
Wow! Thank you very much! I thought exactly the same.
pyrobooby
1st May 2013, 01:57
Fuction request: linux-like TAB key to automatically complete file path.
vdcrim
2nd May 2013, 01:53
Fuction request: linux-like TAB key to automatically complete file path.
Try this [link removed, added in AvsPmod v2.5.0]. Instead of TAB, it's added to the Autocomplete parameter menu entry (Edit -> AviSynth function, default hotkey Ctrl+Shift+Space).
I wonder if it would be worth adding a calltip for choosing a file when the typed characters match more than one or they're a directory. The Insert filename option can be used instead.
Edit: added autocomplete lists for file and parameter names.
Edit2: some fixes.
gwendolien
16th May 2013, 12:43
Wish:
I could use an export of the syntax-highlighted source as e.g. HTML or RichText, to format it in a word-processor and print parts of it. There are other text editors with syntax highlighter support, but their selection of known filters and functions is usually less complete.
And an own highlight class for named function parameters might be missing yet.
I would like to support the export wish of LigH above.
vdcrim
17th May 2013, 15:13
It will come in the next version.
Marin85
17th May 2013, 17:13
I have a question regarding the naming of saved screenshots from AvsPmod. The older versions of AvsPmod used to be able to "memorize" a file name pattern chosen by the user and use it across the whole session, while the latest versions just stick to the default "scriptname%06d.png" no matter what. For example I would like that AvsPmod always saves screenshots using the template "%06d-scriptname.png" instead. Is there a way to change this behavior somewhere in the settings files of AvsPmod?
Thanks in advance for any help!
vdcrim
17th May 2013, 17:27
Currently the pattern is saved as before, but reset when attempting to save an image from a different tab. I could add a 'default pattern' to the program settings.
Marin85
17th May 2013, 17:33
Currently the pattern is saved as before, but reset when attempting to save an image from a different tab.
Yes, exactly.
I could add a 'default pattern' to the program settings.
Thanks, that would be very handy!
Hi,
I have a strange encoding problem between AvspMod and VirtualDub, and I don't think it's been brought up in this topic yet.
I have an AviSynth script with a placeholder in the code.
I use a custom AvspMod macro which pops up a GetTextEntry dialog, and replaces the placeholder in the code with the user input.
Then the script makes the text appear on the video.
Everything works fine until I enter a non-ASCII character in the dialog.
The text appears correctly in the script code, and also in the video when I preview it in AvspMod itself (control-R).
But when I preview the video through VirtualDub (F6), the text appears with the wrong encoding.
For example the French letter "é" appears as "é".
If I open the avs file with another editor which allows to change the file encoding to "Code page property" (like wscite) and save it back,
then the "é" also appears as "é" in AvspMod and its preview of the clip, but it is rendered correctly as "é" in VirtualDub...
I see no way to do this in the AvspMod editor itself, or in the macro code. What am I doing wrong ?
(I am using the latest version of AvspMod and library, and of VirtualDub)
TIA,
fp
It seems that non-ASCII7 characters are represented as Unicode (UTF-8). But some tools may prefer it encoded as Windows CP 1252 (commonly called "ANSI", though not really exact).
I guessed as much from the "Code page property" hack, but my problem is what to do about it...
I've tried a few variants of .encode() and .decode() on the input string in the macro before sending it to the AVS code, but I always get errors about 'ascii'-this or 'unexpected end of data'-that...
Admittedly I don't understand any of this and everything I try is guesswork, so I'm probably not out of the woods at this rate :-)
Edit :
Was barking up the wrong tree... Apparently,
sys.setdefaultencoding('cp1252')
in the macro code, does the trick.
Accented characters now appear properly in the avs code, in the avspmod preview, *and* in the vdub result.
Black magic, but seems to work, barring any side-effects...
Thanks for the hint !
vdcrim
20th May 2013, 00:44
Everything works fine until I enter a non-ASCII character in the dialog.
The text appears correctly in the script code, and also in the video when I preview it in AvspMod itself (control-R).
But when I preview the video through VirtualDub (F6), the text appears with the wrong encoding.
For example the French letter "é" appears as "é".
As LigH said the script was saved as UTF-8. There's actually not much point in saving a script as Unicode because AviSynth doesn't support it in the first place. AvsPmod saves it with your code page, except in these cases:
The script was already UTF-8 when opened in AvsPmod.
The script couldn't be saved with the default code page without losing data.
The script was created by copying it from another tab (double-click on the tab title, or File -> New tab while having text selected), and the script in that tab was UTF-8.
If I open the avs file with another editor which allows to change the file encoding to "Code page property" (like wscite) and save it back,
then the "é" also appears as "é" in AvspMod and its preview of the clip, but it is rendered correctly as "é" in VirtualDub...
I can't reproduce this :confused:
sys.setdefaultencoding('cp1252')
This is the encoding used by default to encode/decode 8-bit strings. Default on Windows is ASCII. Maybe your problem was something like this:
'text{0}text'.format(unicode_string)In this example unicode_string is encoded implicitly with sys.getdefaultencoding(), and would fail with u'é' if not for your sys.setdefaultencoding('cp1252'). GetTextEntry, GetText and SetText return/accept Unicode strings, so just do all your text manipulation in Unicode and you should be fine.
As LigH said the script was saved as UTF-8. There's actually not much point in saving a script as Unicode because AviSynth doesn't support it in the first place. AvsPmod saves it with your code page, except in these cases:
The script was already UTF-8 when opened in AvsPmod.
The script couldn't be saved with the default code page without losing data.
The script was created by copying it from another tab (double-click on the tab title, or File -> New tab while having text selected), and the script in that tab was UTF-8.
I think my case is a variant of the last one. What happens in my macro is :
I get the entire avs source code with GetText (including the placeholder)
I get user input with GetTextEntry
I replace the placeholder with the user input
I replace the avs source code (in avspmod editor) with the new one generated by Python in the macro, using SetText
This seems to turn the avs script into utf-8 somehow, maybe because the macro has the # -*- coding: utf-8 -*- header ?
I can't reproduce this :confused:
Well, what do you know, I can't reproduce my fix, either :-)
I swear it was working yesterday evening, but this morning it was back to square one...
I changed the header to # -*- coding: cp1252 -*-, but that by itself was not enough.
Does it make any sense that adding a non-ascii character *in the code* (in a comment) would change anything ?
This is really hair-pulling stuff...
GetTextEntry, GetText and SetText return/accept Unicode strings, so just do all your text manipulation in Unicode and you should be fine.
Yes, I read that now and again, and I really thought I was doing that, but evidently it's not that simple :-)
Thanks for your detailed answer vdcrim, at least it made be realize my first fix wasn't persistent, I hope the new one does better...
vdcrim
20th May 2013, 15:36
Well, it saves to "ANSI" for me (also on a latin1 country) with the following:
Blank tab (new tab with no selected text in the current tab).
Script:
blankclip().subtitle("{placeholder}")
Macro file:
introduced_text = avsp.GetTextEntry()
if introduced_text:
avsp.SetText(avsp.GetText().format(placeholder=introduced_text))The encoding of the file only matters when typing non-ASCII literals on a byte string, e.g. 'é' instead of u'é', which is a bad practice.
Introduced text:
random téxt
Thanks a lot for taking the trouble to prototype this, vdcrim !
I will try out your solution if my current fix proves to be as volatile as the previous one :-)
Oh, and I should mention this before I forget :
I'm a Python lover and have been using avisynth for a couple of years now... so Avspmod is doubly a life-saver to me.
I use wscite as an editor for regular coding so it feels right at home, and being able to add macros in this way is a real joy.
Heartfelt thanks to the original authors of avsp and avspmod, and of course to the past and present avspmod maintainers !
fp
ttatcs
30th May 2013, 16:37
my version is 2.4.2
when I start it in win7 x64 it pops nothing and quits . I found the error log like this :
[Thu May 30 23:29:24 2013]
Error parsing GetSystemEnv_GetSystemEnv plugin parameters: unknown character
Traceback (most recent call last):
File "run.py", line 43, in <module>
File "avsp.pyo", line 16863, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "avsp.pyo", line 16850, in OnInit
File "avsp.pyo", line 4545, in __init__
File "avsp.pyo", line 5393, in defineFilterInfo
File "avsp.pyo", line 5754, in getFilterInfoFromAvisynth
File "wxp.pyo", line 240, in write
File "wx\_controls.pyo", line 1850, in AppendText
UnicodeDecodeError: 'gbk' codec can't decode byte 0xf4 in position 77: incomplete multibyte sequence
How could I get it to work ? Please help .
vdcrim
30th May 2013, 17:47
That's an exception when reporting an error. It seems that the original error is that a plugin in the autoload directory has a function with an invalid parameter-type string.
Try moving your plugins out of the autoload directory and then move them back one at a time until you find the one that's causing the problem.
ttatcs
31st May 2013, 04:03
That's an exception when reporting an error. It seems that the original error is that a plugin in the autoload directory has a function with an invalid parameter-type string.
Try moving your plugins out of the autoload directory and then move them back one at a time until you find the one that's causing the problem.
Appreciate your response!
Is the avisynth's plugin fold you mean "autoload directory" ?
vcdrim probably rather means an autoload directory for Python plugins in AvsPmod or in the Python base installation.
I have no clue about Python at all; but "system environment" sounds like the variables (e.g. PATH) you can store with SET in Windows CMD or in the extended 'My Computer' Properties...
This "cross" symbol was reported as '%10' in the email notification, so it would be an unprintable ASCII control code. That is certainly a hint about trash in a variable, but does not clearly state where it comes from; or the quoted character is unreliable (the board software may have exchanged it during the posting), because the 'gbk' codec reported "byte 0xf4 in position 77", which is a different value.
The developer's guess in the error message of the Python library is an incomplete Unicode string, possibly truncated due to a length limit, but environment variables should not contain Unicode strings, so this appears rather improbable that an environment variable is the origin of this trashed string.
vdcrim
31st May 2013, 14:11
I meant the AviSynth's plugins directory, sorry about the confusion. The parameter-type string is the info saved on a global variable by AviSynth about the parameters of a function from an autoloaded plugin, e.g. plugin myplugin, function myfunction(clip clip, int a, int "b", bool "opt") would be:
$Plugin!myplugin_myfunction!Param$ => ci[b]i[opt]b
This is the string that is invalid. But anyway it seems that the problem is a bug in Avisynth 2.5, and is fixed on 2.6. See here (http://forum.doom9.org/showthread.php?p=1392355#post1392355) for details.
ttatcs
2nd June 2013, 12:36
Thanks LigH and vdcrim !
Really appreciate your feedbacks .
I installed Avisynth 2.6 and it works fine. Seems Avisynth 2.6 can handle the plugin file with "-" character the way that Avspmod understand.
vdcrim
4th June 2013, 13:32
Windows build (http://www.amvhell.com/avspmod/AvsPmod_v2.5.0.zip)
Source code (https://github.com/AvsPmod/AvsPmod/archive/v2.5.0.zip)
Changelog
Version 2.5.0 [2013-06-04]
- Tabs can be assigned to groups. Tabs on the same group share the timeline, optionally applying offsets
- Add 'enable scroll wheel through tabs on the same group' setting
- Snippets of text can be associated to a tag and inserted in the script
- Remove 'customize autocomplete keyword list' and add its functionality to the 'AviSynth function definition' dialog
- Improve 'autocomplete parameter' menu option and add filename string auto-completation
- Add highlighting styles for unknown functions, parameters and assignments
- Add setting for highlighting words as functions when in doubt
- Fix slow typing on very large scripts
- Scripts can be exported as HTML
- Add 'quick save image' menu option
- Add setting for customizing the default filename pattern used for saving images
- Add setting for not prompting for JPEG quality when saving
- Allow to save RGB48 data as 16-bit PNG
- Improve output path options in the 'Save Image Sequence' macro
- Update the current frame number when switching tabs also when the preview is hidden
- Check that requesting a frame succeeded before attempting to use it
- Fix error message appearing on preview refresh for user sliders with a custom modulo on its label
- Fix empty translation files not being filled on start
- Other minor changes and fixes
Release notes
- Tabs can be assigned to groups. Tabs on the same group share the timeline, optionally applying offsets
The offset is the difference between showed frames when the tabs were added to the group, e.g. tab1 (on frame 100) and tab2 (on frame 250) are added to a group -> tab2 is always 150 frames ahead when switching between the two tabs.
- Remove 'customize autocomplete keyword list' and add its functionality to the 'AviSynth function definition' dialog
Until now there were two ways for excluding a function from the autocomplete list:
Unchecking its entry on the AviSynth function definition dialog: this made the function inexistent to AvsP: no highlighting on a script, no calltip, no parameter autocomplete, no sliders.
Unchecking it on Customize autocomplete keyword list (program settings): this only excluded the function from autocomplete, and in addition for plugins it could be chosen to only show the short name and not the longer mangled form, or the other way around.
Customize autocomplete keyword list is removed now, and some changes have been made to the AviSynth function definition dialog:
Unchecking a function only excludes it from autocomplete.
A context menu has been added to the plugins tab, for choosing between showing long, short or both names for each function.
Delete button now resets to default edited function definitions (same as clicking reset to default and checking auto-generate preset from within the definition editor) and deletes definitions added by the user. Previously it only unchecked its entry, optionally removing user definitions.
You may need to set again autocomplete exclusions for plugin filters, as this info is stored differently now.
- Add setting for highlighting words as functions when in doubt
Now by default words are not highlighted as functions if there's a function with the same name. Those of you who like to type functions without parentheses will want to check this setting.
- Allow to save RGB48 data as 16-bit PNG
As AviSynth doesn't support it, when saving an image as 16-bit each frame of the clip returned by the script is assumed to be RGB48 data with a real height half the reported by AviSynth. This can be achieved with the following (Dither package):
Dither_convert_yuv_to_rgb (lsb_in=true, output="rgb48yv12")
or
Dither_convey_rgb48_on_yv12 (r, g, b)
As of now it's not possible to show additional options in a save file dialog. So instead of asking if the clip is 16-bit (like for the JPEG quality) the script is parsed for one of the function calls above.
In the case of the Save Image Sequence macro and SaveImage macro function the depth is specified directly.
http://cosgan.de/images/smilie/froehlich/e035.gif Great new milestone! I am almost disappointed that you considered only such a minor version number increase.
vdcrim
4th June 2013, 13:58
http://cosgan.de/images/smilie/froehlich/e035.gif Great new milestone! I am almost disappointed that you considered only such a minor version number increase.
I still can change it. In fact I'm going to change it because I've just seen a minor bug :(.
Edit: fixed
stranno
5th June 2013, 14:23
An option to zoom in the time bar, for more precise seeking, could be great.
Forensic
5th June 2013, 23:29
Excellent!! You just keep making the whole VirtualDub-AVIsynth experience better. For my many Forensic Video Analyst peers with no programming skills, AVSpmod is a life saver!
Dion
24th June 2013, 02:10
Thanks for the share timeline options. Working Great.
vdcrim
25th June 2013, 13:06
A small update, likely the last one until Fall:
Windows build (http://www.amvhell.com/avspmod/AvsPmod_v2.5.1.zip)
Source code (https://github.com/AvsPmod/AvsPmod/archive/v2.5.1.zip)
Version 2.5.1 [2013-06-25]
--------------------------
- Add 'toggle preview placement' menu option - the video preview can be placed now to the right of the script
- Add 'open script's directory' menu option
- Add 'interpret escape sequences' and accelerator keys to the find/replace dialog
- Fixes to the handling of function definitions
- Other minor changes and fixes
matfra
28th June 2013, 15:51
Could you add a button or menu to import different Video File.
It could be AVISource Open.
AVISource Open
DirectshowSource Open
...
...
I love to use AVSP to check frames and test video.
But Its time consuming to put the code and the path.
I end up using virtualdub even if the preview is not manageable like AVSP
vdcrim
28th June 2013, 16:12
I think you're looking for options -> extension templates.
Then use edit -> insert -> insert source or drop the file over the script to insert the template in the current tab, or file -> open or drop over the tab bar for inserting it in a new tab.
zero9999
11th July 2013, 03:05
The new "Apply Offsets" feature for tabs in the same group from 2.5.0 is quite nice, but as it is it breaks bookmark handling, because the offset is not applied to bookmarks in a group. Say, i want to take screenshots from two slightly different video sources. i add them to a group with a +10 frame offset for the second tab, set bookmarks at the frames i want to export. Then i run the Save Image Sequence macro on the first tab to save the bookmarks to images, but when i want to do the same for the second tab, avspmod exports images from 10 frames back rather than the ones i want.
Chikuzen
11th July 2013, 04:54
@vdcrim
Would you like to be able to specify the font used for error clip ?
Since ariel(default font of Subtitle()) has no glyphs to draw Japanese characters, the filenames that using them cause Mojibake.
Gavino
11th July 2013, 08:39
Would you like to be able to specify the font used for error clip ?
Since ariel(default font of Subtitle()) has no glyphs to draw Japanese characters, the filenames that using them cause Mojibake.
The error clip is created by MessageClip() (not Subtitle()), and this does not provide a way to change the font, it always uses Arial.
Chikuzen
11th July 2013, 09:02
The error clip is created by MessageClip() (not Subtitle()), and this does not provide a way to change the font, it always uses Arial.
I'm talking about error clip that generated by avspmod.
see
https://github.com/AvsPmod/AvsPmod/blob/master/pyavs.py#L129
avspmod does not use vfw/directshow.
Therefore, it is not related what is written to avisynth's main.cpp.
vdcrim
11th July 2013, 20:41
the offset is not applied to bookmarks in a group
Added a new option offset also bookmarks below apply offsets. It's off by default.
font used for error clip
Now it can be changed in program settings -> video.
Here's a new library.zip (http://www.mediafire.com/download/rgkd1xijrxhvaq0/library.zip) for both things.
Chikuzen
12th July 2013, 12:01
Now it can be changed in program settings -> video.
thx :)
zero9999
13th July 2013, 01:30
Added a new option offset also bookmarks below apply offsets. It's off by default.
neat, thanks!
mastrboy
13th July 2013, 17:22
Any plans for vapoursynth support?
vdcrim
13th July 2013, 22:43
Any plans for vapoursynth support?
As for me, my intention is to wait for the upcoming major revision of the GUI framework that AvsP uses, wxPython 3 Phoenix, that should be some months away, and if I have the time by then start a major refactoring of AvsPmod adding support for VS.
If the VfW module didn't exist I'd probably try to quickly hack some basic support, now that with VapourSynth R19 is finally possible, but it wouldn't be much better than the current situation (scripts saved with extension .vpy are evaluated as AviSynth scripts AviSource("script.vpy")).
Even if I start working on it I can't guarantee that I'll ever finish it. Anyone is welcome to step up, either by contributing to/taking charge of AvsP(mod) or by creating a new VapourSynth editor.
tl;dr maybe, not soon
wOxxOm
16th July 2013, 07:43
Would be nice to document the Keep variables on refreshing (http://forum.doom9.org/showpost.php?p=1602917&postcount=853) option in help/Video.html...
vdcrim
16th July 2013, 13:28
Would be nice to document the Keep variables on refreshing (http://forum.doom9.org/showpost.php?p=1602917&postcount=853) option in help/Video.html...
As a matter of fact, the help files haven't been updated since 2007.
18fps
30th August 2013, 13:09
I'd like to make a little macro for print the time (xx:xx:xx.xxx) of the current frame in the scripting window. What is the name of the variable that holds that info? Thank you!
Forensic
31st August 2013, 06:34
Due to required legacy filters we run AVIsnyth 2.5 32-bit (albeit on i7 3rd gen). With AvsPmod my team is able to test hundreds of filter combinations in a matter of hours instead of days. My only request is an optional slider toggle that is controlled by a boolean variable instead of a check box.
For example:
Mode=[<"Value", 0, 5, 0>]
works as expected. But my request is
ModeControl=true
#~ more lines of code here
Mode=[<"Value", 0, 5, 0, ModeControl>]
The revised version would be the same as Mode=[<"Value", 0, 5, 0>] when the variable is TRUE or non-existent (default to true). Thus, the slider is hidden only when the optional boolean variable ModeControl exists and is set to false.
I want this to automatically hide sliders when their usage would contradict other sliders in the same script. This will help ease-of-use with our scripts (currently over 1000 lines).
wOxxOm
1st September 2013, 23:38
I'd like to make a little macro for print the time (xx:xx:xx.xxx) of the current frame in the scripting window. What is the name of the variable that holds that info? Thank you!
def FormatTime(s):
'''Format seconds (int/float) to hours, minutes and seconds (str)'''
m, s = divmod(s, 60)
h, m = divmod(m, 60)
return '%02i:%02i:%06.3f' % (h ,m, s)
avsp.InsertText(FormatTime(avsp.GetFrameNumber()/avsp.GetVideoFramerate()))
18fps
3rd September 2013, 09:38
def FormatTime(s):
'''Format seconds (int/float) to hours, minutes and seconds (str)'''
m, s = divmod(s, 60)
h, m = divmod(m, 60)
return '%02i:%02i:%06.3f' % (h ,m, s)
avsp.InsertText(FormatTime(avsp.GetFrameNumber()/avsp.GetVideoFramerate()))
Thank you!
steptoe
6th September 2013, 09:06
I get this all the time when changing the sliders, but if I stop video preview playback then change the sliders and restart the video preview it runs perfectly, but then I can't see in realtime what differences the changes make
I'm guessing it has something to do with ffmpeg/mkv splitter reloading as that works perfectly IF I pause the video preview
Crash error is :
Problem Event Name: APPCRASH
Application Name: AvsPmod.exe
Application Version: 2.5.1.0
Application Timestamp: 49180193
Fault Module Name: wxbase28uh_vc.dll
Fault Module Version: 2.8.12.1
Fault Module Timestamp: 4e2114a2
Exception Code: c0000005
Exception Offset: 00085547
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 2057
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
And my script is :
setmemorymax(1024)
DirectShowSource("D:\ConvertXToDVD\Trapdoor.mkv")
LoadPlugin("C:\Program Files (x86)\Applications\Video\AVStoDVD\Lib\autogain\autogain.dll")
LoadPlugin("C:\Program Files (x86)\Applications\Video\AVStoDVD\Lib\msharpen.dll")
LoadPlugin("C:\Program Files (x86)\Applications\Video\AVStoDVD\Lib\fluxsmooth\fluxsmooth.dll")
LoadPlugin("C:\Program Files (x86)\Applications\Video\AVStoDVD\Lib\removegrain\removegrain.dll")
LoadPlugin("C:\Program Files (x86)\Applications\Video\AVStoDVD\Lib\descratch\descratch.dll")
LoadPlugin("C:\Program Files (x86)\Applications\Video\AVStoDVD\Lib\despot\despot.dll")
descratch()
despot()
RemoveGrain(mode=2)
RemoveGrain(mode=17)
FluxSmoothST(temporal_threshold=10, spatial_threshold=10)
MSharpen(threshold=33, strength=0, mask=false, highq=true)
AutoGain(dark_limit=33.3, bright_limit=65.2, gamma_limit=39.7, adjust_mode=1, chroma_process=100, change_status="", high_bitdepth=false, tv_range=True, debug_view=true)
Thanks
zero9999
6th September 2013, 17:24
would it be possible to make different tab groups as well as ungrouped tabs not share bookmarks (and have them use their own set of bookmarks instead)?
jtan2000
16th September 2013, 04:52
In stall it on window 7 64 ... when I double click AvsPmod.exe got this on error message log ...
[Sun Sep 15 20:47:35 2013]
Traceback (most recent call last):
File "run.py", line 43, in <module>
File "avsp.pyo", line 18060, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "avsp.pyo", line 18047, in OnInit
File "avsp.pyo", line 5068, in __init__
File "avsp.pyo", line 5886, in LoadAvisynth
File "avisynth.pyo", line 806, in <module>
File "ctypes\__init__.pyo", line 378, in __getattr__
File "ctypes\__init__.pyo", line 383, in __getitem__
AttributeError: function 'avs_delete_script_environment' not found
How to I fix this ? Thanks
BiOSsCZ
25th September 2013, 14:18
Im have crash :
[Wed Sep 25 15:14:10 2013]
Traceback (most recent call last):
File "run.py", line 43, in <module>
File "avsp.pyo", line 18060, in main
File "wx\_core.pyo", line 7981, in __init__
File "wx\_core.pyo", line 7555, in _BootstrapApp
File "avsp.pyo", line 18047, in OnInit
File "avsp.pyo", line 5070, in __init__
File "avsp.pyo", line 5943, in defineFilterInfo
File "glob.pyo", line 58, in iglob
File "glob.pyo", line 58, in iglob
File "glob.pyo", line 59, in iglob
File "glob.pyo", line 78, in glob1
File "fnmatch.pyo", line 54, in filter
File "re.pyo", line 190, in compile
File "re.pyo", line 242, in _compile
sre_constants.error: bad character range
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.