mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 07:16:55 +00:00
videoaggregator: redo src caps negotiation if a sink pad's caps have changed in the meantime
https://bugzilla.gnome.org/show_bug.cgi?id=755782
This commit is contained in:
parent
b7065f5f8e
commit
08c52c931e
1 changed files with 8 additions and 0 deletions
|
@ -1448,6 +1448,7 @@ gst_video_aggregator_check_reconfigure (GstVideoAggregator * vagg,
|
|||
|| gst_pad_check_reconfigure (GST_AGGREGATOR_SRC_PAD (vagg))) {
|
||||
gboolean ret;
|
||||
|
||||
restart:
|
||||
ret = gst_video_aggregator_update_src_caps (vagg);
|
||||
if (!ret) {
|
||||
gst_pad_mark_reconfigure (GST_AGGREGATOR_SRC_PAD (vagg));
|
||||
|
@ -1486,6 +1487,13 @@ gst_video_aggregator_check_reconfigure (GstVideoAggregator * vagg,
|
|||
else
|
||||
return GST_FLOW_NOT_NEGOTIATED;
|
||||
}
|
||||
} else {
|
||||
/* It is possible that during gst_video_aggregator_update_src_caps()
|
||||
* we got a caps change on one of the sink pads, in which case we need
|
||||
* to redo the negotiation
|
||||
* - https://bugzilla.gnome.org/show_bug.cgi?id=755782 */
|
||||
if (gst_pad_check_reconfigure (GST_AGGREGATOR_SRC_PAD (vagg)))
|
||||
goto restart;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue