From 66bd030823277747c7668a7b441f8d5e8b1bcd9d Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Sun, 20 Feb 2005 15:26:04 +0000 Subject: [PATCH] gst/dvdlpcmdec/gstdvdlpcmdec.c: Make sure we only write to writable buffers Original commit message from CVS: * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain): Make sure we only write to writable buffers --- ChangeLog | 4 ++++ gst/dvdlpcmdec/gstdvdlpcmdec.c | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3847878db6..8b06631a37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-02-21 Jan Schmidt + * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain): + Make sure we only write to writable buffers + 2005-02-20 Tim-Philipp Müller * gst-libs/gst/riff/riff-media.c: diff --git a/gst/dvdlpcmdec/gstdvdlpcmdec.c b/gst/dvdlpcmdec/gstdvdlpcmdec.c index 2062d14d49..19b022518d 100644 --- a/gst/dvdlpcmdec/gstdvdlpcmdec.c +++ b/gst/dvdlpcmdec/gstdvdlpcmdec.c @@ -229,7 +229,6 @@ gst_dvdlpcmdec_chain (GstPad * pad, GstData * _data) { GstBuffer *buf = GST_BUFFER (_data); GstDvdLpcmDec *dvdlpcmdec; - guchar *data; gint64 size; g_return_if_fail (pad != NULL); @@ -238,7 +237,6 @@ gst_dvdlpcmdec_chain (GstPad * pad, GstData * _data) dvdlpcmdec = GST_DVDLPCMDEC (gst_pad_get_parent (pad)); - data = GST_BUFFER_DATA (buf); size = GST_BUFFER_SIZE (buf); GST_LOG_OBJECT (dvdlpcmdec, "got buffer %p of size %" G_GINT64_FORMAT, buf, @@ -290,7 +288,7 @@ gst_dvdlpcmdec_chain (GstPad * pad, GstData * _data) } gst_buffer_stamp (outbuf, buf); - src = data; + src = GST_BUFFER_DATA (buf);; dest = GST_BUFFER_DATA (outbuf); /* Copy 20-bit LPCM format to 24-bit buffers, with 0x00 in the lowest @@ -324,7 +322,11 @@ gst_dvdlpcmdec_chain (GstPad * pad, GstData * _data) * and last byte are already correct */ gint64 count = size / 12; gint64 i; - guchar *src = data; + guchar *src; + + /* Ensure our output buffer is writable */ + buf = gst_buffer_copy_on_write (buf); + src = GST_BUFFER_DATA (buf); for (i = 0; i < count; i++) { guchar temp[9];