• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/ap/gpl/minidlna/ffmpeg-0.5.1/libavformat/

Lines Matching defs:mxf

51 #include "mxf.h"
246 MXFContext *mxf = s->priv_data;
256 if (!mxf->aesc && s->key && s->keylen == 16) {
257 mxf->aesc = av_malloc(av_aes_size);
258 if (!mxf->aesc)
260 av_aes_init(mxf->aesc, s->key, 128, 1);
286 if (mxf->aesc)
287 av_aes_crypt(mxf->aesc, tmpbuf, tmpbuf, 1, ivec, 1);
293 if (mxf->aesc)
294 av_aes_crypt(mxf->aesc, &pkt->data[plaintext_size],
345 static int mxf_read_primer_pack(MXFContext *mxf)
347 ByteIOContext *pb = mxf->fc->pb;
352 av_log(mxf->fc, AV_LOG_ERROR, "unsupported primer pack item length\n");
357 mxf->local_tags_count = item_num;
358 mxf->local_tags = av_malloc(item_num*item_len);
359 if (!mxf->local_tags)
361 get_buffer(pb, mxf->local_tags, item_num*item_len);
365 static int mxf_add_metadata_set(MXFContext *mxf, void *metadata_set)
367 mxf->metadata_sets = av_realloc(mxf->metadata_sets, (mxf->metadata_sets_count + 1) * sizeof(*mxf->metadata_sets));
368 if (!mxf->metadata_sets)
370 mxf->metadata_sets[mxf->metadata_sets_count] = metadata_set;
371 mxf->metadata_sets_count++;
384 static int mxf_read_content_storage(MXFContext *mxf, ByteIOContext *pb, int tag)
388 mxf->packages_count = get_be32(pb);
389 if (mxf->packages_count >= UINT_MAX / sizeof(UID))
391 mxf->packages_refs = av_malloc(mxf->packages_count * sizeof(UID));
392 if (!mxf->packages_refs)
395 get_buffer(pb, (uint8_t *)mxf->packages_refs, mxf->packages_count * sizeof(UID));
592 /* Private uid used by SONY C0023S01.mxf */
629 static void *mxf_resolve_strong_ref(MXFContext *mxf, UID *strong_ref, enum MXFMetadataSetType type)
635 for (i = 0; i < mxf->metadata_sets_count; i++) {
636 if (!memcmp(*strong_ref, mxf->metadata_sets[i]->uid, 16) &&
637 (type == AnyType || mxf->metadata_sets[i]->type == type)) {
638 return mxf->metadata_sets[i];
655 static int mxf_parse_structural_metadata(MXFContext *mxf)
661 dprintf(mxf->fc, "metadata sets count %d\n", mxf->metadata_sets_count);
663 for (i = 0; i < mxf->packages_count; i++) {
664 material_package = mxf_resolve_strong_ref(mxf, &mxf->packages_refs[i], MaterialPackage);
668 av_log(mxf->fc, AV_LOG_ERROR, "no material package found\n");
684 if (!(material_track = mxf_resolve_strong_ref(mxf, &material_package->tracks_refs[i], Track))) {
685 av_log(mxf->fc, AV_LOG_ERROR, "could not resolve material track strong ref\n");
689 if (!(material_track->sequence = mxf_resolve_strong_ref(mxf, &material_track->sequence_ref, Sequence))) {
690 av_log(mxf->fc, AV_LOG_ERROR, "could not resolve material track sequence strong ref\n");
697 component = mxf_resolve_strong_ref(mxf, &material_track->sequence->structural_components_refs[j], SourceClip);
701 for (k = 0; k < mxf->packages_count; k++) {
702 temp_package = mxf_resolve_strong_ref(mxf, &mxf->packages_refs[k], SourcePackage);
711 av_log(mxf->fc, AV_LOG_ERROR, "material track %d: no corresponding source package found\n", material_track->track_id);
715 if (!(temp_track = mxf_resolve_strong_ref(mxf, &source_package->tracks_refs[k], Track))) {
716 av_log(mxf->fc, AV_LOG_ERROR, "could not resolve source track strong ref\n");
725 av_log(mxf->fc, AV_LOG_ERROR, "material track %d: no corresponding source track found\n", material_track->track_id);
732 st = av_new_stream(mxf->fc, source_track->track_id);
734 av_log(mxf->fc, AV_LOG_ERROR, "could not allocate stream\n");
744 if (!(source_track->sequence = mxf_resolve_strong_ref(mxf, &source_track->sequence_ref, Sequence))) {
745 av_log(mxf->fc, AV_LOG_ERROR, "could not resolve source track sequence strong ref\n");
749 PRINT_KEY(mxf->fc, "data definition ul", source_track->sequence->data_definition_ul);
753 source_package->descriptor = mxf_resolve_strong_ref(mxf, &source_package->descriptor_ref, AnyType);
757 MXFDescriptor *sub_descriptor = mxf_resolve_strong_ref(mxf, &source_package->descriptor->sub_descriptors_refs[j], Descriptor);
760 av_log(mxf->fc, AV_LOG_ERROR, "could not resolve sub descriptor strong ref\n");
772 av_log(mxf->fc, AV_LOG_INFO, "source track %d: stream %d, no descriptor found\n", source_track->track_id, st->index);
775 PRINT_KEY(mxf->fc, "essence codec ul", descriptor->essence_codec_ul);
776 PRINT_KEY(mxf->fc, "essence container ul", descriptor->essence_container_ul);
781 av_log(mxf->fc, AV_LOG_INFO, "broken encrypted mxf file\n");
782 for (k = 0; k < mxf->metadata_sets_count; k++) {
783 MXFMetadataSet *metadata = mxf->metadata_sets[k];
828 av_log(mxf->fc, AV_LOG_WARNING, "only frame wrapped mappings are correctly supported\n");
856 static int mxf_read_local_tags(MXFContext *mxf, KLVPacket *klv, int (*read_child)(), int ctx_size, enum MXFMetadataSetType type)
858 ByteIOContext *pb = mxf->fc->pb;
859 MXFMetadataSet *ctx = ctx_size ? av_mallocz(ctx_size) : mxf;
870 dprintf(mxf->fc, "local tag %#04x size %d\n", tag, size);
872 av_log(mxf->fc, AV_LOG_ERROR, "local tag %#04x with 0 size\n", tag);
877 for (i = 0; i < mxf->local_tags_count; i++) {
878 int local_tag = AV_RB16(mxf->local_tags+i*18);
880 memcpy(uid, mxf->local_tags+i*18+2, 16);
881 dprintf(mxf->fc, "local tag %#04x\n", local_tag);
882 PRINT_KEY(mxf->fc, "uid", uid);
894 return ctx_size ? mxf_add_metadata_set(mxf, ctx) : 0;
899 MXFContext *mxf = s->priv_data;
907 mxf->fc = s;
925 if (read(mxf, &klv, metadata->read, metadata->ctx_size, metadata->type) < 0) {
935 return mxf_parse_structural_metadata(mxf);
940 MXFContext *mxf = s->priv_data;
943 av_freep(&mxf->packages_refs);
944 for (i = 0; i < mxf->metadata_sets_count; i++) {
945 switch (mxf->metadata_sets[i]->type) {
947 av_freep(&((MXFDescriptor *)mxf->metadata_sets[i])->sub_descriptors_refs);
950 av_freep(&((MXFSequence *)mxf->metadata_sets[i])->structural_components_refs);
954 av_freep(&((MXFPackage *)mxf->metadata_sets[i])->tracks_refs);
957 mxf->metadata_sets[i] = NULL; /* will be freed later */
962 av_freep(&mxf->metadata_sets[i]);
964 av_freep(&mxf->metadata_sets);
965 av_freep(&mxf->aesc);
966 av_freep(&mxf->local_tags);
1004 "mxf",