comparison mxf.c @ 1192:ad731bdb7365 libavformat

rename variables
author bcoudurier
date Fri, 28 Jul 2006 23:00:53 +0000
parents 976a91cec1ad
children fcc6f52e2cf1
comparison
equal deleted inserted replaced
1191:976a91cec1ad 1192:ad731bdb7365
87 AVRational edit_rate; 87 AVRational edit_rate;
88 } MXFTrack; 88 } MXFTrack;
89 89
90 typedef struct MXFDescriptor { 90 typedef struct MXFDescriptor {
91 UID uid; 91 UID uid;
92 UID essence_container; 92 UID essence_container_ul;
93 UID essence_compression; 93 UID essence_codec_ul;
94 enum CodecType codec_type; 94 enum CodecType codec_type;
95 AVRational sample_rate; 95 AVRational sample_rate;
96 AVRational aspect_ratio; 96 AVRational aspect_ratio;
97 int width; 97 int width;
98 int height; 98 int height;
594 } 594 }
595 595
596 static int mxf_read_metadata_generic_descriptor(MXFContext *mxf, KLVPacket *klv) 596 static int mxf_read_metadata_generic_descriptor(MXFContext *mxf, KLVPacket *klv)
597 { 597 {
598 ByteIOContext *pb = &mxf->fc->pb; 598 ByteIOContext *pb = &mxf->fc->pb;
599 MXFDescriptor *desc = av_mallocz(sizeof(*desc)); 599 MXFDescriptor *descriptor = av_mallocz(sizeof(*descriptor));
600 int bytes_read = 0; 600 int bytes_read = 0;
601 int i, j; 601 int i, j;
602 602
603 while (bytes_read < klv->length) { 603 while (bytes_read < klv->length) {
604 int tag = get_be16(pb); 604 int tag = get_be16(pb);
605 int size = get_be16(pb); /* KLV specified by 0x53 */ 605 int size = get_be16(pb); /* KLV specified by 0x53 */
606 606
607 dprintf("tag 0x%04X, size %d\n", tag, size); 607 dprintf("tag 0x%04X, size %d\n", tag, size);
608 switch (tag) { 608 switch (tag) {
609 case 0x3C0A: 609 case 0x3C0A:
610 get_buffer(pb, desc->uid, 16); 610 get_buffer(pb, descriptor->uid, 16);
611 break; 611 break;
612 case 0x3004: 612 case 0x3004:
613 get_buffer(pb, desc->essence_container, 16); 613 get_buffer(pb, descriptor->essence_container_ul, 16);
614 break; 614 break;
615 case 0x3006: 615 case 0x3006:
616 desc->linked_track_id = get_be32(pb); 616 descriptor->linked_track_id = get_be32(pb);
617 break; 617 break;
618 case 0x3201: /* PictureEssenceCoding */ 618 case 0x3201: /* PictureEssenceCoding */
619 desc->codec_type = CODEC_TYPE_VIDEO; 619 descriptor->codec_type = CODEC_TYPE_VIDEO;
620 get_buffer(pb, desc->essence_compression, 16); 620 get_buffer(pb, descriptor->essence_codec_ul, 16);
621 break; 621 break;
622 case 0x3203: 622 case 0x3203:
623 desc->width = get_be32(pb); 623 descriptor->width = get_be32(pb);
624 break; 624 break;
625 case 0x3202: 625 case 0x3202:
626 desc->height = get_be32(pb); 626 descriptor->height = get_be32(pb);
627 break; 627 break;
628 case 0x320E: 628 case 0x320E:
629 desc->aspect_ratio.num = get_be32(pb); 629 descriptor->aspect_ratio.num = get_be32(pb);
630 desc->aspect_ratio.den = get_be32(pb); 630 descriptor->aspect_ratio.den = get_be32(pb);
631 break; 631 break;
632 case 0x3D0A: 632 case 0x3D0A:
633 desc->block_align = get_be16(pb); 633 descriptor->block_align = get_be16(pb);
634 break; 634 break;
635 case 0x3D03: 635 case 0x3D03:
636 desc->sample_rate.num = get_be32(pb); 636 descriptor->sample_rate.num = get_be32(pb);
637 desc->sample_rate.den = get_be32(pb); 637 descriptor->sample_rate.den = get_be32(pb);
638 break; 638 break;
639 case 0x3D06: /* SoundEssenceCompression */ 639 case 0x3D06: /* SoundEssenceCompression */
640 desc->codec_type = CODEC_TYPE_AUDIO; 640 descriptor->codec_type = CODEC_TYPE_AUDIO;
641 get_buffer(pb, desc->essence_compression, 16); 641 get_buffer(pb, descriptor->essence_codec_ul, 16);
642 break; 642 break;
643 case 0x3D07: 643 case 0x3D07:
644 desc->channels = get_be32(pb); 644 descriptor->channels = get_be32(pb);
645 break; 645 break;
646 case 0x3D01: 646 case 0x3D01:
647 desc->bits_per_sample = get_be32(pb); 647 descriptor->bits_per_sample = get_be32(pb);
648 break; 648 break;
649 default: 649 default:
650 url_fskip(pb, size); 650 url_fskip(pb, size);
651 } 651 }
652 bytes_read += size + 4; 652 bytes_read += size + 4;
653 } 653 }
654 for (i = 0; i < mxf->packages_count; i++) { 654 for (i = 0; i < mxf->packages_count; i++) {
655 if (mxf->packages[i]) { 655 if (mxf->packages[i]) {
656 if (!memcmp(mxf->packages[i]->descriptor_ref, desc->uid, 16)) { 656 if (!memcmp(mxf->packages[i]->descriptor_ref, descriptor->uid, 16)) {
657 mxf->packages[i]->descriptor = desc; 657 mxf->packages[i]->descriptor = descriptor;
658 return 0; 658 return 0;
659 } else if (mxf->packages[i]->descriptor) { /* MultipleDescriptor */ 659 } else if (mxf->packages[i]->descriptor) { /* MultipleDescriptor */
660 for (j = 0; j < mxf->packages[i]->descriptor->sub_descriptors_count; j++) { 660 for (j = 0; j < mxf->packages[i]->descriptor->sub_descriptors_count; j++) {
661 if (!memcmp(mxf->packages[i]->descriptor->sub_descriptors_refs[j], desc->uid, 16)) { 661 if (!memcmp(mxf->packages[i]->descriptor->sub_descriptors_refs[j], descriptor->uid, 16)) {
662 mxf->packages[i]->descriptor->sub_descriptors[j] = desc; 662 mxf->packages[i]->descriptor->sub_descriptors[j] = descriptor;
663 return 0; 663 return 0;
664 } 664 }
665 } 665 }
666 } 666 }
667 } 667 }
787 if (!descriptor) { 787 if (!descriptor) {
788 av_log(mxf->fc, AV_LOG_INFO, "source track %d: stream %d, no descriptor found\n", source_track->track_id, st->index); 788 av_log(mxf->fc, AV_LOG_INFO, "source track %d: stream %d, no descriptor found\n", source_track->track_id, st->index);
789 continue; 789 continue;
790 } 790 }
791 #ifdef DEBUG 791 #ifdef DEBUG
792 PRINT_KEY(descriptor->essence_compression); 792 PRINT_KEY(descriptor->essence_codec_ul);
793 #endif 793 #endif
794 st->codec->codec_id = mxf_get_codec_id(mxf_codec_uls, &descriptor->essence_compression); 794 st->codec->codec_id = mxf_get_codec_id(mxf_codec_uls, &descriptor->essence_codec_ul);
795 if (st->codec->codec_type == CODEC_TYPE_VIDEO) { 795 if (st->codec->codec_type == CODEC_TYPE_VIDEO) {
796 st->codec->width = descriptor->width; 796 st->codec->width = descriptor->width;
797 st->codec->height = descriptor->height; 797 st->codec->height = descriptor->height;
798 } else if (st->codec->codec_type == CODEC_TYPE_AUDIO) { 798 } else if (st->codec->codec_type == CODEC_TYPE_AUDIO) {
799 st->codec->channels = descriptor->channels; 799 st->codec->channels = descriptor->channels;