Browse Source

avcodec/wcmv: prevent frame copying when outputting duplicate frames

Signed-off-by: James Almer <jamrial@gmail.com>
tags/n4.3
James Almer 5 years ago
parent
commit
343f8d514e
1 changed files with 5 additions and 3 deletions
  1. +5
    -3
      libavcodec/wcmv.c

+ 5
- 3
libavcodec/wcmv.c View File

@@ -45,7 +45,7 @@ static int decode_frame(AVCodecContext *avctx,
{
WCMVContext *s = avctx->priv_data;
AVFrame *frame = data;
int skip, blocks, zret, ret, intra = 0, bpp = s->bpp;
int skip, blocks, zret, ret, intra = 0, flags = 0, bpp = s->bpp;
GetByteContext gb;
uint8_t *dst;

@@ -56,11 +56,13 @@ static int decode_frame(AVCodecContext *avctx,
}

bytestream2_init(&gb, avpkt->data, avpkt->size);
blocks = bytestream2_get_le16(&gb);
if (!blocks)
flags |= FF_REGET_BUFFER_FLAG_READONLY;

if ((ret = ff_reget_buffer(avctx, s->prev_frame, 0)) < 0)
if ((ret = ff_reget_buffer(avctx, s->prev_frame, flags)) < 0)
return ret;

blocks = bytestream2_get_le16(&gb);
if (blocks > 5) {
GetByteContext bgb;
int x = 0, size;


Loading…
Cancel
Save