From 80dc806b65ddecdea47ebd1032f35f48f9490b44 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 13 Sep 2007 17:31:16 +0000 Subject: gst/level/gstlevel.*: Use basetransform segment so that it is correctly managed on flushes and start/stop. Original commit message from CVS: * gst/level/gstlevel.c: (gst_level_class_init), (gst_level_start), (gst_level_transform_ip): * gst/level/gstlevel.h: Use basetransform segment so that it is correctly managed on flushes and start/stop. Report message timestamp as stream time, which is what an application can understand. --- ChangeLog | 10 ++++++++++ gst/level/gstlevel.c | 34 +--------------------------------- gst/level/gstlevel.h | 2 -- 3 files changed, 11 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index c22a67cb..9e528184 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-09-13 Wim Taymans + + * gst/level/gstlevel.c: (gst_level_class_init), (gst_level_start), + (gst_level_transform_ip): + * gst/level/gstlevel.h: + Use basetransform segment so that it is correctly managed on flushes and + start/stop. + Report message timestamp as stream time, which is what an application + can understand. + 2007-09-13 Sebastian Dröge * ext/taglib/gstapev2mux.cc: diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c index 931d2171..3392d958 100644 --- a/gst/level/gstlevel.c +++ b/gst/level/gstlevel.c @@ -147,7 +147,6 @@ static void gst_level_dispose (GObject * obj); static gboolean gst_level_set_caps (GstBaseTransform * trans, GstCaps * in, GstCaps * out); static gboolean gst_level_start (GstBaseTransform * trans); -static gboolean gst_level_event (GstBaseTransform * trans, GstEvent * event); static GstFlowReturn gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in); @@ -198,7 +197,6 @@ gst_level_class_init (GstLevelClass * klass) trans_class->set_caps = GST_DEBUG_FUNCPTR (gst_level_set_caps); trans_class->start = GST_DEBUG_FUNCPTR (gst_level_start); - trans_class->event = GST_DEBUG_FUNCPTR (gst_level_event); trans_class->transform_ip = GST_DEBUG_FUNCPTR (gst_level_transform_ip); trans_class->passthrough_on_same_caps = TRUE; } @@ -449,36 +447,6 @@ gst_level_start (GstBaseTransform * trans) GstLevel *filter = GST_LEVEL (trans); filter->num_frames = 0; - gst_segment_init (&filter->segment, GST_FORMAT_UNDEFINED); - - return TRUE; -} - -static gboolean -gst_level_event (GstBaseTransform * trans, GstEvent * event) -{ - GstLevel *filter = GST_LEVEL (trans); - - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_NEWSEGMENT:{ - GstFormat format; - gdouble rate, arate; - gint64 start, stop, time; - gboolean update; - - /* the newsegment values are used to clip the input samples - * and to convert the incomming timestamps to running time */ - gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, - &start, &stop, &time); - - /* now configure the values */ - gst_segment_set_newsegment_full (&filter->segment, update, - rate, arate, format, start, stop, time); - break; - } - default: - break; - } return TRUE; } @@ -621,7 +589,7 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in) if (filter->message) { GstMessage *m; GstClockTime endtime = - gst_segment_to_running_time (&filter->segment, GST_FORMAT_TIME, + gst_segment_to_stream_time (&trans->segment, GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (in)) + GST_FRAMES_TO_CLOCK_TIME (num_frames, filter->rate); diff --git a/gst/level/gstlevel.h b/gst/level/gstlevel.h index f91b620c..3cd5d3a8 100644 --- a/gst/level/gstlevel.h +++ b/gst/level/gstlevel.h @@ -78,8 +78,6 @@ struct _GstLevel { gdouble *RMS_dB; /* RMS in dB to emit */ GstClockTime *decay_peak_age; /* age of last peak */ - GstSegment segment; - void (*process)(gpointer, guint, guint, gdouble*, gdouble*); }; -- cgit