diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2011-06-30 11:35:21 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2011-06-30 12:35:34 +0200 |
commit | 01fcf3f2ed2a1165cf026bf6cd98e6e8faff7cb0 (patch) | |
tree | c54f5ec4d385e3bed258b75b530731f262ad4f7a /gst/cutter | |
parent | 19145ce5f5afec104b80683a98e8b2833b7e0451 (diff) |
cutter: port to 0.11
* use G_DEFINE_TYPE
* adjust to new GstBuffer
* minor misc
Diffstat (limited to 'gst/cutter')
-rw-r--r-- | gst/cutter/gstcutter.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/gst/cutter/gstcutter.c b/gst/cutter/gstcutter.c index 81cc762df..98073c536 100644 --- a/gst/cutter/gstcutter.c +++ b/gst/cutter/gstcutter.c @@ -98,7 +98,8 @@ enum PROP_LEAKY }; -GST_BOILERPLATE (GstCutter, gst_cutter, GstElement, GST_TYPE_ELEMENT); +#define gst_cutter_parent_class parent_class +G_DEFINE_TYPE (GstCutter, gst_cutter, GST_TYPE_ELEMENT); static void gst_cutter_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); @@ -110,26 +111,13 @@ static GstFlowReturn gst_cutter_chain (GstPad * pad, GstBuffer * buffer); static gboolean gst_cutter_get_caps (GstPad * pad, GstCutter * filter); static void -gst_cutter_base_init (gpointer g_class) -{ - GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&cutter_src_factory)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&cutter_sink_factory)); - gst_element_class_set_details_simple (element_class, "Audio cutter", - "Filter/Editor/Audio", - "Audio Cutter to split audio into non-silent bits", - "Thomas Vander Stichele <thomas at apestaart dot org>"); -} - -static void gst_cutter_class_init (GstCutterClass * klass) { GObjectClass *gobject_class; + GstElementClass *element_class; gobject_class = (GObjectClass *) klass; + element_class = (GstElementClass *) klass; gobject_class->set_property = gst_cutter_set_property; gobject_class->get_property = gst_cutter_get_property; @@ -158,10 +146,19 @@ gst_cutter_class_init (GstCutterClass * klass) FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); GST_DEBUG_CATEGORY_INIT (cutter_debug, "cutter", 0, "Audio cutting"); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&cutter_src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&cutter_sink_factory)); + gst_element_class_set_details_simple (element_class, "Audio cutter", + "Filter/Editor/Audio", + "Audio Cutter to split audio into non-silent bits", + "Thomas Vander Stichele <thomas at apestaart dot org>"); } static void -gst_cutter_init (GstCutter * filter, GstCutterClass * g_class) +gst_cutter_init (GstCutter * filter) { filter->sinkpad = gst_pad_new_from_static_template (&cutter_sink_factory, "sink"); @@ -238,6 +235,7 @@ gst_cutter_chain (GstPad * pad, GstBuffer * buf) { GstCutter *filter; gint16 *in_data; + gsize in_size; guint num_samples; gdouble NCS = 0.0; /* Normalized Cumulative Square of buffer */ gdouble RMS = 0.0; /* RMS of signal in buffer */ @@ -257,19 +255,19 @@ gst_cutter_chain (GstPad * pad, GstBuffer * buf) return GST_FLOW_NOT_NEGOTIATED; } - in_data = (gint16 *) GST_BUFFER_DATA (buf); + in_data = (gint16 *) gst_buffer_map (buf, &in_size, NULL, GST_MAP_READ); GST_LOG_OBJECT (filter, "length of prerec buffer: %" GST_TIME_FORMAT, GST_TIME_ARGS (filter->pre_run_length)); /* calculate mean square value on buffer */ switch (filter->width) { case 16: - num_samples = GST_BUFFER_SIZE (buf) / 2; + num_samples = in_size / 2; gst_cutter_calculate_gint16 (in_data, num_samples, &NCS); NMS = NCS / num_samples; break; case 8: - num_samples = GST_BUFFER_SIZE (buf); + num_samples = in_size; gst_cutter_calculate_gint8 ((gint8 *) in_data, num_samples, &NCS); NMS = NCS / num_samples; break; @@ -279,6 +277,8 @@ gst_cutter_chain (GstPad * pad, GstBuffer * buf) break; } + gst_buffer_unmap (buf, in_data, in_size); + filter->silent_prev = filter->silent; RMS = sqrt (NMS); @@ -364,7 +364,7 @@ gst_cutter_get_caps (GstPad * pad, GstCutter * filter) GstCaps *caps; GstStructure *structure; - caps = gst_pad_get_caps (pad); + caps = gst_pad_get_current_caps (pad); if (!caps) { GST_INFO ("no caps on pad %s:%s", GST_DEBUG_PAD_NAME (pad)); return FALSE; |