Mercurial > libavformat.hg
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; |