Make writable the buffer before pushing it lead to a buffer copy. It's
because a reference is keep for the previous buffer.
The previous buffer reference is only need to duplicate the buffer. In
drop-only mode, the previous buffer is release just after pushing the
buffer so a copy is done but it's useless.
https://bugzilla.gnome.org/show_bug.cgi?id=764319
if (!videorate->prevbuf)
goto eos_before_buffers;
+ outbuf = gst_buffer_ref (videorate->prevbuf);
+ if (videorate->drop_only)
+ gst_buffer_replace (&videorate->prevbuf, NULL);
+
/* make sure we can write to the metadata */
- outbuf = gst_buffer_make_writable (gst_buffer_ref (videorate->prevbuf));
+ outbuf = gst_buffer_make_writable (outbuf);
GST_BUFFER_OFFSET (outbuf) = videorate->out;
GST_BUFFER_OFFSET_END (outbuf) = videorate->out + 1;