mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-06 14:32:31 +00:00
uridecodebin: Let the latency query fail if one of the source queries fails
This commit is contained in:
parent
f0f6bd4910
commit
5da04ca3c7
1 changed files with 6 additions and 3 deletions
|
@ -2556,8 +2556,6 @@ decoder_query_latency_fold (const GValue * item, GValue * ret, QueryFold * fold)
|
||||||
GstClockTime min, max;
|
GstClockTime min, max;
|
||||||
gboolean live;
|
gboolean live;
|
||||||
|
|
||||||
g_value_set_boolean (ret, TRUE);
|
|
||||||
|
|
||||||
gst_query_parse_latency (fold->query, &live, &min, &max);
|
gst_query_parse_latency (fold->query, &live, &min, &max);
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (pad,
|
GST_DEBUG_OBJECT (pad,
|
||||||
|
@ -2576,6 +2574,9 @@ decoder_query_latency_fold (const GValue * item, GValue * ret, QueryFold * fold)
|
||||||
|
|
||||||
fold->live = TRUE;
|
fold->live = TRUE;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
GST_LOG_OBJECT (pad, "latency query failed");
|
||||||
|
g_value_set_boolean (ret, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -2656,6 +2657,7 @@ gst_uri_decode_bin_query (GstElement * element, GstQuery * query)
|
||||||
QueryDoneFunction fold_done = NULL;
|
QueryDoneFunction fold_done = NULL;
|
||||||
QueryFold fold_data;
|
QueryFold fold_data;
|
||||||
GValue ret = { 0 };
|
GValue ret = { 0 };
|
||||||
|
gboolean default_ret = FALSE;
|
||||||
|
|
||||||
decoder = GST_URI_DECODE_BIN (element);
|
decoder = GST_URI_DECODE_BIN (element);
|
||||||
|
|
||||||
|
@ -2677,6 +2679,7 @@ gst_uri_decode_bin_query (GstElement * element, GstQuery * query)
|
||||||
fold_func = (GstIteratorFoldFunction) decoder_query_latency_fold;
|
fold_func = (GstIteratorFoldFunction) decoder_query_latency_fold;
|
||||||
fold_init = decoder_query_init;
|
fold_init = decoder_query_init;
|
||||||
fold_done = decoder_query_latency_done;
|
fold_done = decoder_query_latency_done;
|
||||||
|
default_ret = TRUE;
|
||||||
break;
|
break;
|
||||||
case GST_QUERY_SEEKING:
|
case GST_QUERY_SEEKING:
|
||||||
/* iterate and collect durations */
|
/* iterate and collect durations */
|
||||||
|
@ -2692,7 +2695,7 @@ gst_uri_decode_bin_query (GstElement * element, GstQuery * query)
|
||||||
fold_data.query = query;
|
fold_data.query = query;
|
||||||
|
|
||||||
g_value_init (&ret, G_TYPE_BOOLEAN);
|
g_value_init (&ret, G_TYPE_BOOLEAN);
|
||||||
g_value_set_boolean (&ret, FALSE);
|
g_value_set_boolean (&ret, default_ret);
|
||||||
|
|
||||||
iter = gst_element_iterate_src_pads (element);
|
iter = gst_element_iterate_src_pads (element);
|
||||||
GST_DEBUG_OBJECT (element, "Sending query %p (type %d) to src pads",
|
GST_DEBUG_OBJECT (element, "Sending query %p (type %d) to src pads",
|
||||||
|
|
Loading…
Reference in a new issue