vA.3k "Cherry Blossoms in Full Bloom and a Romantic Storm"
Pre-releaseThis 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.