diff options
Diffstat (limited to 'gst/audiofx/audioinvert.c')
-rw-r--r-- | gst/audiofx/audioinvert.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gst/audiofx/audioinvert.c b/gst/audiofx/audioinvert.c index 013d2011..35ff11e1 100644 --- a/gst/audiofx/audioinvert.c +++ b/gst/audiofx/audioinvert.c @@ -148,6 +148,7 @@ gst_audio_invert_init (GstAudioInvert * filter, GstAudioInvertClass * klass) { filter->degree = 0.0; gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), TRUE); + gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (filter), TRUE); } static void @@ -240,12 +241,13 @@ gst_audio_invert_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; |