GNOME Bugzilla – Bug 759893
vaapipostproc crashes when negotiates ANY caps
Last modified: 2016-01-19 11:48:19 UTC
Running the following pipeline crashes gst-launch-1.0 videotestsrc num-buffers=10000 ! video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)320\,\ height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\ interlace-mode\=\(string\)progressive\,\ pixel-aspect-ratio\=\(fraction\)1/1 ! vaapipostproc ! vaapiencode_h265 ! fakesink -v libva info: VA-API version 0.38.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_38 libva info: va_openDriver() returns 0 (gst-launch-1.0:24941): GStreamer-CRITICAL **: gst_caps_get_structure: assertion 'index < GST_CAPS_LEN (caps)' failed (gst-launch-1.0:24941): GStreamer-CRITICAL **: gst_structure_fixate: assertion 'GST_IS_STRUCTURE (structure)' failed (gdb) bt
+ Trace 235845
NB: Hardware is Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
mmmhh... it looks like we should handle the ANY caps when negotiating the caps in vaapipostroc. This shorten version of the pipeline also reproduce the error: gst-launch-1.0 videotestsrc num-buffers=10000 ! video/x-raw,format=I420,width=320,height=240,framerate=30/1,interlace-mode=progressive ! vaapipostproc ! vaapisink What surprise me is that removing the interlace-mode property (or any other else) the pipeline is negotiated correctly.
Created attachment 319026 [details] [review] vaapipostproc: check ANY caps at transform_caps() When transforming downstream caps we should check for ANY caps from peer pad, otherwise we get a segmentation fault. Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Review of attachment 319026 [details] [review]: lgtm
Attachment 319026 [details] pushed as b8da44b - vaapipostproc: check ANY caps at transform_caps()