Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
18th May 2007, 14:53 | #1 | Link |
Moderator
Join Date: Nov 2001
Location: Netherlands
Posts: 6,364
|
AviSynth 2.5.8 Alpha 2 [September 19th] - Release!
The changelog of the most recent version (v2.58a2) can be found here.
AviSynth 2.5.8 Alpha [May 18th] - Release! Changelist with respect to 2.5.7: Additions: * ColorKeyMask: Allow independant tolerance levels for each channel. * Added Tweak Hue/Saturation range limiting (ported from 2.6). * Added AudioLevels and Color2 modes to Histogram (ported from 2.6). * Adding global OPT_UseWaveExtensible=True to your script enables WAVE_FORMAT_EXTENSIBLE audio output. * Added ShowTime() script verb, like ShowSMPTE() but with milliseconds (ported from 2.6). * Added BlackmanResize() and Spline64Resize(). * Modified DeleteFrame()/DuplicateFrame() to process multiple arguments. * Added Min()/Max() script functions. Bugfixes: * Fixed WriteFile(), Now remembers absolute path to file. * Fixed Info() frame pitch, reports pitch of input frame. * Fixed Invert() right edge memory overrun/corruption. * Fixed Histogram() Classic mode pixel values exceeding YUV limits. * Fixed Histogram() chroma plane initialization to 128. * Fixed Conditional reader/writer illegally saving IScriptEnvironment pointer. * Fixed YV12 Blur()/Sharpen() right edge pixel corruption with non-writable input frames. * Fixed MMX Blur()/Sharpen() code to full 8 bit precision. * Fixed IsAudioFloat()/IsAudioInt() script functions. * Fixed Cache memory oversubscription of SetMemoryMax() limit. Optimizations: * Make audio cache actually functional. * Tweak speed improvments. * Subtract speed improvments. * Tuneup Overlay() ISSE Convert444ChromaToYV12 and also provide MMX version. * PokeCache interface implemented. * Cache and Memory management enhancements. Changes: * AVISource/WavSource map WAVEFORMATEXTENSIBLE back to equivalent WAVEFORMATEX. * DirectShowSource() now recognises incorrect AM_MEDIA_TYPE subtype for WAVE_FORMAT_EXTENSIBLE audio and corrects the data and accepts it. * DirectShowSource() now attempts to use partial graph from failing RenderFile call. * DirectShowSource() now detects and handles non 32 bit aligned picture lines from dud codecs. * Crop(align=true) tests actual alignment in each GetFrame call. * Relax YV12 resizer width restriction, now mod 2 was mod 4. * .AVSI failures during env->CreateScriptEnvironment() are now available to the GetError() interface. * SetCacheHints(CACHE_RANGE, n) will now surrender frames to satisfy SetMemoryMax(). * CoInitialize()/CoUninitialize() now done as part of ScriptEnvironment creation/deletion. * Much code from 2.6 base included. Typically IsYV12() changed to IsPlanar(). As usual download from Sourceforge. Enjoy! Last edited by Wilbert; 20th September 2007 at 21:29. |
18th May 2007, 15:57 | #2 | Link | |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Quote:
For my update to the ffdshow AviSynth filter I could really use a NukeAllCaches function to, well, nuke all caches (from orbit, if need be) to make sure nothing is reused after the input video stream has been seeked in... Of course, a "ForgetAllMetricsYouCalculatedAhead" would be nice too, but it's a bit late to retrofit that into old filters... So on the other hand, I guess I'll have to live with seeking ahead a lot of (not-really-existing) frames to get filters to start calculating metrics anew and dodge cached frames. np: Hug - Birds (Heroes)
__________________
now playing: [artist] - [track] ([album]) |
|
18th May 2007, 20:53 | #3 | Link |
*Space Reserved*
Join Date: May 2006
Posts: 953
|
Nice. An update. Thanks A Lot!
Does anyone know if This still hold true? Would Spline36 be the more efficient resizer to use over Spline64 or... ? Nvm, I read the resizer doc, so it still seems to be the same. Last edited by Terranigma; 18th May 2007 at 21:18. Reason: Correction. |
19th May 2007, 01:57 | #6 | Link |
Registered User
Join Date: Jan 2003
Posts: 213
|
does 2.5.8 support multithreading? I recall reading a while ago a recommendation to use one of Tritical's avisynth binaries since they were more "memory friendly", but according to his website they are now out of date. Just wondering if people recommend 2.5.7 final, the latest 2.5.8 alpha, or an older 2.5.7 RC build from Tritical's website. thanks!
|
19th May 2007, 05:05 | #7 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
@Leak,
PokeCache currently is internal only, it is intended to jam a message at all the cache instances. Currently the memory manager uses it to say "I have run out, give some back". Adding a hook to tell all the caches to run in CACHE_NONE mode would be a no brainer. For your ffdshow purposes a reset all caches hook might be more useful to you, that way temporal filters could still use the cache between resets. Have a look at the current CVS code and start a thread to discuss it some more. @Terranigma, It is still the original 4 node Spline64 I originally implemented. Maybe you should start a Dev thread to discuss the parameters for this resizer. @J-Wo, No multithreading yet, probably not until 2.6.0. The intent is to make this version obey SetMemoryMax(). A shortcoming in the cache code allowed cache buffers to be locked indefinitly, all 2.5.6 and 2.5.7 releases suffer this problem, Triticals mods helped a little but didn't solve the problem. If you have a problem, run 2.5.8, reproduce the problem and REPORT IT! |
19th May 2007, 05:21 | #8 | Link |
Angel of Night
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
|
Can PokeCache be used in a filter? So that if a filter itself attempts to malloc or new something internal (not that I think I've ever seen C++ allocation in an avisynth filter...), and hits an out-of-memory condition, it can partially flush the cache and try again? Right now crashing makes as much sense as anything, because hey, what else are you going to do without a working space?
|
19th May 2007, 05:48 | #9 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
If needed I could add access thru a new key for the env->ManageCache() interface. However doing so would not solve this problem. The cache never Free's/delete's memory, this new hook just unlocks/unprotects VFB's so that env->NewVideoFrame() can reuse an existing frame from the pool instead of allocating a brand new one.
Bring on all your worst memory hog scripts and see how they behave now. |
19th May 2007, 10:27 | #11 | Link |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
There was some discussion that ultimately lead to it being added to AviSynth here in case you're interested...
np: Adult. - You Don't Worry Enough (Why Bother?)
__________________
now playing: [artist] - [track] ([album]) |
19th May 2007, 10:50 | #12 | Link | |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Quote:
That's why I resorted to increase the number of the current frame by 1000 whenever such a break is needed - that should work in almost all cases. Oh, another thing - wouldn't it make sense to also add the multithreading additions from 2.6? TSP did so for 2.5.6 and 2.5.7 and released his own versions of avisynth.dll, so I guess it shouldn't be too hard to incorporate these changes in 2.5.8 for good... np: Adult. - Harvest (Why Bother?)
__________________
now playing: [artist] - [track] ([album]) |
|
19th May 2007, 15:26 | #13 | Link |
Errant Knight
Join Date: Oct 2004
Location: St Louis, M0 US
Posts: 364
|
Hello, |
19th May 2007, 17:12 | #14 | Link |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Oh yeah, another thing I wanted to ask:
Since I'm using VS2005, would you be interested in a patch for the current CVS code that fixes the errors caused by 2005's tighter scoping? It's all just pulling the loop variables out before for statements, so it should work just as well in VC6. I'd also have project/solution files for VS2005 that could be put into CVS, like ffdshow does with it's VC6/VS2k5/ICL9 files. Oh, and distributing MSVCRTD in distrib/bin/debug might be also a good idea, since it doesn't ship with 2005 and devil-d.dll depends on it. It's not much that needs to be changed to at least make avisynth itself compile, but why not add it to CVS so people don't have to reinvent the wheel every time? np: The Go Find - Monday Morning (Stars On The Wall)
__________________
now playing: [artist] - [track] ([album]) |
19th May 2007, 18:26 | #16 | Link | |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Quote:
Yeah, I could have dug out my VS6 CDs and installed the missing library from there, but you wouldn't believe what just googling for it turns up... np: Mikkel Metal - Dromos (Brone And Wait)
__________________
now playing: [artist] - [track] ([album]) |
|
19th May 2007, 22:10 | #17 | Link |
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Okay, so if someone else wants to compile AviSynth with Visual Studio 2005 or would like to commit my changes to CVS - you can find my changes here.
DISCLAIMER: I didn't thoroughly test everything, I simply checked that it would happily run my DVD-IVTC/resize script inside of ffdshow. Also, pretty much all of the changes consist of straight-forward pulling loop variables out of a for-loop. It's also chock-full of warnings, but I think almost all of them can be safely ignored. I've also replaced lstrcpyW with wcscpy, as the former is both deprecated *and* commented out in it's header file, while the latter is just deprecated and should do the same. The diff contains all code changes and VS2005 project files (plus some line noise from my local SVN repository), while the ZIP file contains a VS2005 debug and release build of the SoundTouch library. If the debug version of AviSynth doesn't want to run, you'll probably have to hunt down a copy of MSVCRTD.dll, or throw out your devil-d.dll (and possibly the code that tries to use it). np: David Sylvian - Ride (Everything And Nothing)
__________________
now playing: [artist] - [track] ([album]) |
19th May 2007, 23:51 | #18 | Link |
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
Okay M$ won't let MSVCRTD.DLL be distributed.
devil-d.dll comes from the devIL distribution, we don't build it. The debug versions of things in CVS are usually pretty useless because they have absolute path references for the symbols, but they linger on. The CoInitialize()/CoUninitialize() change should only avoid the deadlock from the DllMain exit code (got global lock, CoUninit.. code also needs same lock, etc, etc, ...) The concept is still under review. There is a dormant thread on the issue, read that and contribute any ideas you have in there. Version string I haven't checked Wilbert build, but it should just have 8 instead of 7 and a new date. Will check. Leak, thanks for the 2005 updates. Are these really all from compiler warnings, it seems a bit excessive or did you do a global seek and destroy. I am relucant to put any new .vcproj files into CVS (sh0dan already has some) because people tend to update them directly instead of updating the VC6 files and reimporting. For the lstrcpyW/wcscpy we should be using the function for which the compile generates inline code. Need to check. Whew, pause, take breath ...... |
20th May 2007, 00:13 | #19 | Link | |||
ffdshow/AviSynth wrangler
Join Date: Feb 2003
Location: Austria
Posts: 2,441
|
Quote:
I didn't do a seek and destroy, though - I just fixed it everywhere the compiler choked on me. Sure, a few of these could have been fixed by re-declaring the loop variable in for statements further down the code, but I figured just declaring the variable once and reusing it like it's been done before was the way to go. Quote:
Anyway, the auto-conversion process didn't go totally smooth for DirectShowSource and TCPDeliver at least, both needed some tweaking to compile. That's why I included them... And the SoundTouch libraries need to be rebuilt with VS2005 to link properly. Quote:
But rectifying it in wxutil.h in every installation can't be the solution either... np: David Sylvian - Cover Me With Flowers (Everything And Nothing)
__________________
now playing: [artist] - [track] ([album]) |
|||
20th May 2007, 01:45 | #20 | Link |
AviSynth plugger
Join Date: Nov 2003
Location: Russia
Posts: 2,183
|
can Soundtouch be converted to DLL? with non-compiler version-dependent calls from avisynth (LoadLibrary, .....)
like devil.dll
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick I usually do not provide a technical support in private messages. |
Thread Tools | Search this Thread |
Display Modes | |
|
|