mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 07:47:17 +00:00
basetextoverlay: Do not fail the negotiation if query fails
The allocation query failure doesn't mean that the negotiation has failed as the element can allocate buffers itself. Instead, only fail if the pads are flushing and the allocation query failed. https://bugzilla.gnome.org/show_bug.cgi?id=735844
This commit is contained in:
parent
6babe786f7
commit
3ecb8bea22
1 changed files with 9 additions and 5 deletions
|
@ -724,6 +724,7 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps)
|
|||
GstCapsFeatures *f;
|
||||
GstCaps *original_caps;
|
||||
gboolean original_has_meta = FALSE;
|
||||
gboolean allocation_ret = TRUE;
|
||||
|
||||
GST_DEBUG_OBJECT (overlay, "performing negotiation");
|
||||
|
||||
|
@ -780,7 +781,7 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps)
|
|||
if (!gst_pad_peer_query (overlay->srcpad, query)) {
|
||||
/* no problem, we use the query defaults */
|
||||
GST_DEBUG_OBJECT (overlay, "ALLOCATION query failed");
|
||||
ret = FALSE;
|
||||
allocation_ret = FALSE;
|
||||
}
|
||||
|
||||
if (caps_has_meta && gst_query_find_allocation_meta (query,
|
||||
|
@ -792,10 +793,8 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps)
|
|||
|
||||
overlay->attach_compo_to_buffer = attach;
|
||||
|
||||
if (!ret && overlay->video_flushing) {
|
||||
GST_DEBUG_OBJECT (overlay, "negotiation failed, schedule reconfigure");
|
||||
gst_pad_mark_reconfigure (overlay->srcpad);
|
||||
|
||||
if (!allocation_ret && overlay->video_flushing) {
|
||||
ret = FALSE;
|
||||
} else if (original_caps && !original_has_meta && !attach) {
|
||||
if (caps_has_meta) {
|
||||
/* Some elements (fakesink) claim to accept the meta on caps but won't
|
||||
|
@ -809,6 +808,11 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps)
|
|||
}
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
GST_DEBUG_OBJECT (overlay, "negotiation failed, schedule reconfigure");
|
||||
gst_pad_mark_reconfigure (overlay->srcpad);
|
||||
}
|
||||
|
||||
gst_caps_unref (caps);
|
||||
|
||||
return ret;
|
||||
|
|
Loading…
Reference in a new issue