Imported Upstream version 6.1
[platform/upstream/ffmpeg.git] / libavcodec / adx_parser.c
index 52aa14b..62b4415 100644 (file)
@@ -73,6 +73,16 @@ static int adx_parse(AVCodecParserContext *s1,
             s->remaining = 0;
         } else
             s->remaining -= buf_size;
+    } else if (avctx->ch_layout.nb_channels > 0) {
+        if (!s->block_size)
+            s->block_size = avctx->ch_layout.nb_channels * BLOCK_SIZE;
+        if (!s->remaining)
+            s->remaining = s->block_size;
+        if (s->remaining <= buf_size) {
+            next = s->remaining;
+            s->remaining = 0;
+        } else
+            s->remaining -= buf_size;
     }
 
     if (ff_combine_frame(pc, next, &buf, &buf_size) < 0 || !buf_size) {