From 214a12838231bea48d13216c16f35d7581d58dfa Mon Sep 17 00:00:00 2001 From: Philippe Kalaf Date: Wed, 27 Sep 2006 00:13:29 +0000 Subject: [PATCH] gst-libs/gst/rtp/gstbasertpaudiopayload.*: Moved AudioCodecType into priv Original commit message from CVS: * gst-libs/gst/rtp/gstbasertpaudiopayload.c: * gst-libs/gst/rtp/gstbasertpaudiopayload.h: Moved AudioCodecType into priv Renamed all gst_basertpaudiopayload to gst_base_rtp_audio_payload prefixes --- ChangeLog | 7 ++ gst-libs/gst/rtp/gstbasertpaudiopayload.c | 102 ++++++++++++++++++------------ gst-libs/gst/rtp/gstbasertpaudiopayload.h | 24 +++---- 3 files changed, 79 insertions(+), 54 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3fc47c7..a00fe42 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-09-26 Philippe Kalaf + + * gst-libs/gst/rtp/gstbasertpaudiopayload.c: + * gst-libs/gst/rtp/gstbasertpaudiopayload.h: + Moved AudioCodecType into priv + Renamed all gst_basertpaudiopayload to gst_base_rtp_audio_payload prefixes + 2006-09-25 Wim Taymans * gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter), diff --git a/gst-libs/gst/rtp/gstbasertpaudiopayload.c b/gst-libs/gst/rtp/gstbasertpaudiopayload.c index 696bf93..7727c48 100644 --- a/gst-libs/gst/rtp/gstbasertpaudiopayload.c +++ b/gst-libs/gst/rtp/gstbasertpaudiopayload.c @@ -30,60 +30,80 @@ GST_DEBUG_CATEGORY_STATIC (basertpaudiopayload_debug); #define GST_CAT_DEFAULT (basertpaudiopayload_debug) -static void gst_basertpaudiopayload_finalize (GObject * object); +typedef enum +{ + AUDIO_CODEC_TYPE_NONE, + AUDIO_CODEC_TYPE_FRAME_BASED, + AUDIO_CODEC_TYPE_SAMPLE_BASED +} AudioCodecType; + +struct _GstBaseRTPAudioPayloadPrivate +{ + AudioCodecType type; +}; + +#define GST_BASE_RTP_AUDIO_PAYLOAD_GET_PRIVATE(o) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((o), GST_BASE_RTP_AUDIO_PAYLOAD, \ + GstBaseRTPAudioPayloadPrivate)) + +static void gst_base_rtp_audio_payload_finalize (GObject * object); static GstFlowReturn -gst_basertpaudiopayload_push (GstBaseRTPPayload * basepayload, guint8 * data, +gst_base_rtp_audio_payload_push (GstBaseRTPPayload * basepayload, guint8 * data, guint payload_len, GstClockTime timestamp); -static GstFlowReturn gst_basertpaudiopayload_handle_buffer (GstBaseRTPPayload * - payload, GstBuffer * buffer); +static GstFlowReturn gst_base_rtp_audio_payload_handle_buffer (GstBaseRTPPayload + * payload, GstBuffer * buffer); static GstFlowReturn -gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload * +gst_base_rtp_audio_payload_handle_frame_based_buffer (GstBaseRTPPayload * basepayload, GstBuffer * buffer); static GstFlowReturn -gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload * +gst_base_rtp_audio_payload_handle_sample_based_buffer (GstBaseRTPPayload * basepayload, GstBuffer * buffer); -GST_BOILERPLATE (GstBaseRTPAudioPayload, gst_basertpaudiopayload, +GST_BOILERPLATE (GstBaseRTPAudioPayload, gst_base_rtp_audio_payload, GstBaseRTPPayload, GST_TYPE_BASE_RTP_PAYLOAD); static void -gst_basertpaudiopayload_base_init (gpointer klass) +gst_base_rtp_audio_payload_base_init (gpointer klass) { } static void -gst_basertpaudiopayload_class_init (GstBaseRTPAudioPayloadClass * klass) +gst_base_rtp_audio_payload_class_init (GstBaseRTPAudioPayloadClass * klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; GstBaseRTPPayloadClass *gstbasertppayload_class; + g_type_class_add_private (klass, sizeof (GstBaseRTPAudioPayloadPrivate)); + gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; gstbasertppayload_class = (GstBaseRTPPayloadClass *) klass; gobject_class->finalize = - GST_DEBUG_FUNCPTR (gst_basertpaudiopayload_finalize); + GST_DEBUG_FUNCPTR (gst_base_rtp_audio_payload_finalize); parent_class = g_type_class_ref (GST_TYPE_BASE_RTP_PAYLOAD); gstbasertppayload_class->handle_buffer = - GST_DEBUG_FUNCPTR (gst_basertpaudiopayload_handle_buffer); + GST_DEBUG_FUNCPTR (gst_base_rtp_audio_payload_handle_buffer); GST_DEBUG_CATEGORY_INIT (basertpaudiopayload_debug, "basertpaudiopayload", 0, "base audio RTP payloader"); } static void -gst_basertpaudiopayload_init (GstBaseRTPAudioPayload * basertpaudiopayload, +gst_base_rtp_audio_payload_init (GstBaseRTPAudioPayload * basertpaudiopayload, GstBaseRTPAudioPayloadClass * klass) { + basertpaudiopayload->priv = GST_BASE_RTP_AUDIO_PAYLOAD_GET_PRIVATE (self); + basertpaudiopayload->base_ts = 0; - basertpaudiopayload->type = AUDIO_CODEC_TYPE_NONE; + basertpaudiopayload->priv->type = AUDIO_CODEC_TYPE_NONE; /* these need to be set by child object if frame based */ basertpaudiopayload->frame_size = 0; @@ -94,7 +114,7 @@ gst_basertpaudiopayload_init (GstBaseRTPAudioPayload * basertpaudiopayload, } static void -gst_basertpaudiopayload_finalize (GObject * object) +gst_base_rtp_audio_payload_finalize (GObject * object) { GstBaseRTPAudioPayload *basertpaudiopayload; @@ -104,7 +124,7 @@ gst_basertpaudiopayload_finalize (GObject * object) } /** - * gst_basertpaudiopayload_set_frame_based: + * gst_base_rtp_audio_payload_set_frame_based: * @basertpaudiopayload: a pointer to the element. * * Tells #GstBaseRTPAudioPayload that the child element is for a frame based @@ -112,18 +132,18 @@ gst_basertpaudiopayload_finalize (GObject * object) * */ void -gst_basertpaudiopayload_set_frame_based (GstBaseRTPAudioPayload * +gst_base_rtp_audio_payload_set_frame_based (GstBaseRTPAudioPayload * basertpaudiopayload) { g_return_if_fail (basertpaudiopayload != NULL); - g_return_if_fail (basertpaudiopayload->type == AUDIO_CODEC_TYPE_NONE); + g_return_if_fail (basertpaudiopayload->priv->type == AUDIO_CODEC_TYPE_NONE); - basertpaudiopayload->type = AUDIO_CODEC_TYPE_FRAME_BASED; + basertpaudiopayload->priv->type = AUDIO_CODEC_TYPE_FRAME_BASED; } /** - * gst_basertpaudiopayload_set_sample_based: + * gst_base_rtp_audio_payload_set_sample_based: * @basertpaudiopayload: a pointer to the element. * * Tells #GstBaseRTPAudioPayload that the child element is for a sample based @@ -131,18 +151,18 @@ gst_basertpaudiopayload_set_frame_based (GstBaseRTPAudioPayload * * */ void -gst_basertpaudiopayload_set_sample_based (GstBaseRTPAudioPayload * +gst_base_rtp_audio_payload_set_sample_based (GstBaseRTPAudioPayload * basertpaudiopayload) { g_return_if_fail (basertpaudiopayload != NULL); - g_return_if_fail (basertpaudiopayload->type == AUDIO_CODEC_TYPE_NONE); + g_return_if_fail (basertpaudiopayload->priv->type == AUDIO_CODEC_TYPE_NONE); - basertpaudiopayload->type = AUDIO_CODEC_TYPE_SAMPLE_BASED; + basertpaudiopayload->priv->type = AUDIO_CODEC_TYPE_SAMPLE_BASED; } /** - * gst_basertpaudiopayload_set_frame_options: + * gst_base_rtp_audio_payload_set_frame_options: * @basertpaudiopayload: a pointer to the element. * @frame_duration: The duraction of an audio frame in milliseconds. * @frame_size: The size of an audio frame in bytes. @@ -151,7 +171,7 @@ gst_basertpaudiopayload_set_sample_based (GstBaseRTPAudioPayload * * */ void -gst_basertpaudiopayload_set_frame_options (GstBaseRTPAudioPayload +gst_base_rtp_audio_payload_set_frame_options (GstBaseRTPAudioPayload * basertpaudiopayload, gint frame_duration, gint frame_size) { g_return_if_fail (basertpaudiopayload != NULL); @@ -161,7 +181,7 @@ gst_basertpaudiopayload_set_frame_options (GstBaseRTPAudioPayload } /** - * gst_basertpaudiopayload_set_sample_options: + * gst_base_rtp_audio_payload_set_sample_options: * @basertpaudiopayload: a pointer to the element. * @sample_size: Size per sample in bytes. * @@ -169,7 +189,7 @@ gst_basertpaudiopayload_set_frame_options (GstBaseRTPAudioPayload * */ void -gst_basertpaudiopayload_set_sample_options (GstBaseRTPAudioPayload +gst_base_rtp_audio_payload_set_sample_options (GstBaseRTPAudioPayload * basertpaudiopayload, gint sample_size) { g_return_if_fail (basertpaudiopayload != NULL); @@ -178,7 +198,7 @@ gst_basertpaudiopayload_set_sample_options (GstBaseRTPAudioPayload } static GstFlowReturn -gst_basertpaudiopayload_handle_buffer (GstBaseRTPPayload * basepayload, +gst_base_rtp_audio_payload_handle_buffer (GstBaseRTPPayload * basepayload, GstBuffer * buffer) { GstFlowReturn ret; @@ -188,11 +208,11 @@ gst_basertpaudiopayload_handle_buffer (GstBaseRTPPayload * basepayload, ret = GST_FLOW_ERROR; - if (basertpaudiopayload->type == AUDIO_CODEC_TYPE_FRAME_BASED) { - ret = gst_basertpaudiopayload_handle_frame_based_buffer (basepayload, + if (basertpaudiopayload->priv->type == AUDIO_CODEC_TYPE_FRAME_BASED) { + ret = gst_base_rtp_audio_payload_handle_frame_based_buffer (basepayload, buffer); - } else if (basertpaudiopayload->type == AUDIO_CODEC_TYPE_SAMPLE_BASED) { - ret = gst_basertpaudiopayload_handle_sample_based_buffer (basepayload, + } else if (basertpaudiopayload->priv->type == AUDIO_CODEC_TYPE_SAMPLE_BASED) { + ret = gst_base_rtp_audio_payload_handle_sample_based_buffer (basepayload, buffer); } else { GST_DEBUG_OBJECT (basertpaudiopayload, "Audio codec type not set"); @@ -203,7 +223,7 @@ gst_basertpaudiopayload_handle_buffer (GstBaseRTPPayload * basepayload, /* this assumes all frames have a constant duration and a constant size */ static GstFlowReturn -gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload * +gst_base_rtp_audio_payload_handle_frame_based_buffer (GstBaseRTPPayload * basepayload, GstBuffer * buffer) { GstBaseRTPAudioPayload *basertpaudiopayload; @@ -233,8 +253,9 @@ gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload * if (!gst_basertppayload_is_filled (basepayload, gst_rtp_buffer_calc_packet_len (GST_BUFFER_SIZE (buffer), 0, 0), GST_BUFFER_DURATION (buffer))) { - ret = gst_basertpaudiopayload_push (basepayload, GST_BUFFER_DATA (buffer), - GST_BUFFER_SIZE (buffer), GST_BUFFER_TIMESTAMP (buffer)); + ret = gst_base_rtp_audio_payload_push (basepayload, + GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer), + GST_BUFFER_TIMESTAMP (buffer)); gst_buffer_unref (buffer); return ret; @@ -273,7 +294,7 @@ gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload * /* currently available */ (available / frame_size) * frame_size); - ret = gst_basertpaudiopayload_push (basepayload, data, payload_len, + ret = gst_base_rtp_audio_payload_push (basepayload, data, payload_len, basertpaudiopayload->base_ts); gfloat ts_inc = (payload_len * frame_duration) / frame_size; @@ -298,7 +319,7 @@ gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload * } static GstFlowReturn -gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload * +gst_base_rtp_audio_payload_handle_sample_based_buffer (GstBaseRTPPayload * basepayload, GstBuffer * buffer) { GstBaseRTPAudioPayload *basertpaudiopayload; @@ -327,8 +348,9 @@ gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload * if (!gst_basertppayload_is_filled (basepayload, gst_rtp_buffer_calc_packet_len (GST_BUFFER_SIZE (buffer), 0, 0), GST_BUFFER_DURATION (buffer))) { - ret = gst_basertpaudiopayload_push (basepayload, GST_BUFFER_DATA (buffer), - GST_BUFFER_SIZE (buffer), GST_BUFFER_TIMESTAMP (buffer)); + ret = gst_base_rtp_audio_payload_push (basepayload, + GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer), + GST_BUFFER_TIMESTAMP (buffer)); gst_buffer_unref (buffer); return ret; @@ -364,7 +386,7 @@ gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload * /* currently available */ available); - ret = gst_basertpaudiopayload_push (basepayload, data, payload_len, + ret = gst_base_rtp_audio_payload_push (basepayload, data, payload_len, basertpaudiopayload->base_ts); gfloat num = payload_len; @@ -386,7 +408,7 @@ gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload * } static GstFlowReturn -gst_basertpaudiopayload_push (GstBaseRTPPayload * basepayload, guint8 * data, +gst_base_rtp_audio_payload_push (GstBaseRTPPayload * basepayload, guint8 * data, guint payload_len, GstClockTime timestamp) { GstBuffer *outbuf; diff --git a/gst-libs/gst/rtp/gstbasertpaudiopayload.h b/gst-libs/gst/rtp/gstbasertpaudiopayload.h index 89db691..56c3b62 100644 --- a/gst-libs/gst/rtp/gstbasertpaudiopayload.h +++ b/gst-libs/gst/rtp/gstbasertpaudiopayload.h @@ -28,8 +28,10 @@ G_BEGIN_DECLS typedef struct _GstBaseRTPAudioPayload GstBaseRTPAudioPayload; typedef struct _GstBaseRTPAudioPayloadClass GstBaseRTPAudioPayloadClass; +typedef struct _GstBaseRTPAudioPayloadPrivate GstBaseRTPAudioPayloadPrivate; + #define GST_TYPE_BASE_RTP_AUDIO_PAYLOAD \ - (gst_basertpaudiopayload_get_type()) + (gst_base_rtp_audio_payload_get_type()) #define GST_BASE_RTP_AUDIO_PAYLOAD(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj), \ GST_TYPE_BASE_RTP_AUDIO_PAYLOAD,GstBaseRTPAudioPayload)) @@ -41,14 +43,10 @@ typedef struct _GstBaseRTPAudioPayloadClass GstBaseRTPAudioPayloadClass; #define GST_IS_BASE_RTP_AUDIO_PAYLOAD_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_RTP_AUDIO_PAYLOAD)) -typedef enum { - AUDIO_CODEC_TYPE_NONE, - AUDIO_CODEC_TYPE_FRAME_BASED, - AUDIO_CODEC_TYPE_SAMPLE_BASED -} AudioCodecType; - struct _GstBaseRTPAudioPayload { + GstBaseRTPAudioPayloadPrivate *priv; + GstBaseRTPPayload payload; GstClockTime base_ts; @@ -57,8 +55,6 @@ struct _GstBaseRTPAudioPayload gint sample_size; - AudioCodecType type; - gpointer _gst_reserved[GST_PADDING]; }; @@ -69,22 +65,22 @@ struct _GstBaseRTPAudioPayloadClass gpointer _gst_reserved[GST_PADDING]; }; -GType gst_basertpaudiopayload_get_type (void); +GType gst_base_rtp_audio_payload_get_type (void); void -gst_basertpaudiopayload_set_frame_based (GstBaseRTPAudioPayload +gst_base_rtp_audio_payload_set_frame_based (GstBaseRTPAudioPayload *basertpaudiopayload); void -gst_basertpaudiopayload_set_sample_based (GstBaseRTPAudioPayload +gst_base_rtp_audio_payload_set_sample_based (GstBaseRTPAudioPayload *basertpaudiopayload); void -gst_basertpaudiopayload_set_frame_options (GstBaseRTPAudioPayload +gst_base_rtp_audio_payload_set_frame_options (GstBaseRTPAudioPayload *basertpaudiopayload, gint frame_duration, gint frame_size); void -gst_basertpaudiopayload_set_sample_options (GstBaseRTPAudioPayload +gst_base_rtp_audio_payload_set_sample_options (GstBaseRTPAudioPayload *basertpaudiopayload, gint sample_size); G_END_DECLS -- 2.7.4