Skip to content

Commit ed0e3c4

Browse files
committed
remove various toString calls
std::format is more efficient. Signed-off-by: Rosen Penev <[email protected]>
1 parent a8e65f4 commit ed0e3c4

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

src/quicktimevideo.cpp

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ static std::string readString(BasicIo& io, size_t size) {
629629
Exiv2::DataBuf str(size + 1);
630630
io.readOrThrow(str.data(), size);
631631
str.write_uint8(size, 0); // nul-terminate string
632-
return Exiv2::toString(str.data());
632+
return reinterpret_cast<const char*>(str.data());
633633
}
634634

635635
void QuickTimeVideo::tagDecoder(Exiv2::DataBuf& buf, size_t size, size_t recursion_depth) {
@@ -640,7 +640,7 @@ void QuickTimeVideo::tagDecoder(Exiv2::DataBuf& buf, size_t size, size_t recursi
640640
discard(size);
641641

642642
else if (dataIgnoreList(buf)) {
643-
decodeBlock(recursion_depth + 1, Exiv2::toString(buf.data()));
643+
decodeBlock(recursion_depth + 1, reinterpret_cast<const char*>(buf.data()));
644644
} else if (equalsQTimeTag(buf, "ftyp"))
645645
fileTypeDecoder(size);
646646

@@ -766,35 +766,35 @@ void QuickTimeVideo::trackApertureTagDecoder(size_t size) {
766766
io_->readOrThrow(buf.data(), 2);
767767
io_->readOrThrow(buf2.data(), 2);
768768
xmpData_["Xmp.video.CleanApertureWidth"] =
769-
Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
769+
stringFormat("{}.{}", buf.read_uint16(0, bigEndian), buf2.read_uint16(0, bigEndian));
770770
io_->readOrThrow(buf.data(), 2);
771771
io_->readOrThrow(buf2.data(), 2);
772772
xmpData_["Xmp.video.CleanApertureHeight"] =
773-
Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
773+
stringFormat("{}.{}", buf.read_uint16(0, bigEndian), buf2.read_uint16(0, bigEndian));
774774
}
775775

776776
else if (equalsQTimeTag(buf, "prof")) {
777777
io_->seek(4L, BasicIo::cur);
778778
io_->readOrThrow(buf.data(), 2);
779779
io_->readOrThrow(buf2.data(), 2);
780780
xmpData_["Xmp.video.ProductionApertureWidth"] =
781-
Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
781+
stringFormat("{}.{}", buf.read_uint16(0, bigEndian), buf2.read_uint16(0, bigEndian));
782782
io_->readOrThrow(buf.data(), 2);
783783
io_->readOrThrow(buf2.data(), 2);
784784
xmpData_["Xmp.video.ProductionApertureHeight"] =
785-
Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
785+
stringFormat("{}.{}", buf.read_uint16(0, bigEndian), buf2.read_uint16(0, bigEndian));
786786
}
787787

788788
else if (equalsQTimeTag(buf, "enof")) {
789789
io_->seek(4L, BasicIo::cur);
790790
io_->readOrThrow(buf.data(), 2);
791791
io_->readOrThrow(buf2.data(), 2);
792792
xmpData_["Xmp.video.EncodedPixelsWidth"] =
793-
Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
793+
stringFormat("{}.{}", buf.read_uint16(0, bigEndian), buf2.read_uint16(0, bigEndian));
794794
io_->readOrThrow(buf.data(), 2);
795795
io_->readOrThrow(buf2.data(), 2);
796796
xmpData_["Xmp.video.EncodedPixelsHeight"] =
797-
Exiv2::toString(buf.read_uint16(0, bigEndian)) + "." + Exiv2::toString(buf2.read_uint16(0, bigEndian));
797+
stringFormat("{}.{}", buf.read_uint16(0, bigEndian), buf2.read_uint16(0, bigEndian));
798798
}
799799
}
800800
io_->seek(cur_pos + size, BasicIo::beg);
@@ -810,11 +810,11 @@ void QuickTimeVideo::CameraTagsDecoder(size_t size) {
810810
io_->seek(cur_pos, BasicIo::beg);
811811

812812
io_->readOrThrow(buf.data(), 24);
813-
xmpData_["Xmp.video.Make"] = Exiv2::toString(buf.data());
813+
xmpData_["Xmp.video.Make"] = buf.data();
814814
io_->readOrThrow(buf.data(), 14);
815-
xmpData_["Xmp.video.Model"] = Exiv2::toString(buf.data());
815+
xmpData_["Xmp.video.Model"] = buf.data();
816816
io_->readOrThrow(buf.data(), 4);
817-
xmpData_["Xmp.video.ExposureTime"] = "1/" + Exiv2::toString(ceil(buf.read_uint32(0, littleEndian) / 10.0));
817+
xmpData_["Xmp.video.ExposureTime"] = stringFormat("1/{}", std::ceil(buf.read_uint32(0, littleEndian) / 10.0));
818818
io_->readOrThrow(buf.data(), 4);
819819
io_->readOrThrow(buf2.data(), 4);
820820
xmpData_["Xmp.video.FNumber"] =
@@ -834,7 +834,7 @@ void QuickTimeVideo::CameraTagsDecoder(size_t size) {
834834
io_->seek(95L, BasicIo::cur);
835835
io_->readOrThrow(buf.data(), 48);
836836
buf.write_uint8(48, 0);
837-
xmpData_["Xmp.video.Software"] = Exiv2::toString(buf.data());
837+
xmpData_["Xmp.video.Software"] = buf.data();
838838
io_->readOrThrow(buf.data(), 4);
839839
xmpData_["Xmp.video.ISO"] = buf.read_uint32(0, littleEndian);
840840
}
@@ -865,9 +865,9 @@ void QuickTimeVideo::userDataDecoder(size_t outer_size, size_t recursion_depth)
865865

866866
if (buf.data()[0] == 169)
867867
buf.data()[0] = ' ';
868-
td = Exiv2::find(userDatatags, Exiv2::toString(buf.data()));
868+
td = Exiv2::find(userDatatags, reinterpret_cast<const char*>(buf.data()));
869869

870-
tv = Exiv2::find(userDataReferencetags, Exiv2::toString(buf.data()));
870+
tv = Exiv2::find(userDataReferencetags, reinterpret_cast<const char*>(buf.data()));
871871

872872
if (size <= 12)
873873
break;
@@ -891,12 +891,12 @@ void QuickTimeVideo::userDataDecoder(size_t outer_size, size_t recursion_depth)
891891
enforce(tv, Exiv2::ErrorCode::kerCorruptedMetadata);
892892
io_->readOrThrow(buf.data(), 2);
893893
buf.data()[2] = '\0';
894-
tv_internal = Exiv2::find(cameraByteOrderTags, Exiv2::toString(buf.data()));
894+
tv_internal = Exiv2::find(cameraByteOrderTags, reinterpret_cast<const char*>(buf.data()));
895895

896896
if (tv_internal)
897897
xmpData_[exvGettext(tv->label_)] = exvGettext(tv_internal->label_);
898898
else
899-
xmpData_[exvGettext(tv->label_)] = Exiv2::toString(buf.data());
899+
xmpData_[exvGettext(tv->label_)] = buf.data();
900900
}
901901

902902
else if (tv) {
@@ -938,11 +938,11 @@ void QuickTimeVideo::NikonTagsDecoder(size_t size) {
938938
std::memset(buf.data(), 0x0, buf.size());
939939

940940
io_->readOrThrow(buf.data(), 4);
941-
xmpData_["Xmp.video.PictureControlVersion"] = Exiv2::toString(buf.data());
941+
xmpData_["Xmp.video.PictureControlVersion"] = buf.data();
942942
io_->readOrThrow(buf.data(), 20);
943-
xmpData_["Xmp.video.PictureControlName"] = Exiv2::toString(buf.data());
943+
xmpData_["Xmp.video.PictureControlName"] = buf.data();
944944
io_->readOrThrow(buf.data(), 20);
945-
xmpData_["Xmp.video.PictureControlBase"] = Exiv2::toString(buf.data());
945+
xmpData_["Xmp.video.PictureControlBase"] = buf.data();
946946
io_->readOrThrow(buf.data(), 4);
947947
std::memset(buf.data(), 0x0, buf.size());
948948

@@ -1047,14 +1047,14 @@ void QuickTimeVideo::NikonTagsDecoder(size_t size) {
10471047
}
10481048

10491049
if (td) {
1050-
xmpData_[exvGettext(td->label_)] = Exiv2::toString(buf.data());
1050+
xmpData_[exvGettext(td->label_)] = buf.data();
10511051
}
10521052
} else if (dataType == 4) {
10531053
dataLength = buf.read_uint16(0, bigEndian) * 4;
10541054
std::memset(buf.data(), 0x0, buf.size());
10551055
io_->readOrThrow(buf.data(), 4);
10561056
if (td)
1057-
xmpData_[exvGettext(td->label_)] = Exiv2::toString(buf.read_uint32(0, bigEndian));
1057+
xmpData_[exvGettext(td->label_)] = buf.read_uint32(0, bigEndian);
10581058

10591059
// Sanity check with an "unreasonably" large number
10601060
if (dataLength > 200 || dataLength < 4) {
@@ -1070,7 +1070,7 @@ void QuickTimeVideo::NikonTagsDecoder(size_t size) {
10701070
std::memset(buf.data(), 0x0, buf.size());
10711071
io_->readOrThrow(buf.data(), 2);
10721072
if (td)
1073-
xmpData_[exvGettext(td->label_)] = Exiv2::toString(buf.read_uint16(0, bigEndian));
1073+
xmpData_[exvGettext(td->label_)] = buf.read_uint16(0, bigEndian);
10741074

10751075
// Sanity check with an "unreasonably" large number
10761076
if (dataLength > 200 || dataLength < 2) {
@@ -1087,8 +1087,8 @@ void QuickTimeVideo::NikonTagsDecoder(size_t size) {
10871087
io_->readOrThrow(buf.data(), 4);
10881088
io_->readOrThrow(buf2.data(), 4);
10891089
if (td)
1090-
xmpData_[exvGettext(td->label_)] = Exiv2::toString(static_cast<double>(buf.read_uint32(0, bigEndian)) /
1091-
static_cast<double>(buf2.read_uint32(0, bigEndian)));
1090+
xmpData_[exvGettext(td->label_)] =
1091+
static_cast<double>(buf.read_uint32(0, bigEndian)) / static_cast<double>(buf2.read_uint32(0, bigEndian));
10921092

10931093
// Sanity check with an "unreasonably" large number
10941094
if (dataLength > 200 || dataLength < 8) {
@@ -1106,7 +1106,7 @@ void QuickTimeVideo::NikonTagsDecoder(size_t size) {
11061106
io_->readOrThrow(buf2.data(), 2);
11071107
if (td)
11081108
xmpData_[exvGettext(td->label_)] =
1109-
Exiv2::toString(buf.read_uint16(0, bigEndian)) + " " + Exiv2::toString(buf2.read_uint16(0, bigEndian));
1109+
stringFormat("{}.{}", buf.read_uint16(0, bigEndian), buf2.read_uint16(0, bigEndian));
11101110

11111111
// Sanity check with an "unreasonably" large number
11121112
if (dataLength > 200 || dataLength < 4) {
@@ -1203,14 +1203,14 @@ void QuickTimeVideo::audioDescDecoder() {
12031203
io_->readOrThrow(buf.data(), 4);
12041204
switch (i) {
12051205
case AudioFormat:
1206-
td = Exiv2::find(qTimeFileType, Exiv2::toString(buf.data()));
1206+
td = Exiv2::find(qTimeFileType, reinterpret_cast<const char*>(buf.data()));
12071207
if (td)
12081208
xmpData_["Xmp.audio.Compressor"] = exvGettext(td->label_);
12091209
else
1210-
xmpData_["Xmp.audio.Compressor"] = Exiv2::toString(buf.data());
1210+
xmpData_["Xmp.audio.Compressor"] = buf.data();
12111211
break;
12121212
case AudioVendorID:
1213-
td = Exiv2::find(vendorIDTags, Exiv2::toString(buf.data()));
1213+
td = Exiv2::find(vendorIDTags, reinterpret_cast<const char*>(buf.data()));
12141214
if (td)
12151215
xmpData_["Xmp.audio.VendorID"] = exvGettext(td->label_);
12161216
break;
@@ -1243,14 +1243,14 @@ void QuickTimeVideo::imageDescDecoder() {
12431243

12441244
switch (i) {
12451245
case codec:
1246-
td = Exiv2::find(qTimeFileType, Exiv2::toString(buf.data()));
1246+
td = Exiv2::find(qTimeFileType, reinterpret_cast<const char*>(buf.data()));
12471247
if (td)
12481248
xmpData_["Xmp.video.Codec"] = exvGettext(td->label_);
12491249
else
1250-
xmpData_["Xmp.video.Codec"] = Exiv2::toString(buf.data());
1250+
xmpData_["Xmp.video.Codec"] = buf.data();
12511251
break;
12521252
case VendorID:
1253-
td = Exiv2::find(vendorIDTags, Exiv2::toString(buf.data()));
1253+
td = Exiv2::find(vendorIDTags, reinterpret_cast<const char*>(buf.data()));
12541254
if (td)
12551255
xmpData_["Xmp.video.VendorID"] = exvGettext(td->label_);
12561256
break;
@@ -1271,7 +1271,7 @@ void QuickTimeVideo::imageDescDecoder() {
12711271
case CompressorName:
12721272
io_->readOrThrow(buf.data(), 32);
12731273
size -= 32;
1274-
xmpData_["Xmp.video.Compressor"] = Exiv2::toString(buf.data());
1274+
xmpData_["Xmp.video.Compressor"] = buf.data();
12751275
break;
12761276
default:
12771277
break;
@@ -1335,7 +1335,7 @@ void QuickTimeVideo::handlerDecoder(size_t size) {
13351335

13361336
switch (i) {
13371337
case HandlerClass:
1338-
tv = Exiv2::find(handlerClassTags, Exiv2::toString(buf.data()));
1338+
tv = Exiv2::find(handlerClassTags, reinterpret_cast<const char*>(buf.data()));
13391339
if (tv) {
13401340
if (currentStream_ == Video)
13411341
xmpData_["Xmp.video.HandlerClass"] = exvGettext(tv->label_);
@@ -1344,7 +1344,7 @@ void QuickTimeVideo::handlerDecoder(size_t size) {
13441344
}
13451345
break;
13461346
case HandlerType:
1347-
tv = Exiv2::find(handlerTypeTags, Exiv2::toString(buf.data()));
1347+
tv = Exiv2::find(handlerTypeTags, reinterpret_cast<const char*>(buf.data()));
13481348
if (tv) {
13491349
if (currentStream_ == Video)
13501350
xmpData_["Xmp.video.HandlerType"] = exvGettext(tv->label_);
@@ -1353,7 +1353,7 @@ void QuickTimeVideo::handlerDecoder(size_t size) {
13531353
}
13541354
break;
13551355
case HandlerVendorID:
1356-
tv = Exiv2::find(vendorIDTags, Exiv2::toString(buf.data()));
1356+
tv = Exiv2::find(vendorIDTags, reinterpret_cast<const char*>(buf.data()));
13571357
if (tv) {
13581358
if (currentStream_ == Video)
13591359
xmpData_["Xmp.video.HandlerVendorID"] = exvGettext(tv->label_);
@@ -1375,7 +1375,7 @@ void QuickTimeVideo::fileTypeDecoder(size_t size) {
13751375

13761376
for (int i = 0; size / 4 != 0; size -= 4, i++) {
13771377
io_->readOrThrow(buf.data(), 4);
1378-
td = Exiv2::find(qTimeFileType, Exiv2::toString(buf.data()));
1378+
td = Exiv2::find(qTimeFileType, reinterpret_cast<const char*>(buf.data()));
13791379

13801380
switch (i) {
13811381
case 0:
@@ -1389,7 +1389,7 @@ void QuickTimeVideo::fileTypeDecoder(size_t size) {
13891389
if (td)
13901390
v->read(exvGettext(td->label_));
13911391
else
1392-
v->read(Exiv2::toString(buf.data()));
1392+
v->read(reinterpret_cast<const char*>(buf.data()));
13931393
break;
13941394
}
13951395
}

0 commit comments

Comments
 (0)