From 9894c6ad51e860fbc4474703c0a3e67a950ac359 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 6 Apr 2007 12:28:29 +0000 Subject: [PATCH] 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. --- ChangeLog | 7 +++++++ gst/rtpmanager/gstrtpbin.c | 14 ++++++++++++++ gst/rtpmanager/gstrtpbin.h | 1 + 3 files changed, 22 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1803c45e24..0d4732a7fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-04-06 Wim Taymans + + * 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. + 2007-04-06 Wim Taymans * gst/rtpmanager/gstrtpbin.c: (create_rtcp): diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index eed0704500..5f6551bb81 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 ccd57a78ab..f9cfdf2d9a 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;