diff --git a/gst/volume/gstvolume.c b/gst/volume/gstvolume.c index 2dc9ad20c9..3a050b46c8 100644 --- a/gst/volume/gstvolume.c +++ b/gst/volume/gstvolume.c @@ -275,13 +275,7 @@ volume_chain_float (GstPad *pad, GstBuffer *buf) filter = GST_VOLUME(GST_OBJECT_PARENT (pad)); g_return_if_fail(GST_IS_VOLUME(filter)); - if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_READONLY)){ - out_buf = gst_buffer_copy (buf); - gst_buffer_unref(buf); - } - else { - out_buf = buf; - } + out_buf = gst_buffer_copy_on_write (buf); data = (gfloat *)GST_BUFFER_DATA(out_buf); num_samples = GST_BUFFER_SIZE(out_buf)/sizeof(gfloat);