From dbaf1bf0a375674e0eef46be5d0bbe456c57e2e8 Mon Sep 17 00:00:00 2001 From: Matej Knopp Date: Fri, 27 Sep 2013 22:40:28 +0200 Subject: [PATCH] audio: change buffer timestamp when clipping even if data hasn't been trimmed https://bugzilla.gnome.org/show_bug.cgi?id=708952 --- gst-libs/gst/audio/audio.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/audio/audio.c b/gst-libs/gst/audio/audio.c index a8047dfc66..9745abb4a9 100644 --- a/gst-libs/gst/audio/audio.c +++ b/gst-libs/gst/audio/audio.c @@ -185,8 +185,16 @@ gst_audio_buffer_clip (GstBuffer * buffer, GstSegment * segment, gint rate, } if (trim == 0 && size == osize) { - /* nothing changed */ ret = buffer; + + if (GST_BUFFER_TIMESTAMP (ret) != timestamp) { + ret = gst_buffer_make_writable (ret); + GST_BUFFER_TIMESTAMP (ret) = timestamp; + } + if (GST_BUFFER_DURATION (ret) != duration) { + ret = gst_buffer_make_writable (ret); + GST_BUFFER_DURATION (ret) = duration; + } } else { /* Get a writable buffer and apply all changes */ GST_DEBUG ("trim %" G_GSIZE_FORMAT " size %" G_GSIZE_FORMAT, trim, size);