summaryrefslogtreecommitdiff
path: root/libavcodec/adxdec.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2020-09-12 17:42:16 +0200
committerPaul B Mahol <onemda@gmail.com>2020-09-18 11:34:11 +0200
commit92396cee602320c714713ca2d93b53684ad57000 (patch)
tree237e8fb029f95ab5978056bbd112e0073b2dbbcb /libavcodec/adxdec.c
parent0ea6ec3d0054fd4b128f9a5b7aab26ccc6ac6caf (diff)
downloadffmpeg-92396cee602320c714713ca2d93b53684ad57000.tar.gz
avformat: add CRI AAX demuxer
Diffstat (limited to 'libavcodec/adxdec.c')
-rw-r--r--libavcodec/adxdec.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c
index 40ed8e5ba7..81ffc8b296 100644
--- a/libavcodec/adxdec.c
+++ b/libavcodec/adxdec.c
@@ -103,6 +103,22 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data,
const uint8_t *buf = avpkt->data;
const uint8_t *buf_end = buf + avpkt->size;
int num_blocks, ch, ret;
+ int new_extradata_size;
+ uint8_t *new_extradata;
+
+ new_extradata = av_packet_get_side_data(avpkt, AV_PKT_DATA_NEW_EXTRADATA,
+ &new_extradata_size);
+ if (new_extradata && new_extradata_size > 0) {
+ int header_size;
+ if ((ret = ff_adx_decode_header(avctx, new_extradata,
+ new_extradata_size, &header_size,
+ c->coeff)) < 0) {
+ av_log(avctx, AV_LOG_ERROR, "error parsing new ADX extradata\n");
+ return AVERROR_INVALIDDATA;
+ }
+
+ c->eof = 0;
+ }
if (c->eof) {
*got_frame_ptr = 0;