projects
/
platform
/
upstream
/
gstreamer.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f287756
)
level: fix discontinuities in timestamps
author
Stefan Sauer
<ensonic@users.sf.net>
Tue, 28 May 2013 16:31:07 +0000
(18:31 +0200)
committer
Stefan Sauer
<ensonic@users.sf.net>
Tue, 28 May 2013 17:09:12 +0000
(19:09 +0200)
gst/level/gstlevel.c
patch
|
blob
|
history
diff --git
a/gst/level/gstlevel.c
b/gst/level/gstlevel.c
index
07b2b2e
..
2f00495
100644
(file)
--- a/
gst/level/gstlevel.c
+++ b/
gst/level/gstlevel.c
@@
-690,7
+690,6
@@
gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in)
/* do we need to message ? */
if (filter->num_frames >= filter->interval_frames) {
gst_level_post_message (filter);
/* do we need to message ? */
if (filter->num_frames >= filter->interval_frames) {
gst_level_post_message (filter);
- filter->message_ts += GST_FRAMES_TO_CLOCK_TIME (block_size, rate);
}
}
}
}
@@
-704,15
+703,15
@@
gst_level_post_message (GstLevel * filter)
{
guint i;
gint channels, rate;
{
guint i;
gint channels, rate;
+ GstClockTime duration;
channels = GST_AUDIO_INFO_CHANNELS (&filter->info);
rate = GST_AUDIO_INFO_RATE (&filter->info);
channels = GST_AUDIO_INFO_CHANNELS (&filter->info);
rate = GST_AUDIO_INFO_RATE (&filter->info);
+ duration = GST_FRAMES_TO_CLOCK_TIME (filter->interval_frames, rate);
if (filter->post_messages) {
if (filter->post_messages) {
- GstMessage *m;
- GstClockTime duration = GST_FRAMES_TO_CLOCK_TIME (filter->num_frames, rate);
-
- m = gst_level_message_new (filter, filter->message_ts, duration);
+ GstMessage *m =
+ gst_level_message_new (filter, filter->message_ts, duration);
GST_LOG_OBJECT (filter,
"message: ts %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT
GST_LOG_OBJECT (filter,
"message: ts %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT
@@
-755,11
+754,11
@@
gst_level_post_message (GstLevel * filter)
filter->last_peak[i] = 0.0;
}
filter->last_peak[i] = 0.0;
}
- if (filter->post_messages)
- gst_element_post_message (GST_ELEMENT (filter), m);
+ gst_element_post_message (GST_ELEMENT (filter), m);
}
}
- filter->num_frames = 0;
+ filter->num_frames -= filter->interval_frames;
+ filter->message_ts += duration;
}
}