+2007-11-26 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ * gst/volume/gstvolume.c:
+ * gst/volume/gstvolume.h:
+ Add GAP-flag support.
+
2007-11-24 Julien MOUTTE <julien@moutte.net>
* tests/examples/seek/seek.c: (main): Increase the range of the
src->running_time = next_time;
src->n_samples = n_samples;
+ GST_LOG_OBJECT (src, "generating %u samples at ts %" GST_TIME_FORMAT,
+ length, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
src->process (src, GST_BUFFER_DATA (buf));
+ if (src->wave == G_UNLIKELY (GST_AUDIO_TEST_SRC_WAVE_SILENCE)) {
+ GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_GAP);
+ }
+
*buffer = buf;
return GST_FLOW_OK;
this->real_vol_i32 = this->volume_i32;
passthrough = (this->volume_i16 == VOLUME_UNITY_INT16);
}
+ if (this->real_vol_f != 0.0)
+ this->silent_buffer = FALSE;
volume_choose_func (this);
gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (this), passthrough);
}
gst_object_sync_values (G_OBJECT (this), timestamp);
/* don't process data in passthrough-mode */
- if (gst_base_transform_is_passthrough (base))
+ if (gst_base_transform_is_passthrough (base) ||
+ GST_BUFFER_FLAG_IS_SET (outbuf, GST_BUFFER_FLAG_GAP))
return GST_FLOW_OK;
+ if (this->real_vol_f == 0.0)
+ this->silent_buffer = TRUE;
+
this->process (this, GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf));
+ if (this->silent_buffer)
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP);
+ this->silent_buffer = FALSE;
+
return GST_FLOW_OK;
}