Skip to content

Releases: AkarinVS/L-SMASH-Works

vA.3k "Cherry Blossoms in Full Bloom and a Romantic Storm"

12 Dec 23:33
Compare
Choose a tag to compare

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

  1. Fixes #28 (lsmas would crash when cuvid is requested but not available.)
  2. Introduce a _FramePktSize frame property for the raw encoded frame size in bytes.
  3. Introduce framelist argument to LWLibavSource: 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.
  4. Fixed #14 again for yet another form of broken seeks due to missing cue points in webdl mkv files.
  5. 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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release. (Not recommended unless your system periodically cleans up the %TEMP directory.)

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
  6. [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
  7. [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
  8. [vA.3e] Set _FrameNumber frame properties for each frame.
  9. [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
  10. [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
  11. [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
  12. [vA.3f] Fixed #9 (support PNG RGBA64 files)
  13. [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced bint soft_reset=1 for LWLibavSource, which changed codec reset behavior during seeking for LWLibavSource.
  14. [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's _Alpha property as well.
  15. [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
  16. [vA.3g] Fixes #11 and labels _Alpha clips as full range; and #16, which fixes a bug introduced in the fix for #11.
  17. [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
  18. [vA.3g] Include full file path in error message when failing to create index.
  19. [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.
  20. [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 transform vs.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.
  21. [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.)
  22. [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 as core.ffms2.Source(a, format=vs.RGB24) now.)
  23. [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.
  24. [vA.3i] make Version() return a lwindex_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 matches core.lsmas.Version()['lwindex_version'])
  25. [vA.3i] fixed slow seeking of certain m2ts files (#24) introduced in vA.3g (requires a new patch to ffmpeg).
  26. [vA.3i] Added _EncodedFrameTop and _EncodedFrameBottom frame properties (see HomeOfAviSynthPlusEvolution/L-SMASH-Works#17).
  27. [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"

09 Oct 07:25
Compare
Choose a tag to compare

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

  1. 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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release. (Not recommended unless your system periodically cleans up the %TEMP directory.)

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
  6. [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
  7. [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
  8. [vA.3e] Set _FrameNumber frame properties for each frame.
  9. [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
  10. [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
  11. [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
  12. [vA.3f] Fixed #9 (support PNG RGBA64 files)
  13. [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced bint soft_reset=1 for LWLibavSource, which changed codec reset behavior during seeking for LWLibavSource.
  14. [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's _Alpha property as well.
  15. [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
  16. [vA.3g] Fixes #11 and labels _Alpha clips as full range; and #16, which fixes a bug introduced in the fix for #11.
  17. [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
  18. [vA.3g] Include full file path in error message when failing to create index.
  19. [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.
  20. [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 transform vs.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.
  21. [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.)
  22. [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 as core.ffms2.Source(a, format=vs.RGB24) now.)
  23. [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.
  24. [vA.3i] make Version() return a lwindex_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 matches core.lsmas.Version()['lwindex_version'])
  25. [vA.3i] fixed slow seeking of certain m2ts files (#24) introduced in vA.3g (requires a new patch to ffmpeg).
  26. [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

17 Nov 07:31
Compare
Choose a tag to compare
Pre-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)

19 Nov 23:11
Compare
Choose a tag to compare

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)

  1. [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.
  2. [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.
  3. [vA.5b] Merged all changes up to release vA.3i.

vA.3i "The Girl Falls Into Darkness"

28 Jan 01:12
Compare
Choose a tag to compare

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

  1. [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.
  2. [vA.3i] make Version() return a lwindex_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 matches core.lsmas.Version()['lwindex_version'])
  3. [vA.3i] fixed slow seeking of certain m2ts files (#24) introduced in vA.3g (requires a new patch to ffmpeg).
  4. [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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release. (Not recommended unless your system periodically cleans up the %TEMP directory.)

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
  6. [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
  7. [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
  8. [vA.3e] Set _FrameNumber frame properties for each frame.
  9. [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
  10. [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
  11. [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
  12. [vA.3f] Fixed #9 (support PNG RGBA64 files)
  13. [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced bint soft_reset=1 for LWLibavSource, which changed codec reset behavior during seeking for LWLibavSource.
  14. [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's _Alpha property as well.
  15. [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
  16. [vA.3g] Fixes #11 and labels _Alpha clips as full range; and #16, which fixes a bug introduced in the fix for #11.
  17. [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
  18. [vA.3g] Include full file path in error message when failing to create index.
  19. [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.
  20. [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 transform vs.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.
  21. [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.)
  22. [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 as core.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."

29 Nov 10:17
Compare
Choose a tag to compare

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

  1. [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.)
  2. [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 as core.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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release. (Not recommended unless your system periodically cleans up the %TEMP directory.)

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
  6. [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
  7. [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
  8. [vA.3e] Set _FrameNumber frame properties for each frame.
  9. [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
  10. [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
  11. [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
  12. [vA.3f] Fixed #9 (support PNG RGBA64 files)
  13. [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced bint soft_reset=1 for LWLibavSource, which changed codec reset behavior during seeking for LWLibavSource.
  14. [vA.3f] To ensure better api4 compatibility, alpha clips will be also stored in the main clip's _Alpha property as well.
  15. [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
  16. [vA.3g] Fixes #11 and labels _Alpha clips as full range; and #16, which fixes a bug introduced in the fix for #11.
  17. [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
  18. [vA.3g] Include full file path in error message when failing to create index.
  19. [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.
  20. [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 transform vs.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"

26 Sep 20:07
Compare
Choose a tag to compare

This release fixes #11, #14, #15, #16.
This is a VapourSynth only release.
AviSynth+ users please use ???

Changelog

  1. [vA.3g] Fixes #14 where lsmas would fails seek test for mkv file not including full cuepoints for all IDR frames.
  2. [vA.3g] Fixes #11 and labels _Alpha clips as full range; and #16, which fixes a bug introduced in the fix for #11.
  3. [vA.3g] Fixes #15 where lsmas would gives out "failed to open decoder" fatal error when seeking some wmv (vc1) video files.
  4. [vA.3g] Include full file path in error message when failing to create index.
  5. [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.
  6. [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 transform vs.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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release.

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
  6. [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
  7. [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
  8. [vA.3e] Set _FrameNumber frame properties for each frame.
  9. [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
  10. [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
  11. [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
  12. [vA.3f] Fixed #9 (support PNG RGBA64 files)
  13. [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced bint soft_reset=1 for LWLibavSource, which changed codec reset behavior during seeking for LWLibavSource.
  14. [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"

08 Sep 11:31
Compare
Choose a tag to compare

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

  1. [vA.3f] Fixed #3 (interlaced DNX120 Decoding is broken) via custom FFmpeg patch, thanks asd-g.
  2. [vA.3f] Fixed #7 (won't crash VS if given an invalid input file)
  3. [vA.3f] Fixed #8 (failed to return alpha frame if requested after the main clip; seems to affect RGBA PNG only)
  4. [vA.3f] Fixed #9 (support PNG RGBA64 files)
  5. [vA.3f] Fixed #10 (bad seeking of YUV444p10 AVC files), introduced bint soft_reset=1 for LWLibavSource, which changed codec reset behavior during seeking for LWLibavSource.
  6. [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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release.

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
  6. [vA.3e] Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
  7. [vA.3e] Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
  8. [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

07 Aug 01:17
Compare
Choose a tag to compare
Pre-release

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

  1. Introduce VS api v4 support, please download those files with v4 in their names.
  2. 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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release.

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [vA.3b] Enabled hardware acceleration support for nvdec and libmfx (Intel Quick Sync Video).
  6. [vA.3e] Fixed #6 for video only (lsmas was unable to decode some frames in certain m2ts files).
  7. [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

27 Jul 19:24
Compare
Choose a tag to compare

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

  1. Fixed #6 that lsmas was unable to decode some frames in certain m2ts files.
  2. Updated to latest FFmpeg release/4.4 branch (de1132a89113b131831d8edde75214372c983f32).
  3. 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 the cachedir-src release.
  • If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka cachedir="."), please download the cachedir-cwd release.
  • If you prefer to save the cache files inside %TEMP% (aka cachedir=getenv("TEMP")), please download the cachedir-tmp release.

Cumulative Changlog since HolyWu's release 20210423

  1. [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.
  2. [vA.2] Fixed #1, LWLibavSource will respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.)
  3. [vA.2] Fixed #2, if repeat=1 or repeat=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. Either repeat=True works, or you have to explicitly acknowledge that you want a VFR clip by setting repeat=False. (The original non-strict repeat behavior can be enabled with repeat=2.)
  4. [vA.3] Added a lsmas.Version() function to retrieve the version info of the plugin.
  5. [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).