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
This commit is contained in:
Philippe Kalaf 2006-09-27 00:13:29 +00:00
parent f5a74b2643
commit 214a128382
3 changed files with 79 additions and 54 deletions

View file

@ -1,3 +1,10 @@
2006-09-26 Philippe Kalaf <philippe.kalaf@collabora.co.uk>
* 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 <wim@fluendo.com> 2006-09-25 Wim Taymans <wim@fluendo.com>
* gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter), * gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter),

View file

@ -30,60 +30,80 @@
GST_DEBUG_CATEGORY_STATIC (basertpaudiopayload_debug); GST_DEBUG_CATEGORY_STATIC (basertpaudiopayload_debug);
#define GST_CAT_DEFAULT (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 static GstFlowReturn
gst_basertpaudiopayload_push (GstBaseRTPPayload * basepayload, guint8 * data, gst_base_rtp_audio_payload_push (GstBaseRTPPayload * basepayload, guint8 * data,
guint payload_len, GstClockTime timestamp); guint payload_len, GstClockTime timestamp);
static GstFlowReturn gst_basertpaudiopayload_handle_buffer (GstBaseRTPPayload * static GstFlowReturn gst_base_rtp_audio_payload_handle_buffer (GstBaseRTPPayload
payload, GstBuffer * buffer); * payload, GstBuffer * buffer);
static GstFlowReturn static GstFlowReturn
gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload * gst_base_rtp_audio_payload_handle_frame_based_buffer (GstBaseRTPPayload *
basepayload, GstBuffer * buffer); basepayload, GstBuffer * buffer);
static GstFlowReturn static GstFlowReturn
gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload * gst_base_rtp_audio_payload_handle_sample_based_buffer (GstBaseRTPPayload *
basepayload, GstBuffer * buffer); basepayload, GstBuffer * buffer);
GST_BOILERPLATE (GstBaseRTPAudioPayload, gst_basertpaudiopayload, GST_BOILERPLATE (GstBaseRTPAudioPayload, gst_base_rtp_audio_payload,
GstBaseRTPPayload, GST_TYPE_BASE_RTP_PAYLOAD); GstBaseRTPPayload, GST_TYPE_BASE_RTP_PAYLOAD);
static void static void
gst_basertpaudiopayload_base_init (gpointer klass) gst_base_rtp_audio_payload_base_init (gpointer klass)
{ {
} }
static void static void
gst_basertpaudiopayload_class_init (GstBaseRTPAudioPayloadClass * klass) gst_base_rtp_audio_payload_class_init (GstBaseRTPAudioPayloadClass * klass)
{ {
GObjectClass *gobject_class; GObjectClass *gobject_class;
GstElementClass *gstelement_class; GstElementClass *gstelement_class;
GstBaseRTPPayloadClass *gstbasertppayload_class; GstBaseRTPPayloadClass *gstbasertppayload_class;
g_type_class_add_private (klass, sizeof (GstBaseRTPAudioPayloadPrivate));
gobject_class = (GObjectClass *) klass; gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass; gstelement_class = (GstElementClass *) klass;
gstbasertppayload_class = (GstBaseRTPPayloadClass *) klass; gstbasertppayload_class = (GstBaseRTPPayloadClass *) klass;
gobject_class->finalize = 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); parent_class = g_type_class_ref (GST_TYPE_BASE_RTP_PAYLOAD);
gstbasertppayload_class->handle_buffer = 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, GST_DEBUG_CATEGORY_INIT (basertpaudiopayload_debug, "basertpaudiopayload", 0,
"base audio RTP payloader"); "base audio RTP payloader");
} }
static void static void
gst_basertpaudiopayload_init (GstBaseRTPAudioPayload * basertpaudiopayload, gst_base_rtp_audio_payload_init (GstBaseRTPAudioPayload * basertpaudiopayload,
GstBaseRTPAudioPayloadClass * klass) GstBaseRTPAudioPayloadClass * klass)
{ {
basertpaudiopayload->priv = GST_BASE_RTP_AUDIO_PAYLOAD_GET_PRIVATE (self);
basertpaudiopayload->base_ts = 0; 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 */ /* these need to be set by child object if frame based */
basertpaudiopayload->frame_size = 0; basertpaudiopayload->frame_size = 0;
@ -94,7 +114,7 @@ gst_basertpaudiopayload_init (GstBaseRTPAudioPayload * basertpaudiopayload,
} }
static void static void
gst_basertpaudiopayload_finalize (GObject * object) gst_base_rtp_audio_payload_finalize (GObject * object)
{ {
GstBaseRTPAudioPayload *basertpaudiopayload; 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. * @basertpaudiopayload: a pointer to the element.
* *
* Tells #GstBaseRTPAudioPayload that the child element is for a frame based * Tells #GstBaseRTPAudioPayload that the child element is for a frame based
@ -112,18 +132,18 @@ gst_basertpaudiopayload_finalize (GObject * object)
* *
*/ */
void void
gst_basertpaudiopayload_set_frame_based (GstBaseRTPAudioPayload * gst_base_rtp_audio_payload_set_frame_based (GstBaseRTPAudioPayload *
basertpaudiopayload) basertpaudiopayload)
{ {
g_return_if_fail (basertpaudiopayload != NULL); 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. * @basertpaudiopayload: a pointer to the element.
* *
* Tells #GstBaseRTPAudioPayload that the child element is for a sample based * Tells #GstBaseRTPAudioPayload that the child element is for a sample based
@ -131,18 +151,18 @@ gst_basertpaudiopayload_set_frame_based (GstBaseRTPAudioPayload *
* *
*/ */
void void
gst_basertpaudiopayload_set_sample_based (GstBaseRTPAudioPayload * gst_base_rtp_audio_payload_set_sample_based (GstBaseRTPAudioPayload *
basertpaudiopayload) basertpaudiopayload)
{ {
g_return_if_fail (basertpaudiopayload != NULL); 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. * @basertpaudiopayload: a pointer to the element.
* @frame_duration: The duraction of an audio frame in milliseconds. * @frame_duration: The duraction of an audio frame in milliseconds.
* @frame_size: The size of an audio frame in bytes. * @frame_size: The size of an audio frame in bytes.
@ -151,7 +171,7 @@ gst_basertpaudiopayload_set_sample_based (GstBaseRTPAudioPayload *
* *
*/ */
void void
gst_basertpaudiopayload_set_frame_options (GstBaseRTPAudioPayload gst_base_rtp_audio_payload_set_frame_options (GstBaseRTPAudioPayload
* basertpaudiopayload, gint frame_duration, gint frame_size) * basertpaudiopayload, gint frame_duration, gint frame_size)
{ {
g_return_if_fail (basertpaudiopayload != NULL); 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. * @basertpaudiopayload: a pointer to the element.
* @sample_size: Size per sample in bytes. * @sample_size: Size per sample in bytes.
* *
@ -169,7 +189,7 @@ gst_basertpaudiopayload_set_frame_options (GstBaseRTPAudioPayload
* *
*/ */
void void
gst_basertpaudiopayload_set_sample_options (GstBaseRTPAudioPayload gst_base_rtp_audio_payload_set_sample_options (GstBaseRTPAudioPayload
* basertpaudiopayload, gint sample_size) * basertpaudiopayload, gint sample_size)
{ {
g_return_if_fail (basertpaudiopayload != NULL); g_return_if_fail (basertpaudiopayload != NULL);
@ -178,7 +198,7 @@ gst_basertpaudiopayload_set_sample_options (GstBaseRTPAudioPayload
} }
static GstFlowReturn static GstFlowReturn
gst_basertpaudiopayload_handle_buffer (GstBaseRTPPayload * basepayload, gst_base_rtp_audio_payload_handle_buffer (GstBaseRTPPayload * basepayload,
GstBuffer * buffer) GstBuffer * buffer)
{ {
GstFlowReturn ret; GstFlowReturn ret;
@ -188,11 +208,11 @@ gst_basertpaudiopayload_handle_buffer (GstBaseRTPPayload * basepayload,
ret = GST_FLOW_ERROR; ret = GST_FLOW_ERROR;
if (basertpaudiopayload->type == AUDIO_CODEC_TYPE_FRAME_BASED) { if (basertpaudiopayload->priv->type == AUDIO_CODEC_TYPE_FRAME_BASED) {
ret = gst_basertpaudiopayload_handle_frame_based_buffer (basepayload, ret = gst_base_rtp_audio_payload_handle_frame_based_buffer (basepayload,
buffer); buffer);
} else if (basertpaudiopayload->type == AUDIO_CODEC_TYPE_SAMPLE_BASED) { } else if (basertpaudiopayload->priv->type == AUDIO_CODEC_TYPE_SAMPLE_BASED) {
ret = gst_basertpaudiopayload_handle_sample_based_buffer (basepayload, ret = gst_base_rtp_audio_payload_handle_sample_based_buffer (basepayload,
buffer); buffer);
} else { } else {
GST_DEBUG_OBJECT (basertpaudiopayload, "Audio codec type not set"); 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 */ /* this assumes all frames have a constant duration and a constant size */
static GstFlowReturn static GstFlowReturn
gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload * gst_base_rtp_audio_payload_handle_frame_based_buffer (GstBaseRTPPayload *
basepayload, GstBuffer * buffer) basepayload, GstBuffer * buffer)
{ {
GstBaseRTPAudioPayload *basertpaudiopayload; GstBaseRTPAudioPayload *basertpaudiopayload;
@ -233,8 +253,9 @@ gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload *
if (!gst_basertppayload_is_filled (basepayload, if (!gst_basertppayload_is_filled (basepayload,
gst_rtp_buffer_calc_packet_len (GST_BUFFER_SIZE (buffer), 0, 0), gst_rtp_buffer_calc_packet_len (GST_BUFFER_SIZE (buffer), 0, 0),
GST_BUFFER_DURATION (buffer))) { GST_BUFFER_DURATION (buffer))) {
ret = gst_basertpaudiopayload_push (basepayload, GST_BUFFER_DATA (buffer), ret = gst_base_rtp_audio_payload_push (basepayload,
GST_BUFFER_SIZE (buffer), GST_BUFFER_TIMESTAMP (buffer)); GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer),
GST_BUFFER_TIMESTAMP (buffer));
gst_buffer_unref (buffer); gst_buffer_unref (buffer);
return ret; return ret;
@ -273,7 +294,7 @@ gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload *
/* currently available */ /* currently available */
(available / frame_size) * frame_size); (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); basertpaudiopayload->base_ts);
gfloat ts_inc = (payload_len * frame_duration) / frame_size; gfloat ts_inc = (payload_len * frame_duration) / frame_size;
@ -298,7 +319,7 @@ gst_basertpaudiopayload_handle_frame_based_buffer (GstBaseRTPPayload *
} }
static GstFlowReturn static GstFlowReturn
gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload * gst_base_rtp_audio_payload_handle_sample_based_buffer (GstBaseRTPPayload *
basepayload, GstBuffer * buffer) basepayload, GstBuffer * buffer)
{ {
GstBaseRTPAudioPayload *basertpaudiopayload; GstBaseRTPAudioPayload *basertpaudiopayload;
@ -327,8 +348,9 @@ gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload *
if (!gst_basertppayload_is_filled (basepayload, if (!gst_basertppayload_is_filled (basepayload,
gst_rtp_buffer_calc_packet_len (GST_BUFFER_SIZE (buffer), 0, 0), gst_rtp_buffer_calc_packet_len (GST_BUFFER_SIZE (buffer), 0, 0),
GST_BUFFER_DURATION (buffer))) { GST_BUFFER_DURATION (buffer))) {
ret = gst_basertpaudiopayload_push (basepayload, GST_BUFFER_DATA (buffer), ret = gst_base_rtp_audio_payload_push (basepayload,
GST_BUFFER_SIZE (buffer), GST_BUFFER_TIMESTAMP (buffer)); GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer),
GST_BUFFER_TIMESTAMP (buffer));
gst_buffer_unref (buffer); gst_buffer_unref (buffer);
return ret; return ret;
@ -364,7 +386,7 @@ gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload *
/* currently available */ /* currently available */
available); available);
ret = gst_basertpaudiopayload_push (basepayload, data, payload_len, ret = gst_base_rtp_audio_payload_push (basepayload, data, payload_len,
basertpaudiopayload->base_ts); basertpaudiopayload->base_ts);
gfloat num = payload_len; gfloat num = payload_len;
@ -386,7 +408,7 @@ gst_basertpaudiopayload_handle_sample_based_buffer (GstBaseRTPPayload *
} }
static GstFlowReturn static GstFlowReturn
gst_basertpaudiopayload_push (GstBaseRTPPayload * basepayload, guint8 * data, gst_base_rtp_audio_payload_push (GstBaseRTPPayload * basepayload, guint8 * data,
guint payload_len, GstClockTime timestamp) guint payload_len, GstClockTime timestamp)
{ {
GstBuffer *outbuf; GstBuffer *outbuf;

View file

@ -28,8 +28,10 @@ G_BEGIN_DECLS
typedef struct _GstBaseRTPAudioPayload GstBaseRTPAudioPayload; typedef struct _GstBaseRTPAudioPayload GstBaseRTPAudioPayload;
typedef struct _GstBaseRTPAudioPayloadClass GstBaseRTPAudioPayloadClass; typedef struct _GstBaseRTPAudioPayloadClass GstBaseRTPAudioPayloadClass;
typedef struct _GstBaseRTPAudioPayloadPrivate GstBaseRTPAudioPayloadPrivate;
#define GST_TYPE_BASE_RTP_AUDIO_PAYLOAD \ #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) \ #define GST_BASE_RTP_AUDIO_PAYLOAD(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), \ (G_TYPE_CHECK_INSTANCE_CAST((obj), \
GST_TYPE_BASE_RTP_AUDIO_PAYLOAD,GstBaseRTPAudioPayload)) GST_TYPE_BASE_RTP_AUDIO_PAYLOAD,GstBaseRTPAudioPayload))
@ -41,14 +43,10 @@ typedef struct _GstBaseRTPAudioPayloadClass GstBaseRTPAudioPayloadClass;
#define GST_IS_BASE_RTP_AUDIO_PAYLOAD_CLASS(klass) \ #define GST_IS_BASE_RTP_AUDIO_PAYLOAD_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_RTP_AUDIO_PAYLOAD)) (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 struct _GstBaseRTPAudioPayload
{ {
GstBaseRTPAudioPayloadPrivate *priv;
GstBaseRTPPayload payload; GstBaseRTPPayload payload;
GstClockTime base_ts; GstClockTime base_ts;
@ -57,8 +55,6 @@ struct _GstBaseRTPAudioPayload
gint sample_size; gint sample_size;
AudioCodecType type;
gpointer _gst_reserved[GST_PADDING]; gpointer _gst_reserved[GST_PADDING];
}; };
@ -69,22 +65,22 @@ struct _GstBaseRTPAudioPayloadClass
gpointer _gst_reserved[GST_PADDING]; gpointer _gst_reserved[GST_PADDING];
}; };
GType gst_basertpaudiopayload_get_type (void); GType gst_base_rtp_audio_payload_get_type (void);
void void
gst_basertpaudiopayload_set_frame_based (GstBaseRTPAudioPayload gst_base_rtp_audio_payload_set_frame_based (GstBaseRTPAudioPayload
*basertpaudiopayload); *basertpaudiopayload);
void void
gst_basertpaudiopayload_set_sample_based (GstBaseRTPAudioPayload gst_base_rtp_audio_payload_set_sample_based (GstBaseRTPAudioPayload
*basertpaudiopayload); *basertpaudiopayload);
void void
gst_basertpaudiopayload_set_frame_options (GstBaseRTPAudioPayload gst_base_rtp_audio_payload_set_frame_options (GstBaseRTPAudioPayload
*basertpaudiopayload, gint frame_duration, gint frame_size); *basertpaudiopayload, gint frame_duration, gint frame_size);
void void
gst_basertpaudiopayload_set_sample_options (GstBaseRTPAudioPayload gst_base_rtp_audio_payload_set_sample_options (GstBaseRTPAudioPayload
*basertpaudiopayload, gint sample_size); *basertpaudiopayload, gint sample_size);
G_END_DECLS G_END_DECLS