mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-05 17:09:48 +00:00
gstbuffer: reset buffer to its original size if intact
Enhance default_reset_buffer() to resize the buffer to its full size if the memory hasn't changed. This allows to reuse the buffer even if the offset has changed or the size has shrunk, rather than freeing the buffer. Change related to: https://bugzilla.gnome.org/show_bug.cgi?id=772841
This commit is contained in:
parent
29e81988fb
commit
7d75d3ef41
1 changed files with 4 additions and 0 deletions
|
@ -1226,6 +1226,10 @@ default_reset_buffer (GstBufferPool * pool, GstBuffer * buffer)
|
|||
GST_BUFFER_OFFSET (buffer) = GST_BUFFER_OFFSET_NONE;
|
||||
GST_BUFFER_OFFSET_END (buffer) = GST_BUFFER_OFFSET_NONE;
|
||||
|
||||
/* if the memory is intact reset the size to the full size */
|
||||
if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_TAG_MEMORY))
|
||||
gst_buffer_resize (buffer, 0, pool->priv->size);
|
||||
|
||||
/* remove all metadata without the POOLED flag */
|
||||
gst_buffer_foreach_meta (buffer, remove_meta_unpooled, pool);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue