summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2007-04-06 12:28:29 +0000
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2009-08-11 02:30:24 +0100
commita6aa41dc2118c811a5e84246722e8c6e99114c32 (patch)
treecbe7fb62d09d04232dffbba360135b941946b7fb /gst/rtpmanager
parent1b0ae2608f93a9016abd77bdc79db93f0ad58ad8 (diff)
gst/rtpmanager/gstrtpbin.*: Provide a clock.
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init), (gst_rtp_bin_init), (gst_rtp_bin_provide_clock): * gst/rtpmanager/gstrtpbin.h: Provide a clock.
Diffstat (limited to 'gst/rtpmanager')
-rw-r--r--gst/rtpmanager/gstrtpbin.c14
-rw-r--r--gst/rtpmanager/gstrtpbin.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c
index eed07045..5f6551bb 100644
--- a/gst/rtpmanager/gstrtpbin.c
+++ b/gst/rtpmanager/gstrtpbin.c
@@ -312,6 +312,7 @@ static void gst_rtp_bin_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
/* GstElement vmethods */
+static GstClock *gst_rtp_bin_provide_clock (GstElement * element);
static GstStateChangeReturn gst_rtp_bin_change_state (GstElement * element,
GstStateChange transition);
static GstPad *gst_rtp_bin_request_new_pad (GstElement * element,
@@ -361,6 +362,8 @@ gst_rtp_bin_class_init (GstRTPBinClass * klass)
gobject_class->set_property = gst_rtp_bin_set_property;
gobject_class->get_property = gst_rtp_bin_get_property;
+ gstelement_class->provide_clock =
+ GST_DEBUG_FUNCPTR (gst_rtp_bin_provide_clock);
gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_bin_change_state);
gstelement_class->request_new_pad =
GST_DEBUG_FUNCPTR (gst_rtp_bin_request_new_pad);
@@ -373,6 +376,7 @@ static void
gst_rtp_bin_init (GstRTPBin * rtpbin, GstRTPBinClass * klass)
{
rtpbin->priv = GST_RTP_BIN_GET_PRIVATE (rtpbin);
+ rtpbin->provided_clock = gst_system_clock_obtain ();
}
static void
@@ -415,6 +419,16 @@ gst_rtp_bin_get_property (GObject * object, guint prop_id,
}
}
+static GstClock *
+gst_rtp_bin_provide_clock (GstElement * element)
+{
+ GstRTPBin *rtpbin;
+
+ rtpbin = GST_RTP_BIN (element);
+
+ return GST_CLOCK_CAST (gst_object_ref (rtpbin->provided_clock));
+}
+
static GstStateChangeReturn
gst_rtp_bin_change_state (GstElement * element, GstStateChange transition)
{
diff --git a/gst/rtpmanager/gstrtpbin.h b/gst/rtpmanager/gstrtpbin.h
index ccd57a78..f9cfdf2d 100644
--- a/gst/rtpmanager/gstrtpbin.h
+++ b/gst/rtpmanager/gstrtpbin.h
@@ -42,6 +42,7 @@ struct _GstRTPBin {
/* a list of session */
GSList *sessions;
+ GstClock *provided_clock;
/*< private >*/
GstRTPBinPrivate *priv;