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

Method trackApertureTagDecoder

src/quicktimevideo.cpp:756–803  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

754} // QuickTimeVideo::keysTagDecoder
755
756void QuickTimeVideo::trackApertureTagDecoder(size_t size) {
757 DataBuf buf(4);
758 DataBuf buf2(2);
759 size_t cur_pos = io_->tell();
760 byte n = 3;
761
762 while (n--) {
763 io_->seek(static_cast<long>(4), BasicIo::cur);
764 io_->readOrThrow(buf.data(), 4);
765
766 if (equalsQTimeTag(buf, "clef")) {
767 io_->seek(static_cast<long>(4), BasicIo::cur);
768 io_->readOrThrow(buf.data(), 2);
769 io_->readOrThrow(buf2.data(), 2);
770 xmpData_["Xmp.video.CleanApertureWidth"] =
771 Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
772 io_->readOrThrow(buf.data(), 2);
773 io_->readOrThrow(buf2.data(), 2);
774 xmpData_["Xmp.video.CleanApertureHeight"] =
775 Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
776 }
777
778 else if (equalsQTimeTag(buf, "prof")) {
779 io_->seek(static_cast<long>(4), BasicIo::cur);
780 io_->readOrThrow(buf.data(), 2);
781 io_->readOrThrow(buf2.data(), 2);
782 xmpData_["Xmp.video.ProductionApertureWidth"] =
783 Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
784 io_->readOrThrow(buf.data(), 2);
785 io_->readOrThrow(buf2.data(), 2);
786 xmpData_["Xmp.video.ProductionApertureHeight"] =
787 Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
788 }
789
790 else if (equalsQTimeTag(buf, "enof")) {
791 io_->seek(static_cast<long>(4), BasicIo::cur);
792 io_->readOrThrow(buf.data(), 2);
793 io_->readOrThrow(buf2.data(), 2);
794 xmpData_["Xmp.video.EncodedPixelsWidth"] =
795 Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
796 io_->readOrThrow(buf.data(), 2);
797 io_->readOrThrow(buf2.data(), 2);
798 xmpData_["Xmp.video.EncodedPixelsHeight"] =
799 Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
800 }
801 }
802 io_->seek(static_cast<long>(cur_pos + size), BasicIo::beg);
803} // QuickTimeVideo::trackApertureTagDecoder
804
805void QuickTimeVideo::CameraTagsDecoder(size_t size_external) {
806 size_t cur_pos = io_->tell();

Callers

nothing calls this directly

Calls 7

equalsQTimeTagFunction · 0.85
toStringFunction · 0.85
tellMethod · 0.80
seekMethod · 0.80
readOrThrowMethod · 0.80
dataMethod · 0.80
read_uint16Method · 0.80

Tested by

no test coverage detected