Mercurial > libavformat.hg
comparison mxf.c @ 3117:021b8af968cd libavformat
support AVDISCARD_ALL
author | bcoudurier |
---|---|
date | Thu, 06 Mar 2008 13:40:29 +0000 |
parents | c222d17b55c7 |
children | 2da3651f804d |
comparison
equal
deleted
inserted
replaced
3116:62255978fe94 | 3117:021b8af968cd |
---|---|
351 if (index < 0) { | 351 if (index < 0) { |
352 av_log(s, AV_LOG_ERROR, "error getting stream index\n"); | 352 av_log(s, AV_LOG_ERROR, "error getting stream index\n"); |
353 url_fskip(s->pb, klv.length); | 353 url_fskip(s->pb, klv.length); |
354 return -1; | 354 return -1; |
355 } | 355 } |
356 if (s->streams[index]->discard == AVDISCARD_ALL) | |
357 goto skip; | |
356 /* check for 8 channels AES3 element */ | 358 /* check for 8 channels AES3 element */ |
357 if (klv.key[12] == 0x06 && klv.key[13] == 0x01 && klv.key[14] == 0x10) { | 359 if (klv.key[12] == 0x06 && klv.key[13] == 0x01 && klv.key[14] == 0x10) { |
358 if (mxf_get_d10_aes3_packet(s->pb, s->streams[index], pkt, klv.length) < 0) { | 360 if (mxf_get_d10_aes3_packet(s->pb, s->streams[index], pkt, klv.length) < 0) { |
359 av_log(s, AV_LOG_ERROR, "error reading D-10 aes3 frame\n"); | 361 av_log(s, AV_LOG_ERROR, "error reading D-10 aes3 frame\n"); |
360 return -1; | 362 return -1; |
363 av_get_packet(s->pb, pkt, klv.length); | 365 av_get_packet(s->pb, pkt, klv.length); |
364 pkt->stream_index = index; | 366 pkt->stream_index = index; |
365 pkt->pos = klv.offset; | 367 pkt->pos = klv.offset; |
366 return 0; | 368 return 0; |
367 } else | 369 } else |
370 skip: | |
368 url_fskip(s->pb, klv.length); | 371 url_fskip(s->pb, klv.length); |
369 } | 372 } |
370 return AVERROR(EIO); | 373 return AVERROR(EIO); |
371 } | 374 } |
372 | 375 |