ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Tue Sep  3 23:54:19 
2019 -0300| [a0739e8a16ac8e9d2ab2f00a590c20d7316b1430] | committer: James Almer

avcodec/nuv: prevent frame copying when outputting duplicate frames

Signed-off-by: James Almer <jamr...@gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a0739e8a16ac8e9d2ab2f00a590c20d7316b1430
---

 libavcodec/nuv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/nuv.c b/libavcodec/nuv.c
index 2cca206d9b..bb80e3e884 100644
--- a/libavcodec/nuv.c
+++ b/libavcodec/nuv.c
@@ -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]);

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to