mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
rtpmux: deal with all the gst_iterator_next() return values
20070528122808-f3f1e-d301644c3be7633ec6dc5e28596e9346d2da6a50.gz
This commit is contained in:
parent
de40874670
commit
baa48dc6bc
1 changed files with 18 additions and 6 deletions
|
@ -188,18 +188,30 @@ static gboolean gst_rtp_mux_src_event (GstPad * pad,
|
||||||
GstIterator *iter;
|
GstIterator *iter;
|
||||||
GstPad *sinkpad;
|
GstPad *sinkpad;
|
||||||
gboolean result = FALSE;
|
gboolean result = FALSE;
|
||||||
|
gboolean done = FALSE;
|
||||||
|
|
||||||
rtp_mux = gst_pad_get_parent_element (pad);
|
rtp_mux = gst_pad_get_parent_element (pad);
|
||||||
g_return_val_if_fail (rtp_mux != NULL, FALSE);
|
g_return_val_if_fail (rtp_mux != NULL, FALSE);
|
||||||
|
|
||||||
iter = gst_element_iterate_sink_pads (rtp_mux);
|
iter = gst_element_iterate_sink_pads (rtp_mux);
|
||||||
|
|
||||||
while (gst_iterator_next (iter, (gpointer) &sinkpad) == GST_ITERATOR_OK) {
|
while (!done) {
|
||||||
gst_event_ref (event);
|
switch (gst_iterator_next (iter, (gpointer) &sinkpad)) {
|
||||||
result = gst_pad_push_event (sinkpad, event);
|
case GST_ITERATOR_OK:
|
||||||
gst_object_unref (sinkpad);
|
gst_event_ref (event);
|
||||||
if (result)
|
result = gst_pad_push_event (sinkpad, event);
|
||||||
break;
|
gst_object_unref (sinkpad);
|
||||||
|
if (result)
|
||||||
|
done = TRUE;
|
||||||
|
break;
|
||||||
|
case GST_ITERATOR_RESYNC:
|
||||||
|
gst_iterator_resync (iter);
|
||||||
|
break;
|
||||||
|
case GST_ITERATOR_ERROR:
|
||||||
|
case GST_ITERATOR_DONE:
|
||||||
|
done = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gst_event_unref (event);
|
gst_event_unref (event);
|
||||||
|
|
Loading…
Reference in a new issue