mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-11 09:59:50 +00:00
avcodec/nuv: prevent frame copying when outputting duplicate frames
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
343f8d514e
commit
a0739e8a16
@ -162,6 +162,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
||||
int keyframe, ret;
|
||||
int size_change = 0;
|
||||
int minsize = 0;
|
||||
int flags = 0;
|
||||
int result, init_frame = !avctx->frame_number;
|
||||
enum {
|
||||
NUV_UNCOMPRESSED = '0',
|
||||
@ -204,6 +205,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
||||
}
|
||||
break;
|
||||
case NUV_COPY_LAST:
|
||||
flags |= FF_REGET_BUFFER_FLAG_READONLY;
|
||||
keyframe = 0;
|
||||
break;
|
||||
default:
|
||||
@ -268,7 +270,7 @@ retry:
|
||||
init_frame = 1;
|
||||
}
|
||||
|
||||
if ((result = ff_reget_buffer(avctx, c->pic, 0)) < 0)
|
||||
if ((result = ff_reget_buffer(avctx, c->pic, flags)) < 0)
|
||||
return result;
|
||||
if (init_frame) {
|
||||
memset(c->pic->data[0], 0, avctx->height * c->pic->linesize[0]);
|
||||
|
Loading…
Reference in New Issue
Block a user