AV_PIX_FMT_YUV420P10LE is a decoded raw video format. Accelerating it does not make sense.
AMD VDPAU drivers are notoriously terrible.
VLC VDPAU support is codec-agnostic anyhow, so if it doesn't work it's down to either VDPAU being disabled in the build, or a problem with FFmpeg or the drivers.
With no further substantial info that would point to a VLC issue, I have to close this, sorry.
VLC 3.20.0 offers me the following hardware-accelerated decoding options:
Automatic
VDPAU video decoder
Disabled
So it's not that VDPAU is a good option, just that it is the only option. As of right now, this HEVC video file is falling back to software decoding on my PC, which drops too many frames to be usable.
AV_PIX_FMT_YUV420P10LE is a decoded raw video format. Accelerating it does not make sense.
I am not a graphics programmer, but since VLC demonstrably isn't using VDPAU to decode my example file, you're just making a semantic complaint about my description of the problem rather than addressing its substance.
AMD VDPAU drivers are notoriously terrible.
The VDPAU driver in my current installation of Mesa 24.1.0-devel is good enough for mpv:
$ mpv --vo=gpu-next --hwdec=vdpau <HEVC-File> (+) Video --vid=1 (*) (hevc 3840x2160 24.000fps) (+) Audio --aid=1 (*) (aac 6ch 48000Hz)Using hardware decoding (vdpau).[ffmpeg/audio] aac: This stream seems to incorrectly report its last channel as LFE[3], mapping to LFE[0]AO: [pipewire] 48000Hz 5.1 6ch floatpVO: [gpu-next] 3840x2160 vdpau[yuv420p10]AV: 00:00:47 / 00:00:47 (100%) A-V: 0.000Exiting... (End of file)
The mpv playback here drops only 2 frames at most, and is perfectly watchable.
VLC VDPAU support is codec-agnostic anyhow, so if it doesn't work it's down to either VDPAU being disabled in the build, or a problem with FFmpeg or the drivers.
I actually spent a considerable amount of time last night debugging why VLC doesn't select VDPAU, and I observed that in ffmpeg_OpenVa():
Chris Rankinchanged title from VLC 3.20.0 cannot hardware accelerate video decoding for AV_PIX_FMT_YUV420P10LE. to VLC 3.20.0 cannot hardware accelerate video decoding for 10 bit HEVC.
changed title from VLC 3.20.0 cannot hardware accelerate video decoding for AV_PIX_FMT_YUV420P10LE. to VLC 3.20.0 cannot hardware accelerate video decoding for 10 bit HEVC.
VLC 3.20.0 offers me the following hardware-accelerated decoding options
Upstream VLC supports VDPAU (for NV) and VA-API (for Intel, AMD and Nouveau). If there is a problem with your VLC build rather than upstream, please take if with your packager. Upstream here can do nothing about packaging problems.
Since Fedora 39, VLC is in Fedora main repositories. However, the current VLC version 3.0 requires an old FFmpeg (version 4) in order for VA-API support to work. Fedora 39 contains FFmpeg version 6. For this reason, VLC 3.0 is unable to leverage VA-API support.
This problem should be resolved once VLC 4.0 is released.
This effectively makes VDPAU the only game in town for VLC.
This effectively makes VDPAU the only game in town for VLC.
And that's obviously a Fedora, not upstream, problem.
VLC 3.0 works fine with VA-API and that's the recommended and only supported setup for non-NVIDIA cards as we upstream are concerned. Besides, VLC 3.0 does not support HDR with VDPAU at all, regardless of the avcodec situation.
Besides, VLC 3.0 does not support HDR with VDPAU at all, ...
This is probably my main concern, since I have no way of knowing when VLC 4.0 will be released. But if VLC 3.0 could at least do something reasonable with VDPAU for NVIDIA cards then I could investigate any extra AMD / Mesa problems myself.
you're just making a semantic complaint about my description of the problem rather than addressing its substance.
You are being abusive and I will be ignoring you going forward.
The VDPAU driver in my current installation of Mesa 24.1.0-devel is good enough for mpv
And yet that same driver is notorious for failing under VLC, if not crashing the GPU or the whole system, in cases where the reference API-conforming NVIDIA driver works fine.
You are being abusive and I will be ignoring you going forward.
No, you are just reacting badly to valid criticism, exactly like you did on #27163 (closed) last year.
And yet that same driver is notorious for failing under VLC, if not crashing the GPU or the whole system, in cases where the reference API-conforming NVIDIA driver works fine.
Oh, I agree. But I've been working with the Mesa developers to address those problems before coming here. As I said, mpv is now decoding this exact same HEVC file correctly using VDPAU.
I also notice that you have suddenly raised #4959 to fix a bug that you have just realised exists...