mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-05 02:02:26 +00:00
level: calculate the message-intervall when it changes
This commit is contained in:
parent
f5b3392fa6
commit
71044b37b6
2 changed files with 9 additions and 2 deletions
|
@ -281,6 +281,10 @@ gst_level_set_property (GObject * object, guint prop_id,
|
|||
break;
|
||||
case PROP_SIGNAL_INTERVAL:
|
||||
filter->interval = g_value_get_uint64 (value);
|
||||
if (filter->rate) {
|
||||
filter->interval_frames =
|
||||
GST_CLOCK_TIME_TO_FRAMES (filter->interval, filter->rate);
|
||||
}
|
||||
break;
|
||||
case PROP_PEAK_TTL:
|
||||
filter->decay_peak_ttl =
|
||||
|
@ -483,6 +487,9 @@ gst_level_set_caps (GstBaseTransform * trans, GstCaps * in, GstCaps * out)
|
|||
filter->decay_peak_age[i] = G_GUINT64_CONSTANT (0);
|
||||
}
|
||||
|
||||
filter->interval_frames =
|
||||
GST_CLOCK_TIME_TO_FRAMES (filter->interval, filter->rate);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -648,8 +655,7 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in)
|
|||
filter->num_frames += num_frames;
|
||||
|
||||
/* do we need to message ? */
|
||||
if (filter->num_frames >=
|
||||
GST_CLOCK_TIME_TO_FRAMES (filter->interval, filter->rate)) {
|
||||
if (filter->num_frames >= filter->interval_frames) {
|
||||
if (filter->message) {
|
||||
GstMessage *m;
|
||||
GstClockTime duration =
|
||||
|
|
|
@ -67,6 +67,7 @@ struct _GstLevel {
|
|||
gdouble decay_peak_falloff; /* falloff in dB/sec */
|
||||
gint num_frames; /* frame count (1 sample per channel)
|
||||
* since last emit */
|
||||
gint interval_frames; /* after how many frame to sent a message */
|
||||
GstClockTime message_ts; /* starttime for next message */
|
||||
|
||||
/* per-channel arrays for intermediate values */
|
||||
|
|
Loading…
Reference in a new issue