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);
+ if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_TAG_MEMORY)) {
+ gsize offset;
+ gst_buffer_get_sizes (buffer, &offset, NULL);
+ gst_buffer_resize (buffer, -offset, pool->priv->size);
+ }
/* remove all metadata without the POOLED flag */
gst_buffer_foreach_meta (buffer, remove_meta_unpooled, pool);
gst_buffer_pool_acquire_buffer (pool, &buf, NULL);
buffer_track_destroy (buf, &dcount);
/* do resize, as we didn't modify the memory, pool should reuse this buffer */
- gst_buffer_resize (buf, 5, 2);
+ gst_buffer_resize (buf, 8, 2);
gst_buffer_unref (buf);
/* buffer should've gone back into pool */