Skip to content

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

Pre-release
Pre-release
Compare
Choose a tag to compare
@AkarinVS AkarinVS released this 12 Dec 23:33
· 6 commits to master since this release

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.