summaryrefslogtreecommitdiffstats
path: root/gst/law/alaw-encode.c
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2004-03-14 22:34:33 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2004-03-14 22:34:33 +0000
commit5d25c00e4b613b9cdf2c04fa3a68dffa03834a68 (patch)
tree74a5b1eaf3a324b520e64e87404fd0b3018a7829 /gst/law/alaw-encode.c
parent1e83b097f7b732ae49e294a5a398bdc3e88854a8 (diff)
gst-indent
Original commit message from CVS: gst-indent
Diffstat (limited to 'gst/law/alaw-encode.c')
-rw-r--r--gst/law/alaw-encode.c213
1 files changed, 113 insertions, 100 deletions
diff --git a/gst/law/alaw-encode.c b/gst/law/alaw-encode.c
index 6efdb64f..052f2e00 100644
--- a/gst/law/alaw-encode.c
+++ b/gst/law/alaw-encode.c
@@ -36,23 +36,27 @@ static GstElementDetails alawenc_details = {
};
/* Stereo signals and args */
-enum {
+enum
+{
/* FILL ME */
LAST_SIGNAL
};
-enum {
+enum
+{
ARG_0
};
-static void gst_alawenc_class_init (GstALawEncClass *klass);
-static void gst_alawenc_base_init (GstALawEncClass *klass);
-static void gst_alawenc_init (GstALawEnc *alawenc);
+static void gst_alawenc_class_init (GstALawEncClass * klass);
+static void gst_alawenc_base_init (GstALawEncClass * klass);
+static void gst_alawenc_init (GstALawEnc * alawenc);
-static void gst_alawenc_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
-static void gst_alawenc_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
+static void gst_alawenc_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec);
+static void gst_alawenc_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec);
-static void gst_alawenc_chain (GstPad *pad, GstData *_data);
+static void gst_alawenc_chain (GstPad * pad, GstData * _data);
/*
* s16_to_alaw() - Convert a 16-bit linear PCM value to 8-bit A-law
@@ -74,102 +78,108 @@ static void gst_alawenc_chain (GstPad *pad, GstData *_data);
* John Wiley & Sons, pps 98-111 and 472-476.
*/
-static inline gint val_seg(gint val)
+static inline gint
+val_seg (gint val)
{
- gint r = 1;
- val >>= 8;
- if (val & 0xf0) {
- val >>= 4;
- r += 4;
- }
- if (val & 0x0c) {
- val >>= 2;
- r += 2;
- }
- if (val & 0x02)
- r += 1;
- return r;
+ gint r = 1;
+
+ val >>= 8;
+ if (val & 0xf0) {
+ val >>= 4;
+ r += 4;
+ }
+ if (val & 0x0c) {
+ val >>= 2;
+ r += 2;
+ }
+ if (val & 0x02)
+ r += 1;
+ return r;
}
-static guint8 s16_to_alaw(gint pcm_val)
+static guint8
+s16_to_alaw (gint pcm_val)
{
- gint seg;
- guint8 mask;
- guint8 aval;
-
- if (pcm_val >= 0) {
- mask = 0xD5;
- } else {
- mask = 0x55;
- pcm_val = -pcm_val;
- if (pcm_val > 0x7fff)
- pcm_val = 0x7fff;
- }
-
- if (pcm_val < 256)
- aval = pcm_val >> 4;
- else {
- /* Convert the scaled magnitude to segment number. */
- seg = val_seg(pcm_val);
- aval = (seg << 4) | ((pcm_val >> (seg + 3)) & 0x0f);
- }
- return aval ^ mask;
+ gint seg;
+ guint8 mask;
+ guint8 aval;
+
+ if (pcm_val >= 0) {
+ mask = 0xD5;
+ } else {
+ mask = 0x55;
+ pcm_val = -pcm_val;
+ if (pcm_val > 0x7fff)
+ pcm_val = 0x7fff;
+ }
+
+ if (pcm_val < 256)
+ aval = pcm_val >> 4;
+ else {
+ /* Convert the scaled magnitude to segment number. */
+ seg = val_seg (pcm_val);
+ aval = (seg << 4) | ((pcm_val >> (seg + 3)) & 0x0f);
+ }
+ return aval ^ mask;
}
static GstElementClass *parent_class = NULL;
+
/*static guint gst_stereo_signals[LAST_SIGNAL] = { 0 }; */
static GstPadLinkReturn
-alawenc_link (GstPad *pad, const GstCaps *caps)
+alawenc_link (GstPad * pad, const GstCaps * caps)
{
- GstCaps* tempcaps;
+ GstCaps *tempcaps;
gint rate, channels;
GstStructure *structure;
gboolean ret;
-
- GstALawEnc* alawenc = GST_ALAWENC (GST_OBJECT_PARENT (pad));
-
+
+ GstALawEnc *alawenc = GST_ALAWENC (GST_OBJECT_PARENT (pad));
+
structure = gst_caps_get_structure (caps, 0);
ret = gst_structure_get_int (structure, "rate", &rate);
ret &= gst_structure_get_int (structure, "channels", &channels);
- if (!ret) return GST_PAD_LINK_REFUSED;
-
+ if (!ret)
+ return GST_PAD_LINK_REFUSED;
+
tempcaps = gst_caps_new_simple ("audio/x-alaw",
- "depth", G_TYPE_INT, 8,
- "width", G_TYPE_INT, 8,
- "signed", G_TYPE_BOOLEAN, FALSE,
- "rate", G_TYPE_INT, rate,
- "channels", G_TYPE_INT, channels,
- NULL);
-
+ "depth", G_TYPE_INT, 8,
+ "width", G_TYPE_INT, 8,
+ "signed", G_TYPE_BOOLEAN, FALSE,
+ "rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, channels, NULL);
+
return gst_pad_try_set_caps (alawenc->srcpad, tempcaps);
-}
+}
GType
-gst_alawenc_get_type(void) {
+gst_alawenc_get_type (void)
+{
static GType alawenc_type = 0;
if (!alawenc_type) {
static const GTypeInfo alawenc_info = {
- sizeof(GstALawEncClass),
- (GBaseInitFunc)gst_alawenc_base_init,
+ sizeof (GstALawEncClass),
+ (GBaseInitFunc) gst_alawenc_base_init,
NULL,
- (GClassInitFunc)gst_alawenc_class_init,
+ (GClassInitFunc) gst_alawenc_class_init,
NULL,
NULL,
- sizeof(GstALawEnc),
+ sizeof (GstALawEnc),
0,
- (GInstanceInitFunc)gst_alawenc_init,
+ (GInstanceInitFunc) gst_alawenc_init,
};
- alawenc_type = g_type_register_static(GST_TYPE_ELEMENT, "GstALawEnc", &alawenc_info, 0);
+ alawenc_type =
+ g_type_register_static (GST_TYPE_ELEMENT, "GstALawEnc", &alawenc_info,
+ 0);
}
return alawenc_type;
}
static void
-gst_alawenc_base_init (GstALawEncClass *klass)
+gst_alawenc_base_init (GstALawEncClass * klass)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
@@ -179,74 +189,76 @@ gst_alawenc_base_init (GstALawEncClass *klass)
}
static void
-gst_alawenc_class_init (GstALawEncClass *klass)
+gst_alawenc_class_init (GstALawEncClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
- gobject_class = (GObjectClass*)klass;
- gstelement_class = (GstElementClass*)klass;
+ gobject_class = (GObjectClass *) klass;
+ gstelement_class = (GstElementClass *) klass;
- parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
+ parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
gobject_class->set_property = gst_alawenc_set_property;
gobject_class->get_property = gst_alawenc_get_property;
}
static void
-gst_alawenc_init (GstALawEnc *alawenc)
+gst_alawenc_init (GstALawEnc * alawenc)
{
- alawenc->sinkpad = gst_pad_new_from_template(alawenc_sink_template,"sink");
- alawenc->srcpad = gst_pad_new_from_template(alawenc_src_template,"src");
+ alawenc->sinkpad = gst_pad_new_from_template (alawenc_sink_template, "sink");
+ alawenc->srcpad = gst_pad_new_from_template (alawenc_src_template, "src");
gst_pad_set_link_function (alawenc->sinkpad, alawenc_link);
- gst_element_add_pad(GST_ELEMENT(alawenc),alawenc->sinkpad);
- gst_pad_set_chain_function(alawenc->sinkpad,gst_alawenc_chain);
- gst_element_add_pad(GST_ELEMENT(alawenc),alawenc->srcpad);
+ gst_element_add_pad (GST_ELEMENT (alawenc), alawenc->sinkpad);
+ gst_pad_set_chain_function (alawenc->sinkpad, gst_alawenc_chain);
+ gst_element_add_pad (GST_ELEMENT (alawenc), alawenc->srcpad);
}
static void
-gst_alawenc_chain (GstPad *pad,GstData *_data)
+gst_alawenc_chain (GstPad * pad, GstData * _data)
{
GstBuffer *buf = GST_BUFFER (_data);
GstALawEnc *alawenc;
gint16 *linear_data;
guint8 *alaw_data;
- GstBuffer* outbuf;
+ GstBuffer *outbuf;
gint i;
- g_return_if_fail(pad != NULL);
- g_return_if_fail(GST_IS_PAD(pad));
- g_return_if_fail(buf != NULL);
+ g_return_if_fail (pad != NULL);
+ g_return_if_fail (GST_IS_PAD (pad));
+ g_return_if_fail (buf != NULL);
+
+ alawenc = GST_ALAWENC (GST_OBJECT_PARENT (pad));
+ g_return_if_fail (alawenc != NULL);
+ g_return_if_fail (GST_IS_ALAWENC (alawenc));
- alawenc = GST_ALAWENC(GST_OBJECT_PARENT (pad));
- g_return_if_fail(alawenc != NULL);
- g_return_if_fail(GST_IS_ALAWENC(alawenc));
+ linear_data = (gint16 *) GST_BUFFER_DATA (buf);
+ outbuf = gst_buffer_new ();
+ GST_BUFFER_DATA (outbuf) =
+ (gchar *) g_new (guint8, GST_BUFFER_SIZE (buf) / 2);
+ GST_BUFFER_SIZE (outbuf) = GST_BUFFER_SIZE (buf) / 2;
- linear_data = (gint16 *)GST_BUFFER_DATA(buf);
- outbuf=gst_buffer_new();
- GST_BUFFER_DATA(outbuf) = (gchar*)g_new(guint8,GST_BUFFER_SIZE(buf)/2);
- GST_BUFFER_SIZE(outbuf) = GST_BUFFER_SIZE(buf)/2;
-
- alaw_data = (guint8*)GST_BUFFER_DATA(outbuf);
- for (i = 0; i < GST_BUFFER_SIZE(outbuf); i++) {
+ alaw_data = (guint8 *) GST_BUFFER_DATA (outbuf);
+ for (i = 0; i < GST_BUFFER_SIZE (outbuf); i++) {
*alaw_data = s16_to_alaw (*linear_data);
alaw_data++;
linear_data++;
}
- gst_buffer_unref(buf);
- gst_pad_push(alawenc->srcpad,GST_DATA (outbuf));
+ gst_buffer_unref (buf);
+ gst_pad_push (alawenc->srcpad, GST_DATA (outbuf));
}
static void
-gst_alawenc_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+gst_alawenc_set_property (GObject * object, guint prop_id, const GValue * value,
+ GParamSpec * pspec)
{
GstALawEnc *alawenc;
/* it's not null if we got it, but it might not be ours */
- g_return_if_fail(GST_IS_ALAWENC(object));
- alawenc = GST_ALAWENC(object);
+ g_return_if_fail (GST_IS_ALAWENC (object));
+ alawenc = GST_ALAWENC (object);
switch (prop_id) {
default:
@@ -255,13 +267,14 @@ gst_alawenc_set_property (GObject *object, guint prop_id, const GValue *value, G
}
static void
-gst_alawenc_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+gst_alawenc_get_property (GObject * object, guint prop_id, GValue * value,
+ GParamSpec * pspec)
{
GstALawEnc *alawenc;
/* it's not null if we got it, but it might not be ours */
- g_return_if_fail(GST_IS_ALAWENC(object));
- alawenc = GST_ALAWENC(object);
+ g_return_if_fail (GST_IS_ALAWENC (object));
+ alawenc = GST_ALAWENC (object);
switch (prop_id) {
default: