upload: fallback to prepare videobuffers for raw data
authorWind Yuan <feng.yuan@intel.com>
Wed, 24 Apr 2013 08:25:15 +0000 (16:25 +0800)
committerWind Yuan <feng.yuan@intel.com>
Thu, 25 Apr 2013 08:00:40 +0000 (16:00 +0800)
 Upstream element may not call gst_pad_alloc_buffer for
 raw yuv format data even direct_rendering equal to 1.
 This is common case, vaapiupload still need to prepare
 videobuffers and ignore direct_rendering.

gst/vaapi/gstvaapiupload.c

index 6e08c5b..2bd7942 100644 (file)
@@ -482,8 +482,8 @@ gst_vaapiupload_prepare_output_buffer(
         buffer = gst_vaapi_video_buffer_new_from_buffer(inbuf);
     else if (GST_VAAPI_IS_VIDEO_BUFFER(inbuf->parent))
         buffer = gst_vaapi_video_buffer_new_from_buffer(inbuf->parent);
-    else
-        buffer = NULL;
+    else /* inbuf doesn't come from gst_vaapiupload_sinkpad_buffer_alloc */
+        buffer = gst_vaapi_uploader_get_buffer(upload->uploader);
     if (!buffer)
         return GST_FLOW_UNEXPECTED;