MCPcopy Create free account
hub / github.com/Exiv2/exiv2 / tagDecoder

Method tagDecoder

src/quicktimevideo.cpp:633–715  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

631}
632
633void QuickTimeVideo::tagDecoder(Exiv2::DataBuf& buf, size_t size, size_t recursion_depth) {
634 enforce(recursion_depth < max_recursion_depth_, Exiv2::ErrorCode::kerCorruptedMetadata);
635 assert(buf.size() > 4);
636
637 if (ignoreList(buf))
638 discard(size);
639
640 else if (dataIgnoreList(buf)) {
641 decodeBlock(recursion_depth + 1, Exiv2::toString(buf.data()));
642 } else if (equalsQTimeTag(buf, "ftyp"))
643 fileTypeDecoder(size);
644
645 else if (equalsQTimeTag(buf, "trak"))
646 setMediaStream();
647
648 else if (equalsQTimeTag(buf, "mvhd"))
649 movieHeaderDecoder(size);
650
651 else if (equalsQTimeTag(buf, "tkhd"))
652 trackHeaderDecoder(size);
653
654 else if (equalsQTimeTag(buf, "mdhd"))
655 mediaHeaderDecoder(size);
656
657 else if (equalsQTimeTag(buf, "hdlr"))
658 handlerDecoder(size);
659
660 else if (equalsQTimeTag(buf, "vmhd"))
661 videoHeaderDecoder(size);
662
663 else if (equalsQTimeTag(buf, "udta"))
664 userDataDecoder(size, recursion_depth + 1);
665
666 else if (equalsQTimeTag(buf, "dref"))
667 multipleEntriesDecoder(recursion_depth + 1);
668
669 else if (equalsQTimeTag(buf, "stsd"))
670 sampleDesc(size);
671
672 else if (equalsQTimeTag(buf, "stts"))
673 timeToSampleDecoder();
674
675 else if (equalsQTimeTag(buf, "pnot"))
676 previewTagDecoder(size);
677
678 else if (equalsQTimeTag(buf, "tapt"))
679 trackApertureTagDecoder(size);
680
681 else if (equalsQTimeTag(buf, "keys"))
682 keysTagDecoder(size);
683
684 else if (equalsQTimeTag(buf, "url ")) {
685 if (currentStream_ == Video)
686 xmpData_["Xmp.video.URL"] = readString(*io_, size);
687 else if (currentStream_ == Audio)
688 xmpData_["Xmp.audio.URL"] = readString(*io_, size);
689 else
690 discard(size);

Callers

nothing calls this directly

Calls 10

enforceFunction · 0.85
ignoreListFunction · 0.85
dataIgnoreListFunction · 0.85
toStringFunction · 0.85
equalsQTimeTagFunction · 0.85
readStringFunction · 0.85
dataMethod · 0.80
readOrThrowMethod · 0.80
read_uint16Method · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected