FS#45365 - no video in vlc, hardware accelerator failed to decode picture

Attached to Project: Arch Linux
Opened by Chris (kitteboss) - Wednesday, 17 June 2015, 20:34 GMT
Last edited by Doug Newgard (Scimmia) - Friday, 19 June 2015, 02:11 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To No-one
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

vlc doesn't show any video output after moving to xf86-video-intel 2.99.917.20150616-2

By changing hardware accelerated decoding to something else then VDPAU in the vlc settings the video is playing fine.

Also downgrading to xf86-video-intel 2.99.917-5 resolves the issue (with an vlc error message in the command line saying libvdpau_i965.so not found)


Additional info:
* package version(s)

xf86-video-intel 2.99.917.20150616-2
vlc 2.2.1-6

* config and/or log files etc.

vlc command line output:

[VS] Software VDPAU backend library initialized
libva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_37
libva info: va_openDriver() returns 0
[00007f6ade4f39c8] avcodec decoder: Using OpenGL/VAAPI/libswscale backend for VDPAU for hardware decoding.
[h264 @ 0x7f6ade50a220] hardware accelerator failed to decode picture
[h264 @ 0x7f6ade5962a0] hardware accelerator failed to decode picture
[h264 @ 0x7f6ade5dda00] hardware accelerator failed to decode picture
[h264 @ 0x7f6ade625160] hardware accelerator failed to decode picture
[h264 @ 0x7f6ade50a220] hardware accelerator failed to decode picture
[00007f6ab8001268] vdpau_display vout display error: video mixer surface width capabilities query failure: VDP_STATUS_NO_IMPLEMENTATION
[h264 @ 0x7f6ade5962a0] hardware accelerator failed to decode picture
[VS] error (vdpVideoSurfaceGetBitsYCbCr): not implemented conversion VA FOURCC k -> VDP_YCBCR_FORMAT_YV12
[00007f6ab88e52a8] vdpau_chroma filter error: video surface export failure: VDP_STATUS_INVALID_Y_CB_CR_FORMAT
[VS] error (vdpVideoSurfaceGetBitsYCbCr): not implemented conversion VA FOURCC -> VDP_YCBCR_FORMAT_YV12
[00007f6ab88e52a8] vdpau_chroma filter error: video surface export failure: VDP_STATUS_INVALID_Y_CB_CR_FORMAT



Steps to reproduce:

Play a video using h264 video encoding after installing the mentioned package versions.
This task depends upon

Closed by  Doug Newgard (Scimmia)
Friday, 19 June 2015, 02:11 GMT
Reason for closing:  Not a bug
Additional comments about closing:  Configuration issue
Comment by Doug Newgard (Scimmia) - Thursday, 18 June 2015, 15:36 GMT
Intel does not support VDPAU.
Comment by U (Gusar) - Thursday, 18 June 2015, 15:59 GMT
I'm surprised it worked for you before, libvdpau-va-gl hasn't worked for me for some time now. Don't use it. Configure VLC to use VAAPI for decoding and OpenGL as video output - don't leave video output at "default", it'll use Xv then which isn't optimal when combined with VAAPI decoding, explicitly set OpenGL for output.
Comment by Chris (kitteboss) - Thursday, 18 June 2015, 16:54 GMT
@Gusar Thanks a lot for the infos, I will consider this.
vlc should not use VDPAU as default on intel machines if it's not supported. "default" seemed fine up until now. But with the latest intel driver it somehow does use VDPAU (or at least tries to).
Comment by U (Gusar) - Thursday, 18 June 2015, 18:24 GMT
It's not the Intel driver that tries to use VDPAU. It's that when an application is configured to use it (VLC is by default), this application will try to load libvdpau_${DRIVER_NAME}.so. The driver name for Intel is i965 (or i915 for older GPUs), so VLC tries to load libvdpau_i965.so. But libvdpau_i965.so doesn't exist, because as Scimmia noted, Intel doesn't support VPDAU. Nothing wrong with that, because VLC will simply fall back to other methods if loading VDPAU fails.


> "default" seemed fine up until now

Keyword "seemed". Video playback is quite complex actually, there's the presentation/output part and the decoding part, and various different methods to do them (Xv, OpenGL, VDPAU, VAAPI, ...). Some of these interact better than others. Then there's wrappers, like libvdpau-va-gl. They make things seem to work fine, but when you check actual resource usage, you'll find that things aren't fine at all.
Comment by Chris (kitteboss) - Thursday, 18 June 2015, 18:46 GMT
Okay, thanks for the help. As you can see I'm not an expert in the video playback stuff. :)

Loading...