New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression: VDPAU no longer used for some videos #2347
Comments
Newer VLC also uses this API (I don't know if it's in any VLC release yet, maybe not), so it should show the same behavior. Anyway, constrained baseline certainly should work if higher profiles are available. Maybe you can upload a sample file, so I don't have to generate one? |
This should give you a file that doesn't work on my setup.
edit: Further, specifying -f1000 instead will select a format that works correctly on current git master. Although these are slightly different files, nothing changes with respect to the bug report above. |
It's probably a case of the driver not advertising constrained baseline support even though the hardware can handle it. Check with vdpauinfo. In this case, use --vd-lavc-check-hw-profile=no. I have some videos downloaded from Youtube (they're baseline profile) that by default aren't hardware decoded with vaapi, disabling profile checking does the trick. |
vdpauinfo output:
--vd-lavc-check-hw-profile=no does not help. edit: "API version: 1" ? Is that a problem? |
Indeed, the driver lists constrained baseline as not supported. But --vd-lavc-check-hw-profile=no should have worked. I'm using vaapi on Intel here, where the situation is exactly the opposite as yours, "constrained baseline" is supported, while "baseline" isn't. I downloaded that clip, it's hardware decoded by default here. Pick any youtube format 18 video (youtube-dl -f18 https://www.youtube.com/watch?v=video_code_here), they're baseline profile. It's for those that I need to disable profile checking. |
This was a bug in the constrained baseline fallback in libavcodec. (But normally, the driver should report CBP as supported if it's supported, so it's the driver's fault too.) Patch is on libav-devel. This will actually be fixed as soon as that patch makes it in, and you use a libavcodec with the patch included.
|
Thank you very much. I'd like to also get my driver fixed. Which project is responsible for exposing this profile? The radeon driver in mesa? Libvdpau, libdrm, something else entirely? Where should I complain? |
You have Radeon but there is a similar issue with nvidia-352, it has limited vdpau support for some reason. Where as nvidia-355 is more complete as far as h.264 & mpv will end up using vdpau decoding on your simple files |
Hi,
although I have had this problem for some time, I just now decided to look into it.
I am on an up-to-date Arch Linux system with the following software versions:
FFmpeg 2.8
Mesa 11.0, radeon driver r600
mpv 0.11.0 (+ current git master)
Some videos (H.264 in particular, not sure about other formats) that mpv played with VDPAU hardware decoding a few months ago are only played using software decoding now. Similar videos that should only differ in bit rate and resolution (I just noticed different profiles as well) are fine. I tested the options "--vo=opengl --hwdec=vdpau", "--vo=opengl-hq --hwdec=vdpau" and "--vo=vdpau --hwdec=vdpau" and there doesn't seem to be a difference in behavior.
ffprobe output for a problematic file:
ffprobe output for a non-problematic file:
I decided to do a git bisect and it blamed the following commit:
On commit 0699a6c (the one before 6f5a105), everything is fine.
mpv output on 0699a6c:
mpv output on 6f5a105:
mpv output on v0.11.0:
VLC correctly uses VDPAU hardware decoding for this file.
Best regards and thanks for your work on mpv,
Andreas
The text was updated successfully, but these errors were encountered: