There’s some kind of theme to this release but I’m not sure what it is. Maybe I should say it’s all about fixing past mistakes since the majority of GenericFilters got rewritten and integrated into the core. The original code quality was simply too low and there were small bugs and differences littered all over it.
Or maybe it’s about streamlining the API to have fewer odd cases to deal with. The so-called “unknown length” clips have now been deprecated and trying to return one from a filter will trigger an error. All potential uses of it can simply be replaced with one very long clip. No reason to keep unnecessary complexity around.
There’s also been a big effort put into making the frame properties mean something and for them to be used. Now most filters will automatically use the flagged field order when present, the order specified in filter arguments will only be used if no valid order is set. There’s also more color information provided so colorspace converters can automatically pick the right input format. To make this work you’ll need to update to the latest fmtconv and FFMS2 builds. The z library will probably be updated soon too.
Important Compatibility Information
The API version has been increased to 3.2 to show that unknown length clips are no longer available. This means plugins compiled against the new header won’t work with older versions.
The plugin version of GenericFilters will be removed in the next release so start changing all scripts to use the equivalent functions in the std namespace instead.
I’m beginning to make this a bit of a tradition for some reason I don’t understand myself. Don’t expect much progress for a few months. Rum won’t help this time.
Carrot in peril
Steaming pile of shit
The first kinda working version of the ImageMagick source is now available. ImageMagick needs to die.
The focus on this release is mostly speed. By switching to using tcmalloc in windows some scripts get very substantial performance gains, in some extreme cases over 200% speedup but don’t expect it in every clip. Other parts of the code were also steamlined and cleaned up for some additional minor gains.
The other highlight is as usual bugfixes, a pile of small and annoying things have been fixed and there is now full documentation of the API available. Something most open source projects don’t manage to do ever (sprinkling doxygen everywhere doesn’t count unless it’s readable).
Important script writing detail
If you write a python module with functions to be imported into another script DO NOT store the core object in global scope. This will cause odd behavior since the global scope is only evaluated once but a new core is provided every time a script is reloaded. The result is that you will have two or more cores in the same script and most likely crash or get an error.
The new version can be downloaded from the ivtc.org link to the left. Only for real encoders. See the previous post for the main changes.
Don’t expect regular updates. The existing codebase is so horrible I don’t want to make major changes. Report all bugs you find on IRC.
An ancient evil has returned. The number one IVTC tool for real encoders has been updated to better support modern windows versions. It includes several bug fixes and it’s now system DPI aware so it won’t look so bad. Head to #darkhold on Rizon.net if you’re one of the few who still know how to use it and want to test it.
Still no VapourSynth support though. Too much effort.
It’s release day again. The download this time will be a bit different though. Once you get to the download page there will be a quick time event and you have to press the reset button really quickly to start the download. So be prepared before you try to download it.
The main new features this time are:
- Added more missing modes to RGVS and VerticalCleaner
- Saner loading of plugins with multiple dlls on windows, the directory containing the loaded plugin will now be searched as well
- Includes pdb files for vapoursynth.dll to help debugging and plugin development
- The possibility to chain commands together
- Won’t work on XP anymore
Here’s how you can now combine commands. The clip gets passed as the first unnamed argument to the next command.
The coder with many names has successfully ported one of the biggest code messes in existence. Currently it has most commonly used MVTools functions and QTGMC is now fully native.
You can find the binaries and source at github.
It’s finally time for another release with big improvements. Mostly because people tried to use VapourSynth and had opinions about it, and as a result the VSScript API has been improved to make more sense and plenty of minor odd things in the Python module have been fixed.
- FreezeFrames, DuplicateFrames and DeleteFrames filters added
- An experimental ImageMagick reader/writer added
- VSPipe can pass arguments into scripts being evaluated
- The number of threads to use can be set at any time both from the API and Python
- The VSScript API has been improved and now behaves more sanely in addition to reporting failure/success for more operations
- An exceptional number of serious bugs fixed, most of them fortunately rare
Main compatibility issues with previous versions:
- The Python module no longer adjusts arguments for filters that had them changed in R22. See the R22 release post for more details.
- VSPipe has a new argument parser and slightly changed argument handling better match command line utilities in general. Short versions of arguments have also been added.
After many, many months of procrastination and two weeks of cursing at the ImageMagick API, ABI and horrible design decisions I finished what should be a mostly working source plugin based on it. It can read a list of different images or numbered image sequences, it also allows images with varying dimensions to be loaded in one call. 8-16 bit formats with or without alpha are supported which makes it superior to anything available for Avisynth. Let the image file processing begin!
As usual the download link and special notes for the early test versions can be found in the relevant doom9 thread.