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 =
filter->decay_peak_age[i] = G_GUINT64_CONSTANT (0);
}
+ filter->interval_frames =
+ GST_CLOCK_TIME_TO_FRAMES (filter->interval, filter->rate);
+
return TRUE;
}
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 =
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 */