Skip to content

Commit

Permalink
videodecoder: Make sure we have an actually writable buffer when modi…
Browse files Browse the repository at this point in the history
…fying metadata

avviddec keeps references to the buffers internally for example, in
which case we need to do a shallow copy of the buffer.
  • Loading branch information
sdroege committed Jul 24, 2017
1 parent 7942441 commit ae8d0cf
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions gst-libs/gst/video/gstvideodecoder.c
Expand Up @@ -3010,7 +3010,9 @@ gst_video_decoder_finish_frame (GstVideoDecoder * decoder,
goto done;
}

output_buffer = frame->output_buffer;
/* We need a writable buffer for the metadata changes below */
output_buffer = frame->output_buffer =
gst_buffer_make_writable (frame->output_buffer);

GST_BUFFER_FLAG_UNSET (output_buffer, GST_BUFFER_FLAG_DELTA_UNIT);

Expand Down Expand Up @@ -3040,9 +3042,7 @@ gst_video_decoder_finish_frame (GstVideoDecoder * decoder,

/* Get an additional ref to the buffer, which is going to be pushed
* downstream, the original ref is owned by the frame
*
* FIXME: clip_and_push_buf() changes buffer metadata but the buffer
* might have a refcount > 1 */
*/
output_buffer = gst_buffer_ref (output_buffer);

/* Release frame so the buffer is writable when we push it downstream
Expand Down

0 comments on commit ae8d0cf

Please sign in to comment.