Shmsink SEGSEV with NV12
adrien_sch
adrien.schwartzentruber at gmail.com
Fri Dec 6 13:35:46 PST 2013
My pipeline is quite simple :
filesrc ! asfdemux ! h264parse ! vaapidecode ! videoconvert ! shmsink
I had a closer look on my pipeline, and i observed that the stream
resolution change anormally after the decoder (example : 1920x1080 to
1920x1088). I had a look in vaapidecode.c in the function update_src_caps
and i found this :
#if GST_CHECK_VERSION(1,1,0)
vis = *vi;
if (GST_VIDEO_INFO_FORMAT(vi) == GST_VIDEO_FORMAT_ENCODED) {
/* XXX: this is a workaround until auto-plugging is fixed when
format=ENCODED + memory:VASurface caps feature are provided.
Meanwhile, providing a random format here works but this is
a terribly wrong thing per se. */
gst_video_info_set_format(&vis, GST_VIDEO_FORMAT_NV12,
GST_VIDEO_INFO_WIDTH(vi), GST_VIDEO_INFO_HEIGHT(vi));
}
The consequence of this workaround may be the cause of the segmentation
fault in shmsink. To confirm, I tried my pipeline is 1.0 and it worked as
expected. I will fill a bug to explain this case, from my point of view,
shmsink isn't the source of the error.
For the unsuported profile and decodebin, I was surprise as you that the
hardware acceleration wasn"t available for the baseline profile, but as I
said, this is coherent with the vainfo output :
libva: VA-API version 0.32.0
Xlib: extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA-API version: 0.32 (libva 1.0.15)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API -
0.7.3
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG4Simple : VAEntrypointVLD
VAProfileMPEG4AdvancedSimple : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
I will make more test, to get more informations about the decodebin behavior
in this case, for sure, it doesn't work as espected in this case.
Btw, I had a lot of difficulties to get the vaapi works with some pipeline
(tried unsuccefully to convert NV12 to something else (after the decoder,
from a videotestsrc that works) , or use xvimagesink instead of vaapisink).
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Shmsink-SEGSEV-with-NV12-tp4663830p4663915.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list