diff options
Diffstat (limited to 'ext/pango/gstbasetextoverlay.c')
-rw-r--r-- | ext/pango/gstbasetextoverlay.c | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c index 301db50d5..b832ea00c 100644 --- a/ext/pango/gstbasetextoverlay.c +++ b/ext/pango/gstbasetextoverlay.c @@ -698,13 +698,13 @@ gst_base_text_overlay_setcaps_txt (GstBaseTextOverlay * overlay, GstCaps * caps) static gboolean gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps) { - gboolean upstream_has_meta = FALSE; gboolean caps_has_meta = FALSE; gboolean alloc_has_meta = FALSE; gboolean attach = FALSE; gboolean ret = TRUE; GstCapsFeatures *f; GstCaps *overlay_caps; + GstQuery *query; GST_DEBUG_OBJECT (overlay, "performing negotiation"); @@ -722,48 +722,40 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps) GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION); } - if (upstream_has_meta) { - overlay_caps = gst_caps_ref (caps); - } else { - GstQuery *query; - - /* First check if the allocation meta has compositon */ - query = gst_query_new_allocation (caps, FALSE); + /* First check if the allocation meta has compositon */ + query = gst_query_new_allocation (caps, FALSE); - if (!gst_pad_peer_query (overlay->srcpad, query)) { - /* no problem, we use the query defaults */ - GST_DEBUG_OBJECT (overlay, "ALLOCATION query failed"); + if (!gst_pad_peer_query (overlay->srcpad, query)) { + /* no problem, we use the query defaults */ + GST_DEBUG_OBJECT (overlay, "ALLOCATION query failed"); - /* In case we were flushing, mark reconfigure and fail this method, - * will make it retry */ - if (overlay->video_flushing) - ret = FALSE; - } + /* In case we were flushing, mark reconfigure and fail this method, + * will make it retry */ + if (overlay->video_flushing) + ret = FALSE; + } - alloc_has_meta = gst_query_find_allocation_meta (query, - GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, NULL); + alloc_has_meta = gst_query_find_allocation_meta (query, + GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, NULL); - gst_query_unref (query); + gst_query_unref (query); - /* Then check if downstream accept overlay composition in caps */ - overlay_caps = gst_caps_copy (caps); + /* Then check if downstream accept overlay composition in caps */ + overlay_caps = gst_caps_copy (caps); - f = gst_caps_get_features (overlay_caps, 0); - gst_caps_features_add (f, - GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION); + f = gst_caps_get_features (overlay_caps, 0); + gst_caps_features_add (f, + GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION); - caps_has_meta = gst_pad_peer_query_accept_caps (overlay->srcpad, - overlay_caps); - } + caps_has_meta = gst_pad_peer_query_accept_caps (overlay->srcpad, + overlay_caps); /* For backward compatbility, we will prefer bliting if downstream * allocation does not support the meta. In other case we will prefer * attaching, and will fail the negotiation in the unlikely case we are * force to blit, but format isn't supported. */ - if (upstream_has_meta) { - attach = TRUE; - } else if (caps_has_meta) { + if (caps_has_meta) { if (alloc_has_meta) { attach = TRUE; } else { |