From 27bebf745665178b36ec684d0c7ccd2561e2d59b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 6 Aug 2010 18:43:56 +0200 Subject: [PATCH] basesrc: Make sure the buffer metadata is writable before changing it --- libs/gst/base/gstbasesrc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index 64794ce..bb511d3 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -2143,12 +2143,16 @@ again: /* no timestamp set and we are at offset 0, we can timestamp with 0 */ if (offset == 0 && src->segment.time == 0 - && GST_BUFFER_TIMESTAMP (*buf) == -1) + && GST_BUFFER_TIMESTAMP (*buf) == -1) { + *buf = gst_buffer_make_metadata_writable (*buf); GST_BUFFER_TIMESTAMP (*buf) = 0; + } /* set pad caps on the buffer if the buffer had no caps */ - if (GST_BUFFER_CAPS (*buf) == NULL) + if (GST_BUFFER_CAPS (*buf) == NULL) { + *buf = gst_buffer_make_metadata_writable (*buf); gst_buffer_set_caps (*buf, GST_PAD_CAPS (src->srcpad)); + } /* now sync before pushing the buffer */ status = gst_base_src_do_sync (src, *buf); -- 2.7.4