We should record the ownership of the data before we reset the bitwriter.
Or we will always dup the buffer data and leak the memory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/886>
GstBuffer *buffer;
gpointer data;
gsize size;
+ gboolean owned;
g_return_val_if_fail (bitwriter != NULL, NULL);
+ owned = bitwriter->owned;
+
size = GST_ROUND_UP_8 (bitwriter->bit_size) >> 3;
data = gst_bit_writer_reset_and_get_data (bitwriter);
/* we cannot rely on buffers allocated externally, thus let's dup
* the data */
- if (data && !bitwriter->owned)
+ if (data && !owned)
data = g_memdup2 (data, size);
buffer = gst_buffer_new ();