Releases: AkarinVS/L-SMASH-Works
vA.3k "Cherry Blossoms in Full Bloom and a Romantic Storm"
This release includes a FFmpeg fix that used to crash the process when cuvid is requested but not available (prefer_hw=3
or prefer_hw=1
, #28.)
Also introduces a _FramePktSize
frame property for the raw encoded frame size in bytes. But note that if you use it for adaptive filtering purposes, be sure to apply sufficient smoothing to it.
This is a VapourSynth only release.
Changelog
- Fixes #28 (lsmas would crash when cuvid is requested but not available.)
- Introduce a
_FramePktSize
frame property for the raw encoded frame size in bytes. - Introduce
framelist
argument toLWLibavSource
: when enabled, it will create on the first output frame frame properties_IFrameList
/_PFrameList
/_BFrameList
for the frame indices of I/P/B frames, respectively. - Fixed #14 again for yet another form of broken seeks due to missing cue points in webdl mkv files.
- Fixed HomeOfAviSynthPlusEvolution/L-SMASH-Works#32, thanks @Asd-g for the patch.
Release Variants
There are three binary release variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release. (Not recommended unless your system periodically cleans up the%TEMP
directory.)
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
- [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
- [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
- [vA.3e] Set
_FrameNumber
frame properties for each frame. - [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
- [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
- [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
- [vA.3f] Fixed #9 (support PNG RGBA64 files)
- [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced
bint soft_reset=1
forLWLibavSource
, which changed codec reset behavior during seeking forLWLibavSource
. - [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's
_Alpha
property as well. - [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
- [vA.3g] Fixes #11 and labels
_Alpha
clips as full range; and #16, which fixes a bug introduced in the fix for #11. - [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
- [vA.3g] Include full file path in error message when failing to create index.
- [vA.3g] Update ffmpeg to v4.4.1; update libfmx to v1.35.1; update dav1d to v0.9.2; update nv-codec-headers to v11.1.5.0.
- [vA.3g] fixed behavior when passing VS predefined format constants to the
format
parameter (e.g.lsmas.LWLibavSource(a, format=vs.YUV420P16)
). (The parameter takes a string, so VS will transformvs.YUV420P16
into the string"PresetFormat.YUV420P16"
, however lsmas used to only recognize"YUV420P16"
.) Now lsmas recognizes this form and will generate a warning message on stderr if the provided format is not recognized. - [vA.3h] Fixed #19 where some frames might fail to decode for certain m2ts files. lwi index file version is bumped, and all existing lwi files created by previous versions will have to be recreated. (This requires corresponding FFmpeg patch 1 and patch 2 to work.) In general, lsmas requires patched FFmpeg to work properly even though lsmas should build with unpatched FFmpeg.)
- [vA.3h] Fixed UV-shift and range error when converting YUV source to RGB output formats. (
core.lsmas.LWLibavSource(a, format="RGB24")
should produce bit-identical output ascore.ffms2.Source(a, format=vs.RGB24)
now.) - [vA.3i] fixed a regression when reading full range YUV files (e.g. JPEG images). The output was labeled as full range in the frame property, but the output is actually converted to limited range.
- [vA.3i] make
Version()
return alwindex_version
key that could be used to test if a given*.lwi
file is usable by this version of lsmas (check if the header of the*.lwi
file matchescore.lsmas.Version()['lwindex_version']
) - [vA.3i] fixed slow seeking of certain m2ts files (#24) introduced in vA.3g (requires a new patch to ffmpeg).
- [vA.3i] Added
_EncodedFrameTop
and_EncodedFrameBottom
frame properties (see HomeOfAviSynthPlusEvolution/L-SMASH-Works#17). - [vA3.j] Fixed another variant of #6 when the 0x47 is the first four bytes of the m2ts. For certain m2ts files, this bug will result in missing the first few frames.
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
Release binaries are built for Windows/x64 (64-bit) only.
vA.3j "This is the Story of a Little Love and Courage"
This fixes (1) a bug when reading certain m2ts that has the 0x47 in the first four bytes (another variant of #6).
This is a VapourSynth only release.
Changelog
- fixed another variant of #6 when the 0x47 is the first four bytes of the m2ts. For certain m2ts files, this bug will result in missing the first few frames.
Release Variants
There are three binary release variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release. (Not recommended unless your system periodically cleans up the%TEMP
directory.)
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
- [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
- [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
- [vA.3e] Set
_FrameNumber
frame properties for each frame. - [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
- [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
- [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
- [vA.3f] Fixed #9 (support PNG RGBA64 files)
- [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced
bint soft_reset=1
forLWLibavSource
, which changed codec reset behavior during seeking forLWLibavSource
. - [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's
_Alpha
property as well. - [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
- [vA.3g] Fixes #11 and labels
_Alpha
clips as full range; and #16, which fixes a bug introduced in the fix for #11. - [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
- [vA.3g] Include full file path in error message when failing to create index.
- [vA.3g] Update ffmpeg to v4.4.1; update libfmx to v1.35.1; update dav1d to v0.9.2; update nv-codec-headers to v11.1.5.0.
- [vA.3g] fixed behavior when passing VS predefined format constants to the
format
parameter (e.g.lsmas.LWLibavSource(a, format=vs.YUV420P16)
). (The parameter takes a string, so VS will transformvs.YUV420P16
into the string"PresetFormat.YUV420P16"
, however lsmas used to only recognize"YUV420P16"
.) Now lsmas recognizes this form and will generate a warning message on stderr if the provided format is not recognized. - [vA.3h] Fixed #19 where some frames might fail to decode for certain m2ts files. lwi index file version is bumped, and all existing lwi files created by previous versions will have to be recreated. (This requires corresponding FFmpeg patch 1 and patch 2 to work.) In general, lsmas requires patched FFmpeg to work properly even though lsmas should build with unpatched FFmpeg.)
- [vA.3h] Fixed UV-shift and range error when converting YUV source to RGB output formats. (
core.lsmas.LWLibavSource(a, format="RGB24")
should produce bit-identical output ascore.ffms2.Source(a, format=vs.RGB24)
now.) - [vA.3i] fixed a regression when reading full range YUV files (e.g. JPEG images). The output was labeled as full range in the frame property, but the output is actually converted to limited range.
- [vA.3i] make
Version()
return alwindex_version
key that could be used to test if a given*.lwi
file is usable by this version of lsmas (check if the header of the*.lwi
file matchescore.lsmas.Version()['lwindex_version']
) - [vA.3i] fixed slow seeking of certain m2ts files (#24) introduced in vA.3g (requires a new patch to ffmpeg).
- [vA.3i] Added
_EncodedFrameTop
and_EncodedFrameBottom
frame properties (see HomeOfAviSynthPlusEvolution/L-SMASH-Works#17).
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
Release binaries are built for Windows/x64 (64-bit) and Windows/i686 (32-bit).
vA.3j-internal internal VVC release
This is an internal release for testing purposes only.
Regular users please use https://github.com/AkarinVS/L-SMASH-Works/releases/tag/vA.3j.
It introduces preliminary VVC support (using libvvdec 1.6.0 and ffmpeg 4.4):
- raw VVC bitstream: use
LWLibavSource
. - mp4: use
LibavSMASHSource
; ffmpeg's mp4/mkv demuxers are still buggy and I don't have time to debug yet. - mkv: not supported.
It is a highly experimental build. You have been warned!
vA.5b experimental release with ffmpeg master (5.0)
vA.5b "YuruYuri Summer Vacation!+ +2"
For regression testing purposes only. Bug reports welcome.
When ffmpeg 5.0 is released and proved to be stable, this will become the default release.
Note: [vA.3h] The fix to #19 requires regenerating the lwi index files, therefore this release has bumped the lwi version number and all existing *.lwi files created by previous versions (prior to vA.3h) will have to be recreated.
This prerelease will be updated irregularly, typically when the master branch receives a major bug fix.
Known Issues
- VC-1 indexing might be broken due to a FFmpeg patch not yet ported.
Changelog (since vA.3h)
- [vA.5a] Update FFmpeg to release/5.0 branch: currently using AkarinVS/FFmpeg@9e17d2d, which is branched off AkarinVS/FFmpeg@99d6ab7. Still one patch left to be ported. I think the DNXHD workaround is no longer necessary given this commit.
- [vA.5a] Populate
"DolbyVisionRPU"
frame property to hold the Dolby Vision RPU side data, requires FFmpeg 4.5 commit. Note: this is far from a complete DV solution. More components are needed (at a minimum, a way to decode/encode those binary"DolbyVisionRPU"
frame properties and a way to insert those into x265-encoded hevc stream) and some of them will be proprietary and patented. - [vA.5b] Merged all changes up to release vA.3i.
vA.3i "The Girl Falls Into Darkness"
This fixes (1) a bug when reading JPEG files (the YUV is labeled as full range in the frame property but it's actually converted to limited range in the output clip), this is a regression introduced when fixing vA.3h RGB bug ("Fixed UV-shift and range error when converting YUV source to RGB output formats"); and (2) slow m2ts seeking introduced in vA.3g (#24).
This is a VapourSynth only release.
AviSynth+ users please use https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/releases/tag/20220406, but note that it might not contain all commits included in this release.
Changelog
- [vA.3i] fixed a regression when reading full range YUV files (e.g. JPEG images). The output was labeled as full range in the frame property, but the output is actually converted to limited range.
- [vA.3i] make
Version()
return alwindex_version
key that could be used to test if a given*.lwi
file is usable by this version of lsmas (check if the header of the*.lwi
file matchescore.lsmas.Version()['lwindex_version']
) - [vA.3i] fixed slow seeking of certain m2ts files (#24) introduced in vA.3g (requires a new patch to ffmpeg).
- [vA.3i] Added
_EncodedFrameTop
and_EncodedFrameBottom
frame properties (see HomeOfAviSynthPlusEvolution/L-SMASH-Works#17).
Release Variants
There are three binary release variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release. (Not recommended unless your system periodically cleans up the%TEMP
directory.)
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
- [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
- [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
- [vA.3e] Set
_FrameNumber
frame properties for each frame. - [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
- [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
- [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
- [vA.3f] Fixed #9 (support PNG RGBA64 files)
- [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced
bint soft_reset=1
forLWLibavSource
, which changed codec reset behavior during seeking forLWLibavSource
. - [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's
_Alpha
property as well. - [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
- [vA.3g] Fixes #11 and labels
_Alpha
clips as full range; and #16, which fixes a bug introduced in the fix for #11. - [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
- [vA.3g] Include full file path in error message when failing to create index.
- [vA.3g] Update ffmpeg to v4.4.1; update libfmx to v1.35.1; update dav1d to v0.9.2; update nv-codec-headers to v11.1.5.0.
- [vA.3g] fixed behavior when passing VS predefined format constants to the
format
parameter (e.g.lsmas.LWLibavSource(a, format=vs.YUV420P16)
). (The parameter takes a string, so VS will transformvs.YUV420P16
into the string"PresetFormat.YUV420P16"
, however lsmas used to only recognize"YUV420P16"
.) Now lsmas recognizes this form and will generate a warning message on stderr if the provided format is not recognized. - [vA.3h] Fixed #19 where some frames might fail to decode for certain m2ts files. lwi index file version is bumped, and all existing lwi files created by previous versions will have to be recreated. (This requires corresponding FFmpeg patch 1 and patch 2 to work.) In general, lsmas requires patched FFmpeg to work properly even though lsmas should build with unpatched FFmpeg.)
- [vA.3h] Fixed UV-shift and range error when converting YUV source to RGB output formats. (
core.lsmas.LWLibavSource(a, format="RGB24")
should produce bit-identical output ascore.ffms2.Source(a, format=vs.RGB24)
now.)
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
Release binaries are built for Windows/x64 (64-bit) and Windows/i686 (32-bit).
vA.3h "The Night Will Connect Their Thoughts."
This release fixes #19 twice, which is a serious issue affecting not only random seeking m2ts files but might also sequential encoding, so updating is highly recommended for anyone working with AVC/H.264 m2ts input (i.e. Bluray). Random seeking performance might degrade but there is a price to pay for frame accurate accesses (i.e. we don't tolerate seeking being "off a few frames here and there" and we also don't tolerate occasional broken frame output.)
This is a VapourSynth only release.
AviSynth+ users please use ???
Note: The fix to #19 requires regenerating the lwi index files, therefore this release has bumped the lwi version number and all existing *.lwi files created by previous versions will have to be recreated.
Changelog
- [vA.3h] Fixed #19 where some frames might fail to decode for certain m2ts files. lwi index file version is bumped, and all existing lwi files created by previous versions will have to be recreated. (This requires corresponding FFmpeg patch 1 and patch 2 to work.) In general, lsmas requires patched FFmpeg to work properly even though lsmas should build with unpatched FFmpeg.)
- [vA.3h] Fixed UV-shift and range error when converting YUV source to RGB output formats. (
core.lsmas.LWLibavSource(a, format="RGB24")
should produce bit-identical output ascore.ffms2.Source(a, format=vs.RGB24)
now.)
Release Variants
There are three binary release variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release. (Not recommended unless your system periodically cleans up the%TEMP
directory.)
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
- [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
- [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
- [vA.3e] Set
_FrameNumber
frame properties for each frame. - [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
- [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
- [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
- [vA.3f] Fixed #9 (support PNG RGBA64 files)
- [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced
bint soft_reset=1
forLWLibavSource
, which changed codec reset behavior during seeking forLWLibavSource
. - [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's
_Alpha
property as well. - [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
- [vA.3g] Fixes #11 and labels
_Alpha
clips as full range; and #16, which fixes a bug introduced in the fix for #11. - [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
- [vA.3g] Include full file path in error message when failing to create index.
- [vA.3g] Update ffmpeg to v4.4.1; update libfmx to v1.35.1; update dav1d to v0.9.2; update nv-codec-headers to v11.1.5.0.
- [vA.3g] fixed behavior when passing VS predefined format constants to the
format
parameter (e.g.lsmas.LWLibavSource(a, format=vs.YUV420P16)
). (The parameter takes a string, so VS will transformvs.YUV420P16
into the string"PresetFormat.YUV420P16"
, however lsmas used to only recognize"YUV420P16"
.) Now lsmas recognizes this form and will generate a warning message on stderr if the provided format is not recognized.
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
Release binaries are built for Windows/x64 (64-bit) and Windows/i686 (32-bit).
vA.3g "A Day Something May or May Not Happen"
This release fixes #11, #14, #15, #16.
This is a VapourSynth only release.
AviSynth+ users please use ???
Changelog
- [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
- [vA.3g] Fixes #11 and labels
_Alpha
clips as full range; and #16, which fixes a bug introduced in the fix for #11. - [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
- [vA.3g] Include full file path in error message when failing to create index.
- [vA.3g] Update ffmpeg to v4.4.1; update libfmx to v1.35.1; update dav1d to v0.9.2; update nv-codec-headers to v11.1.5.0.
- [vA.3g] fixed behavior when passing VS predefined format constants to the
format
parameter (e.g.lsmas.LWLibavSource(a, format=vs.YUV420P16)
). (The parameter takes a string, so VS will transformvs.YUV420P16
into the string"PresetFormat.YUV420P16"
, however lsmas used to only recognize"YUV420P16"
.) Now lsmas recognizes this form and will generate a warning message on stderr if the provided format is not recognized.
Release Variants
Otherwise there are no behavior changes in this release, and like the previous release, there are three variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release.
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
- [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
- [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
- [vA.3e] Set
_FrameNumber
frame properties for each frame. - [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
- [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
- [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
- [vA.3f] Fixed #9 (support PNG RGBA64 files)
- [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced
bint soft_reset=1
forLWLibavSource
, which changed codec reset behavior during seeking forLWLibavSource
. - [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's
_Alpha
property as well.
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
Release binaries are built for Windows/x64 (64-bit) and Windows/i686 (32-bit).
vA.3f "[Announcement] YuruYuri Sold Out"
This release fixes #3, #7, #8, #9, #10.
This is a VapourSynth only release.
AviSynth+ users please use ???
New Parameter: soft_reset
LWLibavSource
introduced bint soft_reset=1
that changes video codec reset behavior during seeking (to fix #10). The new default should be safe, but if you encounter seeking issues, please file an issue and switch to the old behavior by setting soft_reset=0
to the arguments.
LibavSMASHSource
and AVS filters are unaffected by this change, and they still use the old reset behavior.
Changelog
- [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
- [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
- [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
- [vA.3f] Fixed #9 (support PNG RGBA64 files)
- [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced
bint soft_reset=1
forLWLibavSource
, which changed codec reset behavior during seeking forLWLibavSource
. - [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's
_Alpha
property as well.
Release Variants
Otherwise there are no behavior changes in this release, and like the previous release, there are three variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release.
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
- [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
- [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
- [vA.3e] Set
_FrameNumber
frame properties for each frame.
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
Release binaries are built for Windows/x64 (64-bit) and Windows/i686 (32-bit).
vA.4 "Achoo" - API v4 support
This release brings experimental upcoming VS v4 API support (the doodle1 branch or R54-API4 releases).
(It is only coincidental that this release is tagged "vA.4" and the codename is taken from YuruYuri S02E04.)
V3 users (i.e. all users not using prerelease VS) please continue to use the previous release vA.3e.
Important note!
Due to vapoursynth/vapoursynth#726, unless you exclusively use v4-capable filters, api4 VS is unable to fully inter-operate with v3 filters that take color family/format constants as arguments (e.g. fmtconv.matrix
), so be aware when testing this.
tl dr; your existing non-trivial vpy script is highly unlikely to work correctly on api4 VS.
Recent VS API4 releases contain a workaround for api3 source filters, so it's unlikely you need to use this release for API4 VS.
The previous release should work fine.
In fact, I'm dropping support for vs-api4 branch altogether as it's unnecessary and I don't feel like maintaining two copies of almost the same code.
This is a VapourSynth only release.
Changelog
- Introduce VS api v4 support, please download those files with
v4
in their names. - Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
Release Variants
Otherwise there are no behavior changes in this release, and like the previous release, there are three variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release.
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
- [vA.3e] Fixed #6 for video only (lsmas was unable to decode some frames in certain m2ts files).
- [vA.3e] Set
_FrameNumber
frame properties for each frame.
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
All the released binaries are for Windows/x64 (64-bit) and Windows/i686 (32-bit).
vA.3e "YuruYuri Everyday", again
This release fixes #6 again (for video only, as VapourSynth plugin does not yet have audio support.)
This is a VapourSynth only release.
AviSynth+ users please use https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works/releases/tag/20210811
(The previous vA.3c release introduces a regression in decoding TV ts files.)
Changelog
- Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
- Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
- Set
_FrameNumber
frame properties for each frame.
4. Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.(will be included in the next release.)
5. Fixed #7 (won't crash VS if given an invalid input file).(will be included in vA.3f release.)
Release Variants
Otherwise there are no behavior changes in this release, and like the previous release, there are three variants (different configurations of -Dcachedir=VALUE
passed to meson
):
- If you prefer the previous cache file behavior (i.e. *.lwi files created along side the source video files, aka
cachedir=""
), please download thecachedir-src
release. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."
), please download thecachedir-cwd
release. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")
), please download thecachedir-tmp
release.
Cumulative Changlog since HolyWu's release 20210423
- [vA.2] Changed default location of *.lwi index files: it will create *.lwi file under the current directory by default (build time configurable via
-Dcachedir
meson option)- set
cachedir=""
to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedir
argument could also be used to store all *.lwi files in a temporary directory, e.g.cachedir=r"d:\tmp"
. - Please also note that the full path of the video is encoded in lwi file name, so there is less chance of file collision.
- set
- [vA.2] Fixed #1,
LWLibavSource
will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1
orrepeat=True
and the source video requests soft pulldown, lsmas will fail if it cannot obey such requests. This change should eliminate most of the guesswork around loading 30fps videos. Eitherrepeat=True
works, or you have to explicitly acknowledge that you want a VFR clip by settingrepeat=False
. (The original non-strict repeat behavior can be enabled withrepeat=2
.) - [vA.3] Added a
lsmas.Version()
function to retrieve the version info of the plugin. - [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
Installation Notes
To avoid confusion with HolyWu's release, my release will use the filename libvslsmashsource.dll
, not LSMASHSource.dll
. If you want to update existing plugins, please rename LSMASHSource.dll
to LSMASHSource.dll.orig
before putting the new libvslsmashsource.dll
in.
All the released binaries are for Windows/x64 (64-bit) and Windows/i686 (32-bit).