static int mxf_get_d10_aes3_packet(ByteIOContext *pb, AVStream *st, AVPacket *pkt, int64_t length)
{
uint8_t buffer[61444];
- uint8_t *buf_ptr, *end_ptr, *data_ptr;
+ const uint8_t *buf_ptr, *end_ptr;
+ uint8_t *data_ptr;
int i;
if (length > 61444) /* worst case PAL 1920 samples 8 channels */
int index = mxf_get_stream_index(s, &klv);
if (index < 0) {
av_log(s, AV_LOG_ERROR, "error getting stream index\n");
- url_fskip(s->pb, klv.length);
- return -1;
+ goto skip;
}
+ if (s->streams[index]->discard == AVDISCARD_ALL)
+ goto skip;
/* check for 8 channels AES3 element */
if (klv.key[12] == 0x06 && klv.key[13] == 0x01 && klv.key[14] == 0x10) {
if (mxf_get_d10_aes3_packet(s->pb, s->streams[index], pkt, klv.length) < 0) {
pkt->pos = klv.offset;
return 0;
} else
+ skip:
url_fskip(s->pb, klv.length);
}
return AVERROR(EIO);