Revert "basetextoverlay: remove dead code"

This reverts commit e863e5f8a9.
This commit is contained in:
Nicolas Dufresne 2015-07-02 10:27:39 -04:00
parent e863e5f8a9
commit 828f0291bf

View file

@ -698,13 +698,13 @@ gst_base_text_overlay_setcaps_txt (GstBaseTextOverlay * overlay, GstCaps * caps)
static gboolean static gboolean
gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps) gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps)
{ {
gboolean upstream_has_meta = FALSE;
gboolean caps_has_meta = FALSE; gboolean caps_has_meta = FALSE;
gboolean alloc_has_meta = FALSE; gboolean alloc_has_meta = FALSE;
gboolean attach = FALSE; gboolean attach = FALSE;
gboolean ret = TRUE; gboolean ret = TRUE;
GstCapsFeatures *f; GstCapsFeatures *f;
GstCaps *overlay_caps; GstCaps *overlay_caps;
GstQuery *query;
GST_DEBUG_OBJECT (overlay, "performing negotiation"); GST_DEBUG_OBJECT (overlay, "performing negotiation");
@ -722,40 +722,48 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps)
GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION); GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION);
} }
/* First check if the allocation meta has compositon */ if (upstream_has_meta) {
query = gst_query_new_allocation (caps, FALSE); overlay_caps = gst_caps_ref (caps);
} else {
GstQuery *query;
if (!gst_pad_peer_query (overlay->srcpad, query)) { /* First check if the allocation meta has compositon */
/* no problem, we use the query defaults */ query = gst_query_new_allocation (caps, FALSE);
GST_DEBUG_OBJECT (overlay, "ALLOCATION query failed");
/* In case we were flushing, mark reconfigure and fail this method, if (!gst_pad_peer_query (overlay->srcpad, query)) {
* will make it retry */ /* no problem, we use the query defaults */
if (overlay->video_flushing) GST_DEBUG_OBJECT (overlay, "ALLOCATION query failed");
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);
gst_query_unref (query);
/* 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);
caps_has_meta = gst_pad_peer_query_accept_caps (overlay->srcpad,
overlay_caps);
} }
alloc_has_meta = gst_query_find_allocation_meta (query,
GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, NULL);
gst_query_unref (query);
/* 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);
caps_has_meta = gst_pad_peer_query_accept_caps (overlay->srcpad,
overlay_caps);
/* For backward compatbility, we will prefer bliting if downstream /* For backward compatbility, we will prefer bliting if downstream
* allocation does not support the meta. In other case we will prefer * allocation does not support the meta. In other case we will prefer
* attaching, and will fail the negotiation in the unlikely case we are * attaching, and will fail the negotiation in the unlikely case we are
* force to blit, but format isn't supported. */ * force to blit, but format isn't supported. */
if (caps_has_meta) { if (upstream_has_meta) {
attach = TRUE;
} else if (caps_has_meta) {
if (alloc_has_meta) { if (alloc_has_meta) {
attach = TRUE; attach = TRUE;
} else { } else {