mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-30 19:18:31 +00:00
Revert "basetextoverlay: remove dead code"
This reverts commit e863e5f8a9
.
This commit is contained in:
parent
e863e5f8a9
commit
828f0291bf
1 changed files with 34 additions and 26 deletions
|
@ -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 {
|
||||||
|
|
Loading…
Reference in a new issue