From ca613dcc387ed2ad8c7f12e8e8f972a7c57daec8 Mon Sep 17 00:00:00 2001 From: Aman Gupta Date: Thu, 5 Sep 2019 11:20:40 -0700 Subject: [PATCH] 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 Signed-off-by: Matthieu Bouron --- 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)) {