summaryrefslogtreecommitdiffstats
path: root/gst/rtpmux/gstrtpmux.c
diff options
context:
space:
mode:
authorzeeshan.ali@nokia.com <zeeshan.ali@nokia.com>2007-03-29 13:52:23 +0000
committerEdward Hervey <bilboed@bilboed.com>2009-02-21 17:48:53 +0100
commitdd7639beb616b1a1b9def5036593bbffab1c14e3 (patch)
tree16fd3737ebb1ca57cf66c4af0d7e0cef9250c26f /gst/rtpmux/gstrtpmux.c
parentf224378822e841153d26f26b0a64871db795d25c (diff)
downloadgst-plugins-bad-dd7639beb616b1a1b9def5036593bbffab1c14e3.tar.gz
gst-plugins-bad-dd7639beb616b1a1b9def5036593bbffab1c14e3.tar.bz2
gst-plugins-bad-dd7639beb616b1a1b9def5036593bbffab1c14e3.zip
[MOVED FROM GST-P-FARSIGHT] Refactorize state_change
20070329135223-65035-23a0107b2e397710f035c6e88cc0e49b65bb4d5d.gz
Diffstat (limited to 'gst/rtpmux/gstrtpmux.c')
-rw-r--r--gst/rtpmux/gstrtpmux.c50
1 files changed, 23 insertions, 27 deletions
diff --git a/gst/rtpmux/gstrtpmux.c b/gst/rtpmux/gstrtpmux.c
index 22665562..91884c39 100644
--- a/gst/rtpmux/gstrtpmux.c
+++ b/gst/rtpmux/gstrtpmux.c
@@ -439,11 +439,31 @@ gst_rtp_mux_set_property (GObject * object,
}
}
+static void
+gst_rtp_mux_ready_to_paused (GstRTPMux * rtp_mux)
+{
+ if (rtp_mux->ssrc == -1)
+ rtp_mux->current_ssrc = g_random_int ();
+ else
+ rtp_mux->current_ssrc = rtp_mux->ssrc;
+
+ if (rtp_mux->seqnum_offset == -1)
+ rtp_mux->seqnum_base = g_random_int_range (0, G_MAXUINT16);
+ else
+ rtp_mux->seqnum_base = rtp_mux->seqnum_offset;
+ rtp_mux->seqnum = rtp_mux->seqnum_base;
+
+ if (rtp_mux->ts_offset == -1)
+ rtp_mux->ts_base = g_random_int ();
+ else
+ rtp_mux->ts_base = rtp_mux->ts_offset;
+ GST_DEBUG_OBJECT (rtp_mux, "set clock-base to %u", rtp_mux->ts_base);
+}
+
static GstStateChangeReturn
gst_rtp_mux_change_state (GstElement * element, GstStateChange transition)
{
GstRTPMux *rtp_mux;
- GstStateChangeReturn ret;
rtp_mux = GST_RTP_MUX (element);
@@ -451,22 +471,7 @@ gst_rtp_mux_change_state (GstElement * element, GstStateChange transition)
case GST_STATE_CHANGE_NULL_TO_READY:
break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
- if (rtp_mux->ssrc == -1)
- rtp_mux->current_ssrc = g_random_int ();
- else
- rtp_mux->current_ssrc = rtp_mux->ssrc;
-
- if (rtp_mux->seqnum_offset == -1)
- rtp_mux->seqnum_base = g_random_int_range (0, G_MAXUINT16);
- else
- rtp_mux->seqnum_base = rtp_mux->seqnum_offset;
- rtp_mux->seqnum = rtp_mux->seqnum_base;
-
- if (rtp_mux->ts_offset == -1)
- rtp_mux->ts_base = g_random_int ();
- else
- rtp_mux->ts_base = rtp_mux->ts_offset;
- GST_DEBUG_OBJECT (rtp_mux, "set clock-base to %u", rtp_mux->ts_base);
+ gst_rtp_mux_ready_to_paused (rtp_mux);
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
break;
@@ -474,16 +479,7 @@ gst_rtp_mux_change_state (GstElement * element, GstStateChange transition)
break;
}
- ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
- if (ret == GST_STATE_CHANGE_FAILURE)
- return ret;
-
- switch (transition) {
- default:
- break;
- }
-
- return ret;
+ return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
}
gboolean