Mercurial > libavformat.hg
comparison mxf.c @ 1907:b33db97089ba libavformat
Give context to dprintf
author | mbardiaux |
---|---|
date | Mon, 12 Mar 2007 12:36:41 +0000 |
parents | de2cf54eb68f |
children | 0bd30777841f |
comparison
equal
deleted
inserted
replaced
1906:330115d147d6 | 1907:b33db97089ba |
---|---|
185 static const uint8_t mxf_encrypted_triplet_key[] = { 0x06,0x0e,0x2b,0x34,0x02,0x04,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x7e,0x01,0x00 }; | 185 static const uint8_t mxf_encrypted_triplet_key[] = { 0x06,0x0e,0x2b,0x34,0x02,0x04,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x7e,0x01,0x00 }; |
186 static const uint8_t mxf_encrypted_essence_container[] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0b,0x01,0x00 }; | 186 static const uint8_t mxf_encrypted_essence_container[] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0b,0x01,0x00 }; |
187 | 187 |
188 #define IS_KLV_KEY(x, y) (!memcmp(x, y, sizeof(y))) | 188 #define IS_KLV_KEY(x, y) (!memcmp(x, y, sizeof(y))) |
189 | 189 |
190 #define PRINT_KEY(s, x) dprintf("%s %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", s, \ | 190 #define PRINT_KEY(pc, s, x) dprintf(pc, "%s %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", s, \ |
191 (x)[0], (x)[1], (x)[2], (x)[3], (x)[4], (x)[5], (x)[6], (x)[7], (x)[8], (x)[9], (x)[10], (x)[11], (x)[12], (x)[13], (x)[14], (x)[15]) | 191 (x)[0], (x)[1], (x)[2], (x)[3], (x)[4], (x)[5], (x)[6], (x)[7], (x)[8], (x)[9], (x)[10], (x)[11], (x)[12], (x)[13], (x)[14], (x)[15]) |
192 | 192 |
193 static int64_t klv_decode_ber_length(ByteIOContext *pb) | 193 static int64_t klv_decode_ber_length(ByteIOContext *pb) |
194 { | 194 { |
195 uint64_t size = get_byte(pb); | 195 uint64_t size = get_byte(pb); |
322 if (klv_read_packet(&klv, &s->pb) < 0) { | 322 if (klv_read_packet(&klv, &s->pb) < 0) { |
323 av_log(s, AV_LOG_ERROR, "error reading KLV packet\n"); | 323 av_log(s, AV_LOG_ERROR, "error reading KLV packet\n"); |
324 return -1; | 324 return -1; |
325 } | 325 } |
326 #ifdef DEBUG | 326 #ifdef DEBUG |
327 PRINT_KEY("read packet", klv.key); | 327 PRINT_KEY(s, "read packet", klv.key); |
328 #endif | 328 #endif |
329 if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key)) { | 329 if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key)) { |
330 int res = mxf_decrypt_triplet(s, pkt, &klv); | 330 int res = mxf_decrypt_triplet(s, pkt, &klv); |
331 mxf->sync_key = mxf_encrypted_triplet_key; | 331 mxf->sync_key = mxf_encrypted_triplet_key; |
332 if (res < 0) { | 332 if (res < 0) { |
498 { | 498 { |
499 int code; | 499 int code; |
500 | 500 |
501 do { | 501 do { |
502 code = get_byte(pb); | 502 code = get_byte(pb); |
503 dprintf("pixel layout: code 0x%x\n", code); | 503 dprintf(NULL, "pixel layout: code 0x%x\n", code); |
504 switch (code) { | 504 switch (code) { |
505 case 0x52: /* R */ | 505 case 0x52: /* R */ |
506 descriptor->bits_per_sample += get_byte(pb); | 506 descriptor->bits_per_sample += get_byte(pb); |
507 break; | 507 break; |
508 case 0x47: /* G */ | 508 case 0x47: /* G */ |
666 { | 666 { |
667 MXFPackage *material_package = NULL; | 667 MXFPackage *material_package = NULL; |
668 MXFPackage *temp_package = NULL; | 668 MXFPackage *temp_package = NULL; |
669 int i, j, k; | 669 int i, j, k; |
670 | 670 |
671 dprintf("metadata sets count %d\n", mxf->metadata_sets_count); | 671 dprintf(mxf->fc, "metadata sets count %d\n", mxf->metadata_sets_count); |
672 /* TODO: handle multiple material packages (OP3x) */ | 672 /* TODO: handle multiple material packages (OP3x) */ |
673 for (i = 0; i < mxf->packages_count; i++) { | 673 for (i = 0; i < mxf->packages_count; i++) { |
674 material_package = mxf_resolve_strong_ref(mxf, &mxf->packages_refs[i], MaterialPackage); | 674 material_package = mxf_resolve_strong_ref(mxf, &mxf->packages_refs[i], MaterialPackage); |
675 if (material_package) break; | 675 if (material_package) break; |
676 } | 676 } |
751 av_log(mxf->fc, AV_LOG_ERROR, "could not resolve source track sequence strong ref\n"); | 751 av_log(mxf->fc, AV_LOG_ERROR, "could not resolve source track sequence strong ref\n"); |
752 return -1; | 752 return -1; |
753 } | 753 } |
754 | 754 |
755 #ifdef DEBUG | 755 #ifdef DEBUG |
756 PRINT_KEY("data definition ul", source_track->sequence->data_definition_ul); | 756 PRINT_KEY(mxf->fc, "data definition ul", source_track->sequence->data_definition_ul); |
757 #endif | 757 #endif |
758 st->codec->codec_type = mxf_get_codec_type(mxf_data_definition_uls, &source_track->sequence->data_definition_ul); | 758 st->codec->codec_type = mxf_get_codec_type(mxf_data_definition_uls, &source_track->sequence->data_definition_ul); |
759 | 759 |
760 source_package->descriptor = mxf_resolve_strong_ref(mxf, &source_package->descriptor_ref, AnyType); | 760 source_package->descriptor = mxf_resolve_strong_ref(mxf, &source_package->descriptor_ref, AnyType); |
761 if (source_package->descriptor) { | 761 if (source_package->descriptor) { |
778 if (!descriptor) { | 778 if (!descriptor) { |
779 av_log(mxf->fc, AV_LOG_INFO, "source track %d: stream %d, no descriptor found\n", source_track->track_id, st->index); | 779 av_log(mxf->fc, AV_LOG_INFO, "source track %d: stream %d, no descriptor found\n", source_track->track_id, st->index); |
780 continue; | 780 continue; |
781 } | 781 } |
782 #ifdef DEBUG | 782 #ifdef DEBUG |
783 PRINT_KEY("essence codec ul", descriptor->essence_codec_ul); | 783 PRINT_KEY(mxf->fc, "essence codec ul", descriptor->essence_codec_ul); |
784 PRINT_KEY("essence container ul", descriptor->essence_container_ul); | 784 PRINT_KEY(mxf->fc, "essence container ul", descriptor->essence_container_ul); |
785 #endif | 785 #endif |
786 essence_container_ul = &descriptor->essence_container_ul; | 786 essence_container_ul = &descriptor->essence_container_ul; |
787 /* HACK: replacing the original key with mxf_encrypted_essence_container | 787 /* HACK: replacing the original key with mxf_encrypted_essence_container |
788 * is not allowed according to s429-6, try to find correct information anyway */ | 788 * is not allowed according to s429-6, try to find correct information anyway */ |
789 if (IS_KLV_KEY(essence_container_ul, mxf_encrypted_essence_container)) { | 789 if (IS_KLV_KEY(essence_container_ul, mxf_encrypted_essence_container)) { |
834 } else if (st->codec->codec_id == CODEC_ID_MP2) { | 834 } else if (st->codec->codec_id == CODEC_ID_MP2) { |
835 st->need_parsing = 1; | 835 st->need_parsing = 1; |
836 } | 836 } |
837 } | 837 } |
838 if (container_ul && container_ul->wrapping == Clip) { | 838 if (container_ul && container_ul->wrapping == Clip) { |
839 dprintf("stream %d: clip wrapped essence\n", st->index); | 839 dprintf(mxf->fc, "stream %d: clip wrapped essence\n", st->index); |
840 st->need_parsing = 1; | 840 st->need_parsing = 1; |
841 } | 841 } |
842 } | 842 } |
843 return 0; | 843 return 0; |
844 } | 844 } |
919 if (klv_read_packet(&klv, &s->pb) < 0) { | 919 if (klv_read_packet(&klv, &s->pb) < 0) { |
920 av_log(s, AV_LOG_ERROR, "error reading KLV packet\n"); | 920 av_log(s, AV_LOG_ERROR, "error reading KLV packet\n"); |
921 return -1; | 921 return -1; |
922 } | 922 } |
923 #ifdef DEBUG | 923 #ifdef DEBUG |
924 PRINT_KEY("read header", klv.key); | 924 PRINT_KEY(s, "read header", klv.key); |
925 #endif | 925 #endif |
926 if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key) || | 926 if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key) || |
927 IS_KLV_KEY(klv.key, mxf_essence_element_key)) { | 927 IS_KLV_KEY(klv.key, mxf_essence_element_key)) { |
928 /* FIXME avoid seek */ | 928 /* FIXME avoid seek */ |
929 url_fseek(&s->pb, klv.offset, SEEK_SET); | 929 url_fseek(&s->pb, klv.offset, SEEK_SET); |