If running from inside out-of-tree build, the shaders were not located -
now look them up in srcdir (if the the formerly looked shader directory
doesn't exist).
When supported by the display, this eliminates the conversion eg. to
Y416 for video display because UYVY or v210 are 4:2:2. But the conversion
went over UYVY anyways (there was no conv from Y444 keeping subsampling), eg:
`$ uv -t testcard:c=vuya -d gl`
was originally:
```
./src/libavcodec/from_lavc_vid_conv.c: selected conversion from yuv444p to Y416 with UYVY intermediate.
```
now VUYA is selected
to avoid unintended change in behavior because the behavior for VC_NONE
has changed
It should perhaps not be called on VC_NONE but if so, we should perhaps
catch and investigate that.
somehow more readable - the flag may be also searched directly
PRORES has set interframe=TRUE, perhaps irrelevant - not preserved
+ fix warning (0.0->0 conversion for block_size_pixels)
almost everytime when opaque=TRUE, the subsampling is 0
An exception was VDPAU which has set both opaque=1 and subsampling=4440
but it seem that the subsampling doesn't need to be necessarily set.
Also for VC_NONE is_codec_opaque() returns newly true (VC_OPAQUE=0).
winsock2.h (include from utils/net.h) should be included prior to
windows.h, otherwise windows.h includes winsock.h (version 1), that
is incompatible. WIN32_LEAN_AND_MEAN causes some headers not being
included with windows.h (including winsock.h).
assume that FFmpeg is already patched with SVT-VP9 patch
As a side effect, the SVT-VP9 patch doesn't need to be patched (these
patches conflicted because VP9 applied after HEVC, which is now not
the case).
The patch no longer compiles with upstream FFmpeg (moreover the history
of 5000 commits is now too shallow.
Use a updated custom version now - the SVT-HEVC is archived, anyways so
the upstream won't be updated.
Seems to work correctly now (aside that it converted to BT.601 by the
device, not BT.709, which is an outstanding issue with RGB formats passed
to QSV).
Set the metadata for parallel conversion later - av_frame_make_writable()
may actually alter that (at least pointer but perhaps also linesize), those
old values might have been invalidated by that lavc call.
This reverts commit a30a8945e3.
This doesn't seem to be required anymore (at least xv30 and yuvx work
with Arc A770 and Raptor Lake-P GPU on i7-1355U).
As the patches need to be applied against specific version of FFmpeg
(pinned in db308b17 2023-02-03). Currently the version is from 23th Dec
2024, which is slightly old. That is a half of the year but we also
depend on the cartwheel version bump, which is a bit unfortunate, whereas
is now not cerain, if there is something needed.
Since the pulsation issue, it was not much usable, anyways and this
clean-ups the code a bit.
Also the behavior will be now more deterministic - it behaved differently
with patched FFmpeg (most likely GH Linux builds), othewrise differntly.
+ enable the header-inserter if user expliclty requesetd intra-refresh
refers to GH-114
Avoid pulsation with inra-refresh by repeating the missing SPS/PPS with
header inseter.
Unfortunately this is doesn't work well with HEVC because it seems that
the NVIDIA encoder keeps the reference almost forever in specific cases,
eg. `testcard:patt=text`. However, it _may_ work under some circumstances.
Due to recent changes, libavcodec initialization fails because trying
to register the lavc module prior to vcomp.
This crashes due to the recent changes but it has been a dark zone so far.
Initialize the vcomp module correctly prior to the lavc.
+ add assert to module_register that would catch this problem
The test was still using module_done to destroy compress - this was
incorrect the commit 0557730 (2024-03-08) but didn't crash because struct
compress_state still has struct module as first member (the test is also
not run by CI).
to allow multiple calls of module_done to same state (as keyboard_control
is called).
otherwise dump-tree would fail
This acutally revers the commit 33bdcb48 (2020-03-13).
Unsure if the name is really needed except the hd-rum-translator where it
may not need to store this in module - removing that may be considered as
it simplifies the code (added with commit c1b0bd8f2).