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

Method videoHeaderDecoder

src/quicktimevideo.cpp:1300–1325  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1298} // QuickTimeVideo::multipleEntriesDecoder
1299
1300void QuickTimeVideo::videoHeaderDecoder(size_t size) {
1301 DataBuf buf(3);
1302 std::memset(buf.data(), 0x0, buf.size());
1303 buf.data()[2] = '\0';
1304 currentStream_ = Video;
1305
1306 const TagDetails* td;
1307
1308 for (int i = 0; size / 2 != 0; size -= 2, i++) {
1309 io_->readOrThrow(buf.data(), 2);
1310
1311 switch (i) {
1312 case GraphicsMode:
1313 td = Exiv2::find(graphicsModetags, buf.read_uint16(0, bigEndian));
1314 if (td)
1315 xmpData_["Xmp.video.GraphicsMode"] = exvGettext(td->label_);
1316 break;
1317 case OpColor:
1318 xmpData_["Xmp.video.OpColor"] = buf.read_uint16(0, bigEndian);
1319 break;
1320 default:
1321 break;
1322 }
1323 }
1324 io_->readOrThrow(buf.data(), size % 2);
1325} // QuickTimeVideo::videoHeaderDecoder
1326
1327void QuickTimeVideo::handlerDecoder(size_t size) {
1328 size_t cur_pos = io_->tell();

Callers

nothing calls this directly

Calls 6

exvGettextFunction · 0.85
dataMethod · 0.80
readOrThrowMethod · 0.80
read_uint16Method · 0.80
findFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected