gstreamer-vaapi fails with vdpau-va-driver, Nvidia and Radeon GPUs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GStreamer |
Invalid
|
Medium
|
|||
vdpau-video (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Trusty |
Fix Released
|
Undecided
|
Marco Trevisan (Treviño) | ||
Utopic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
Gstreamer fails when gstreamer-vaapi hardware decoding is used trough vdpau-va-driver when using nvidia, nouveau, ati or radeonsi drivers with the following error message:
gst-launch-1.0: vdpau_decode.
[Test Case]
sudo apt-get install gstreamer1.0-vaapi mesa-vdpau-drivers vdpau-va-driver
gst-launch-1.0 test_file.mp4
The video should play now, and in any case no crash should happen now.
[Regression Potential]
The changes are based on git commits now included in the latest stable release (0.7.4), and does not change the way things work, but ensure that the buffers are correctly allocated and deleted.
Thus the regression potential is very low.
--
Gstreamer fails when gstreamer-vaapi hardware decoding is used trough vdpau-va-driver with NVIDIA binary drivers with the following error message:
gst-launch-0.10: vdpau_decode.
Example pipeline:
gst-launch-0.10 -vvv filesrc location=test.h64 ! queue ! h264parse ! queue ! vaapidecode ! vaapisink fullscreen=yes
The bug was produced in 13.10
vdpau-va-
libvdpau1:amd64 0.6-2
nvidia-319 319.32-0ubuntu6
gstreamer0.
gstreamer0.
The bug was also reproduced in 13.04
13.04, with default system packages.
A workaround only applicable to gstreamer-0.10
Example pipeline:
gst-launch-0.10 -vvv filesrc location=test.h64 ! queue ! h264parse ! queue ! vaapidecode use-ffmpeg=true ! vaapisink fullscreen=yes
Related branches
- Martin Pitt: Approve
-
Diff: 4699 lines (+4523/-11)17 files modified.pc/01_dont_clear_va_buffer_too_early.patch/src/vdpau_buffer.c (+257/-0)
.pc/01_dont_clear_va_buffer_too_early.patch/src/vdpau_buffer.h (+115/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_buffer.c (+259/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_buffer.h (+116/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_decode.c (+1271/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_video.c (+995/-0)
.pc/03_mark_destroyed_buffers_as_deleted.patch/src/vdpau_decode.c (+1264/-0)
.pc/applied-patches (+3/-0)
debian/changelog (+7/-0)
debian/patches/01_dont_clear_va_buffer_too_early.patch (+56/-0)
debian/patches/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch (+111/-0)
debian/patches/03_mark_destroyed_buffers_as_deleted.patch (+28/-0)
debian/patches/series (+3/-0)
src/vdpau_buffer.c (+24/-1)
src/vdpau_buffer.h (+8/-0)
src/vdpau_decode.c (+4/-10)
src/vdpau_video.c (+2/-0)
- Martin Pitt: Approve
-
Diff: 4699 lines (+4523/-11)17 files modified.pc/01_dont_clear_va_buffer_too_early.patch/src/vdpau_buffer.c (+257/-0)
.pc/01_dont_clear_va_buffer_too_early.patch/src/vdpau_buffer.h (+115/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_buffer.c (+259/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_buffer.h (+116/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_decode.c (+1271/-0)
.pc/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch/src/vdpau_video.c (+995/-0)
.pc/03_mark_destroyed_buffers_as_deleted.patch/src/vdpau_decode.c (+1264/-0)
.pc/applied-patches (+3/-0)
debian/changelog (+7/-0)
debian/patches/01_dont_clear_va_buffer_too_early.patch (+56/-0)
debian/patches/02_purge_va_buffers_on_context_destroy_or_new_picture_decode_seq.patch (+111/-0)
debian/patches/03_mark_destroyed_buffers_as_deleted.patch (+28/-0)
debian/patches/series (+3/-0)
src/vdpau_buffer.c (+24/-1)
src/vdpau_buffer.h (+8/-0)
src/vdpau_decode.c (+4/-10)
src/vdpau_video.c (+2/-0)
- Iain Lane: Approve
-
Diff: 389 lines (+334/-2)6 files modified.pc/applied-patches (+1/-0)
.pc/libva-constants.patch/src/vdpau_dump.c (+310/-0)
debian/changelog (+1/-0)
debian/patches/libva-constants.patch (+21/-0)
debian/patches/series (+1/-0)
src/vdpau_dump.c (+0/-2)
description: | updated |
description: | updated |
Changed in gstreamer: | |
importance: | Unknown → Medium |
status: | Unknown → New |
Changed in gstreamer-vaapi (Ubuntu): | |
status: | Confirmed → Invalid |
Changed in vdpau-video (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → Marco Trevisan (Treviño) (3v1n0) |
Changed in gstreamer: | |
status: | New → Invalid |
tags: |
added: verification-failed removed: verification-needed |
Changed in vdpau-video (Ubuntu Trusty): | |
status: | Fix Committed → In Progress |
no longer affects: | gstreamer-vaapi (Ubuntu Utopic) |
no longer affects: | gstreamer-vaapi (Ubuntu Trusty) |
no longer affects: | gstreamer-vaapi (Ubuntu) |
Status changed to 'Confirmed' because the bug affects multiple users.