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);