[FFmpeg-cvslog] avcodec/mediacodecdec_common: ensure current input buffer is always used correctly

Aman Gupta git at videolan.org
Mon Sep 9 23:26:21 EEST 2019


ffmpeg | branch: master | Aman Gupta <aman at tmm1.net> | Thu Sep  5 11:20:40 2019 -0700| [ca613dcc387ed2ad8c7f12e8e8f972a7c57daec8] | committer: Aman Gupta

avcodec/mediacodecdec_common: ensure current input buffer is always used correctly

The loop may mutate the input buffer, so re-fetch it to ensure
the current one is always used.

Signed-off-by: Aman Gupta <aman at tmm1.net>
Signed-off-by: Matthieu Bouron <matthieu.bouron at gmail.com>

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

 libavcodec/mediacodecdec_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/mediacodecdec_common.c b/libavcodec/mediacodecdec_common.c
index 9005adc1f3..c4e87e270f 100644
--- a/libavcodec/mediacodecdec_common.c
+++ b/libavcodec/mediacodecdec_common.c
@@ -569,7 +569,6 @@ int ff_mediacodec_dec_send(AVCodecContext *avctx, MediaCodecDecContext *s,
     int offset = 0;
     int need_draining = 0;
     uint8_t *data;
-    ssize_t index = s->current_input_buffer;
     size_t size;
     FFAMediaCodec *codec = s->codec;
     int status;
@@ -591,6 +590,7 @@ int ff_mediacodec_dec_send(AVCodecContext *avctx, MediaCodecDecContext *s,
     }
 
     while (offset < pkt->size || (need_draining && !s->draining)) {
+        ssize_t index = s->current_input_buffer;
         if (index < 0) {
             index = ff_AMediaCodec_dequeueInputBuffer(codec, input_dequeue_timeout_us);
             if (ff_AMediaCodec_infoTryAgainLater(codec, index)) {



More information about the ffmpeg-cvslog mailing list