From b76819bbd28ffd2ba208d0a2fc55cbbeb928f503 Mon Sep 17 00:00:00 2001 From: Sebastian Dröge Date: Tue, 8 Jan 2008 14:58:18 +0000 Subject: Make elements GST_BUFFER_FLAG_GAP aware and call gst_base_transform_set_gap_aware for this. Original commit message from CVS: * configure.ac: * gst/audiofx/audioamplify.c: (gst_audio_amplify_clipping_method_get_type), (gst_audio_amplify_init), (gst_audio_amplify_transform_ip): * gst/audiofx/audiodynamic.c: (gst_audio_dynamic_init), (gst_audio_dynamic_transform_ip): * gst/audiofx/audioinvert.c: (gst_audio_invert_init), (gst_audio_invert_transform_ip): * gst/audiofx/audiopanorama.c: (gst_audio_panorama_init), (gst_audio_panorama_transform): * gst/level/gstlevel.c: (gst_level_init): Make elements GST_BUFFER_FLAG_GAP aware and call gst_base_transform_set_gap_aware for this. Bump core requirement to CVS. * gst/audiofx/audiochebyshevfreqband.c: (gst_audio_chebyshev_freq_band_transform_ip): * gst/audiofx/audiochebyshevfreqlimit.c: (gst_audio_chebyshev_freq_limit_transform_ip): Also sync GObject properties to the controller if operating in passthrough mode. --- gst/audiofx/audiodynamic.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gst/audiofx/audiodynamic.c') diff --git a/gst/audiofx/audiodynamic.c b/gst/audiofx/audiodynamic.c index 883fc93e..b680e5fe 100644 --- a/gst/audiofx/audiodynamic.c +++ b/gst/audiofx/audiodynamic.c @@ -280,6 +280,7 @@ gst_audio_dynamic_init (GstAudioDynamic * filter, GstAudioDynamicClass * klass) filter->characteristics = CHARACTERISTICS_HARD_KNEE; filter->mode = MODE_COMPRESSOR; gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), TRUE); + gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (filter), TRUE); } static void @@ -699,12 +700,13 @@ gst_audio_dynamic_transform_ip (GstBaseTransform * base, GstBuffer * buf) guint num_samples = GST_BUFFER_SIZE (buf) / (GST_AUDIO_FILTER (filter)->format.width / 8); - if (gst_base_transform_is_passthrough (base)) - return GST_FLOW_OK; - if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buf))) gst_object_sync_values (G_OBJECT (filter), GST_BUFFER_TIMESTAMP (buf)); + if (gst_base_transform_is_passthrough (base) || + G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_GAP))) + return GST_FLOW_OK; + filter->process (filter, GST_BUFFER_DATA (buf), num_samples); return GST_FLOW_OK; -- cgit