From: Zhao Halley Date: Thu, 18 Apr 2013 11:49:42 +0000 (+0800) Subject: do more check in _set_caps of vaapisink when _buffer_alloc is not called X-Git-Tag: accepted/2.0/20130418.160353^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a2e6481f11149dcd5ff7fe74d1cffa5ad2c92d59;p=profile%2Fivi%2Fgstreamer-vaapi.git do more check in _set_caps of vaapisink when _buffer_alloc is not called in webkit video ogg stream, _buffer_alloc isn't called, do more check in _set_caps to initialized image/surface pool for uploading raw yuv frame to vaSurface --- diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c index 672a221..6a02f5f 100755 --- a/gst/vaapi/gstvaapisink.c +++ b/gst/vaapi/gstvaapisink.c @@ -722,8 +722,14 @@ gst_vaapisink_set_caps(GstBaseSink *base_sink, GstCaps *caps) sink->video_width = video_width; sink->video_height = video_height; - if (gst_structure_has_name(structure, "video/x-raw-yuv")) + if (gst_structure_has_name(structure, "video/x-raw-yuv")) { sink->use_video_raw = TRUE; + // in case _buffer_alloc is not called before + if (!gst_vaapi_uploader_ensure_display(sink->uploader, sink->display)) + return GST_FLOW_NOT_SUPPORTED; + if (!gst_vaapi_uploader_ensure_caps(sink->uploader, caps, NULL)) + return GST_FLOW_NOT_SUPPORTED; + } gst_video_parse_caps_pixel_aspect_ratio(caps, &video_par_n, &video_par_d); sink->video_par_n = video_par_n;