What’s controversial you ask? Checking if plugins actually use the API as documented. Walls of derping on the subject were quickly created. But enough about that, now it’s time to list the new features and interesting changes.
The first thing you’ll notice is that Python 3.5 is now required instead of 3.4. This is good because it’s not bad. And I don’t have to keep an ancient compiler around anymore when developing things. Windows development only needs VS2015 now.
Other interesting changes are:
- Expr is much faster because it has runtime code generation – there should be much less reason to use Lut(2) now
- Expr can have 26 input clips – many instances of Lut2 and other small logic filters can now be folded into one much faster expression
- Float support in PlaneAverage, imwri, Lut and Lut2 (only output in the lut filters)
- “vs.get_core()” can be used everywhere in scripts – previously it would throw an error if used in script function callbacks
- Much smaller installer
And remember, this project doesn’t run on e-recognition. It runs on despair and hate on interweb forums. Occasionally supplemented by small donations.
There are now fairly stable test builds for R28 available. Don’t forget to install Python 3.5 first.
Recently there’ve been several users that encountered problems after installing VapourSynth. I imagine that those users looked something like this:
Huh? What’s an update?
Don’t be this guinea pig. Use windows update. Install KB2533623 and don’t be afraid of new things.
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.