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