A video processing framework with simplicity in mind
LGPL-2.1 License
Bot releases are visible (Hide)
Uses latest visual studio compiler again. See https://github.com/Jaded-Encoding-Thaumaturgy/vs-preview/issues/190 for a workaround for vspreview crashes.
Other changes:
Published by myrsloik about 1 month ago
Published by myrsloik 4 months ago
added YUV420PS/H and YUV422PS/H constants for convenience
vspipe --info will now output information for all set output nodes
added a new function to to the vsscript api to get a list of all set output indices, since most users don't need vsscript api 4.2 you now have to define VSSCRIPT_USE_LATEST_API or VSSCRIPT_USE_API_42 to actually require it
the python module will now warn if it doesn't match the core library version when creating a core
updated zimg to fix a rare resizing bug that only happens around 0.5x scaling with avx512 optimizations
now always sets console output codepage to utf8 in windows
Published by myrsloik 6 months ago
fixed portable base path detection, was broken in r67
fixed is_inspectable, was broken in r67
reverted widestring print changes in vspipe from r67
Published by myrsloik 6 months ago
since most plugins don't need api 4.1 you now have to define VS_USE_LATEST_API or VS_USE_API_41 to actually require it
fixed a minor performance issue
all suitable constants are now IntEnum type instead of IntFlag when compiled with cython 3.x
fixed constants in vapoursynth module not being correctly coerced to int type when used passed to plugin functions due to cython 3.x changes
vfw and avfs will now output YUV420P12 and YUV422P12 as P016 and P216 fourcc (16 bit) to make things more convenient
fixed 19-24 bit audio output in vfw
fixed handling of audio decoding errors in vfw
fixed the reported plugin path being empty
improved the portable install script
Published by myrsloik 8 months ago
updated the supported python versions to 3.12 and 3.8
added an option to write a full filter graph with time information to file when done processing in vspipe
clarified where different information will be output in vspipe
fixed backslashes and linebreaks not being properly escaped in dot graph output
copyframeprops can now optionally copy only a subset of properties
removeframeprops function now accepts wildcards in property names
added prop_src argument to shuffleplanes
added an access pattern mode when only repeatedly requesting the last frame of a clip
added approximate_gamma option to resizers (saindriches)
added plugin_path property to plugin object in python
audio is now clamped instead of wrapped around in audiomix and audiogain, these functions can also now warn when clipping happens
the vfw wrapper now provides simple waveformatex information automatically if the audio is mono or flagged as plain stereo and samples contain no padding bits
increased the get_frame error message buffer size in python, fewer messages should be truncated now
added missing st428 transfer characteristics to resize
made most graph information functions part of the stable api and bumped the version to 4.1
added new frame request pattern where only the last frame is requested multiple times to further improve cache usage
added new api functions for cache clearing
fixed request pattern set for selectevery with multiple identical offsets
fixed request pattern set for premultiply
expose number of bytes used by cache in python and clean up version and str representations of things (setsugennoao)
fixed modifyframe filter not properly copying its own videoinfo which may cause crashes if nothing else references the format node (jsaowji)
fixed setcache function leaking a node reference (jsaowji)
Published by myrsloik 8 months ago
Slightly less tested than the average RC but nobody will ever notice
r66:
updated the supported python versions to 3.12 and 3.8
copyframeprops can now optionally copy only a subset of properties
removeframeprops function now accepts wildcards in property names
added prop_src argument to shuffleplanes
added an access pattern mode when only repeatedly requesting the last frame of a clip
added approximate_gamma option to resizers (saindriches)
added plugin_path property to plugin object in python
audio is now clamped instead of wrapped around in audiomix and audiogain, these functions can also now warn when clipping happens
the vfw wrapper now provides simple waveformatex information automatically if the audio is mono or flagged as plain stereo and samples contain no padding bits
increased the get_frame error message buffer size in python, fewer messages should be truncated now
added missing st428 transfer characteristics to resize
made most graph information functions part of the stable api and bumped the version to 4.1
added new frame request patterns where only the first and/or last frame may be requested multiple times to further improve cache usage
added new api functions for cache clearing
fixed request pattern set for selectevery with multiple identical offsets
fixed request pattern set for premultiply
expose number of bytes used by cache in python and clean up version and str representations of things (setsugennoao)
fixed modifyframe filter not properly copying its own videoinfo which may cause crashes if nothing else references the format node (jsaowji)
fixed setcache function leaking a node reference (jsaowji)
Published by myrsloik 12 months ago
fixed inspection api sometimes causing memory corruption when used from python
frame properties in python are now return as str type instead of bytes when hinted as utf8 printable
fixed how unprintable data is returned from plugin functions in python, previously it would leak a ctypes pointer with no length instead of returning a bytes object
fixed a bug in the avx2 maskedmerge float premultiplied code path that would switch the two input clips
reverted the from_chars code a bit more to make no locale affect float parsing
fixed the sar adjustment for real this time
Published by myrsloik about 1 year ago
frame properties in python are now return as str type instead of bytes when hinted as utf8 printable
fixed how unprintable data is returned from plugin functions in python, previously it would leak a ctypes pointer with no length instead of returning a bytes object
fixed a bug in the avx2 maskedmerge float premultiplied code path that would switch the two input clips
reverted the from_chars code a bit more to make no locale affects float parsing
fixed the sar adjustment for real this time
Published by myrsloik about 1 year ago
fixed compilation on osx where the default standard library doesn't have a full implementation of std::from_chars
fixed SAR adjustment in resizer when source cropping is used
added -- as an alternate to . to indicate no output in vspipe since shells have a tendency to expand .
added json output of video frame properties to vspipe
fixed clearMap function, previously it would forget to properly clear the error state in maps which could cause crashes in frameeval and other filters
32 bit binaries are no longer provided for windows
updated zimg to fix issues on zen4 cpus
added support for cython 3.x
Published by myrsloik about 1 year ago
Published by myrsloik about 1 year ago
added json output of video frame properties to vspipe
fixed clearMap function, previously it would forget to properly clear the error state in maps which could cause crashes in frameeval and other filters
32 bit binaries are no longer provided for windows
updated zimg to fix issues on zen4 cpus
added support for cython 3.x
Published by myrsloik over 1 year ago
updated all api documentation for api4
switched to C++17 for the entire project
added a warning every time the deprecated cache filter is instantiated and ignored
fixed a regression with alpha nodes in vspipe introduced in r62
Published by myrsloik over 1 year ago
updated the supported python versions to 3.11 and 3.8
now up to 500 log messages are cached when no log handler is attached
improvements to repr, audio channel handling and other python fixes (setsugennoao)
added a class Local for environment-local values
Published by myrsloik almost 2 years ago
Published by myrsloik almost 2 years ago
Published by myrsloik about 2 years ago
fixed blankclip crashing when fpsnum or fpsden is 0 despite it being allowed
fixed invalid format ids sometimes being treated as api3 values when passed to resize
fixed error message frame generation in vfw
fixed writing beyond end out output buffer for audio in vfw
blankaudio now takes an array of channel constants since this better matches how most other functions work
fixed splitchannels crash on certain channel configurations (YomikoR)
added makefulldiff and mergefulldiff, these are versions of makediff and mergediff that don't clamp the difference to half range and instead use a higher precision diff clip
better error messages when filters get unsupported input formats or combinations thereof
freezeframes now accepts empty arrays and simply passes through the source clip
you can directly assign to frame-props
removed all deprecated (and replaced by better versions) functions in python: get_frame_async_raw, get_plugins, get_functions, list_functions, get_format, register_format
fixed convolution output for 9-15 bit material
Published by myrsloik about 2 years ago
Published by myrsloik over 2 years ago
fixed several convolution crashes
fixed averageframes weights with float input
fixed rare cython memory leak on error
Published by myrsloik over 2 years ago