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-srcrelease. - If you prefer the new cache file behavior (i.e. *.lwi files created in the current working directory, aka
cachedir="."), please download thecachedir-cwdrelease. - If you prefer to save the cache files inside %TEMP% (aka
cachedir=getenv("TEMP")), please download thecachedir-tmprelease. (Not recommended unless your system periodically cleans up the%TEMPdirectory.)
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
-Dcachedirmeson option)- set
cachedir=""to restore previous behavior (store *.lwi file at the same directory as the source video.) - The newly added
cachedirargument 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,
LWLibavSourcewill respect mpeg2 soft pulldown flag in more cases (especially in mpeg2 program streams.) - [vA.2] Fixed #2, if
repeat=1orrepeat=Trueand 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=Trueworks, 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
_FrameNumberframe 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=1forLWLibavSource, 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
_Alphaproperty 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
_Alphaclips 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
formatparameter (e.g.lsmas.LWLibavSource(a, format=vs.YUV420P16)). (The parameter takes a string, so VS will transformvs.YUV420P16into 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_versionkey that could be used to test if a given*.lwifile is usable by this version of lsmas (check if the header of the*.lwifile 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
_EncodedFrameTopand_EncodedFrameBottomframe 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).