Meson unconditionally uses the wrapped bestsource dependency when the
bestsource option is enabled. Update meson.build to support using a
system-provided version of bestsource when it is present.
The previous logic was actually redundant (except in weird edge cases
where it may cause equally weird behavior) since frame props always take
precedence over explicit arguments in VapourSynth's resize.
Actually support all YCbCr Matrix values instead of only a 601 matrix.
Simplify the override logic and move most of it outside of the ffms2
provider so it can be shared with other providers.
Also stop erroring out on unknown video color spaces.
This is not yet perfect (the guessing logic could be improved, invalid
matrices should probably default to TV.601, and the added functions feel
a bit out of place in video_provider_manager.cpp and are partially
redundant with ycbcr_conv.cpp) but it's a lot better and more
maintainable than before.
Actually support all YCbCr Matrix values instead of only a 601 matrix.
Simplify the override logic and move most of it outside of the ffms2
provider so it can be shared with other providers.
Also stop erroring out on unknown video color spaces.
This is not yet perfect (the guessing logic could be improved, invalid
matrices should probably default to TV.601, and the added functions feel
a bit out of place in video_provider_manager.cpp and are partially
redundant with ycbcr_conv.cpp) but it's a lot better and more
maintainable than before.
Actually support all YCbCr Matrix values instead of only a 601 matrix.
Simplify the override logic and move most of it outside of the ffms2
provider so it can be shared with other providers.
Also stop erroring out on unknown video color spaces.
This is not yet perfect (the guessing logic could be improved, invalid
matrices should probably default to TV.601, and the added functions feel
a bit out of place in video_provider_manager.cpp and are partially
redundant with ycbcr_conv.cpp) but it's a lot better and more
maintainable than before.
I do not see a reason to prefer the flat_map implementation,
and it’s causing crashes when compiled with GCC >= 13 and
Boost 1.85.0 at optimization level 2 or higher.
Whether or not this is a bug in GCC, or Boost hitting a case of
undefined behavior, avoiding it altogether doesn’t seem to hurt.
Fixes#137
Some lsmas versions (like HomeOfAviSynthPlusEvolution's, the currently
actively maintained one) support the "cachedir" argument but do not
have a "Version" function. Hence, it's better to just check for the
argument directly.
macos-latest now runs on Apple Silicon, which fails one test
and probably still needs extra work for the packaging to work.
Until that's figured out, run on macos-13.
I was originally planning to eventually rebase the various feature
branches on top of TypesettingTools/Aegisub's master, which switched
to C++20 and added various bigger refactors, but that turned out to
be even more involved than expected (due to the various
interdependencies between branches and the additional commits on feature
complicating rebases). ICU now requires C++17 and BestSource was already
pinned to an old version since newer versions need C++17, so let's just
bump the standard and put off the actual rebasing for later...
Equivalent functionality (allowing dependencies to be meson subprojects
and fixing the zlib HAVE_UNISTD_H issue) was merged upstream now
(thanks kasper), so this is no longer necessary. dav1d is now
enabled using -Dffmpeg:libdav1d=enabled.