| line | true | false | branch | 
 
| 142 | 0 | 0 | if (@v == 2 or @v == 3) | 
 
| 146 | 0 | 0 | $below ? : | 
 
|  | 0 | 0 | if @v == 3 | 
 
| 149 | 0 | 0 | if $val =~ m[^([-+]\d+(\.\d*)?){2,3}(CRS.*)?/?$] | 
 
| 162 | 0 | 0 | if (@a == 2 or @a == 3) | 
 
| 171 | 0 | 0 | unless &Image::ExifTool::IsFloat($_) | 
 
| 172 | 0 | 0 | length $3 < 3 ? : | 
 
| 176 | 0 | 0 | if $val =~ m[^([-+]\d+(\.\d*)?){2,3}(CRS.*)?/?$] | 
 
| 193 | 0 | 3 | if $len < 8 | 
 
| 201 | 0 | 3 | unless $ok{$noff} and $ok{$nlen} and $ok{$nbas} and $ok{$nind} | 
 
| 203 | 3 | 0 | $noff == 4 ? : | 
 
| 204 | 3 | 0 | if ($ver < 2) { } | 
 
| 208 | 0 | 0 | if $len < 10 | 
 
| 213 | 9 | 0 | if ($ver < 2) { } | 
 
| 214 | 0 | 9 | if $pos + 2 > $len | 
 
| 218 | 0 | 0 | if $pos + 4 > $len | 
 
| 223 | 0 | 9 | if ($ver == 1 or $ver == 2) | 
 
| 224 | 0 | 0 | if $pos + 2 > $len | 
 
| 230 | 0 | 9 | if $pos + 2 > $len | 
 
| 232 | 0 | 9 | if ($drefIdx) | 
 
| 233 | 0 | 0 | if ($et->{'QtDataRef'} and $et->{'QtDataRef'}[$drefIdx - 1]) { } | 
 
| 236 | 0 | 0 | unless $dref->[1] == 1 and $dref->[0] ne "rsrc" | 
 
| 245 | 6 | 3 | if ($base_offset and not $constOff) | 
 
| 246 | 6 | 0 | $nbas == 4 ? : | 
 
| 249 | 0 | 9 | if $pos + 2 > $len | 
 
| 255 | 0 | 9 | if $ver == 1 or $ver == 2 | 
 
| 257 | 0 | 9 | unless defined $extent_offset | 
 
| 258 | 9 | 0 | unless ($constOff) | 
 
| 259 | 9 | 0 | if $noff | 
 
| 260 | 9 | 0 | if not defined $minOffset or $minOffset > $extent_offset | 
 
| 262 | 0 | 9 | if $pos + $nlen > length $$dataPt | 
 
| 267 | 3 | 6 | if (defined $minOffset and $minOffset > $base_offset) { } | 
 
| 285 | 0 | 96 | unless $langCode | 
 
| 288 | 96 | 0 | unless defined $writable | 
 
| 289 | 0 | 96 | unless $writable | 
 
| 303 | 147 | 430 | unless $format | 
 
| 317 | 22 | 0 | unless $format | 
 
| 318 | 2 | 20 | if ($format and $format ne 'string' or not $format and $writable and $writable ne 'string') { } | 
 
|  | 0 | 20 | elsif ($$valPt =~ /^\xff\xd8\xff/) { } | 
 
|  | 0 | 20 | elsif ($$valPt =~ /^(\x89P|\x8aM|\x8bJ)NG\r\n\x1a\n/) { } | 
 
|  | 0 | 20 | elsif ($$valPt =~ /^BM.{15}\0/s) { } | 
 
| 320 | 0 | 2 | if ($writable and $qtFormat{$writable}) { } | 
 
| 335 | 0 | 22 | unless defined $$valPt | 
 
| 346 | 6 | 0 | if ($n == 4) { } | 
 
|  | 0 | 0 | elsif ($n == 8) { } | 
 
| 361 | 174 | 9 | unless $et | 
 
| 367 | 0 | 9 | if $dirLen < 8 | 
 
| 368 | 3 | 6 | if ($et->{'DEL_GROUP'}{'Keys'}) | 
 
| 373 | 0 | 3 | $n == 1 ? : | 
 
| 384 | 0 | 15 | if $len < 8 or $pos + $len > $dirLen | 
 
| 388 | 15 | 0 | if $ns eq "mdta" | 
 
| 389 | 0 | 15 | unless $tag | 
 
| 392 | 15 | 0 | if ($tagInfo) | 
 
| 394 | 2 | 13 | if ($newTags->{$tag}) | 
 
| 397 | 1 | 1 | if ($nvHash and $et->IsOverwriting($nvHash) > 0 and not defined $et->GetNewValue($nvHash)) | 
 
| 401 | 6 | 0 | unless $newTags->{$t}{'SrcTagInfo'} and $newTags->{$t}{'SrcTagInfo'} eq $tagInfo | 
 
| 403 | 0 | 0 | unless $et->IsOverwriting($nv) and defined $et->GetNewValue($nv) | 
 
| 407 | 1 | 0 | unless ($dontDelete) | 
 
| 427 | 1 | 11 | if ($tagInfo->{'LangCode'} and $tagInfo->{'SrcTagInfo'}) { } | 
 
| 432 | 3 | 9 | if $done{$id} | 
 
| 434 | 0 | 5 | unless $nvHash->{'IsCreating'} and $et->IsOverwriting($nvHash) and defined $et->GetNewValue($nvHash) | 
 
| 437 | 0 | 5 | $id =~ /^com\./ ? : | 
 
| 444 | 8 | 1 | if ($num) { } | 
 
| 471 | 0 | 3 | unless $items and $raf | 
 
| 478 | 0 | 9 | unless defined $primary | 
 
| 481 | 6 | 3 | unless $item->{'RefersTo'} and $item->{'RefersTo'}{$primary} | 
 
| 485 | 0 | 3 | unless $name | 
 
| 486 | 0 | 3 | unless $et->{'EDIT_DIRS'}{$name} | 
 
| 489 | 0 | 3 | unless $boxPos->{'iloc'} | 
 
| 490 | 0 | 3 | unless $item->{'Extents'} and @{$item->{'Extents'};} | 
 
| 491 | 0 | 3 | if $item->{'ContentEncoding'} | 
 
| 492 | 0 | 3 | if $item->{'ProtectionIndex'} | 
 
| 493 | 0 | 3 | if $item->{'ConstructionMethod'} | 
 
| 494 | 0 | 3 | if $item->{'DataReferenceIndex'} | 
 
| 495 | 0 | 3 | if $warn | 
 
| 499 | 0 | 3 | if defined $buff | 
 
| 501 | 2 | 1 | if ($extent->[2]) { } | 
 
| 502 | 0 | 2 | unless $raf->Seek($pos, 0) | 
 
| 503 | 0 | 2 | unless $raf->Read($buff, $extent->[2]) | 
 
| 509 | 0 | 3 | unless defined $buff | 
 
| 510 | 0 | 3 | if length $val | 
 
| 512 | 1 | 2 | if ($name eq 'EXIF') { } | 
 
| 513 | 0 | 1 | if (not length $buff) { } | 
 
|  | 0 | 1 | elsif ($buff =~ /^(MM\0\x2a|II\x2a\0)/) { } | 
 
|  | 1 | 0 | elsif (length $buff >= 4 and length $buff >= 4 + unpack('N', $buff)) { } | 
 
| 539 | 3 | 0 | if (defined $newVal and $changed ne $et->{'CHANGED'} and $dirInfo{'DirLen'} || length $newVal) | 
 
| 543 | 1 | 2 | if length $hdr and length $newVal | 
 
| 551 | 0 | 3 | if ($nlen == 8) { } | 
 
|  | 3 | 0 | elsif ($n <= 4294967295) { } | 
 
| 561 | 0 | 3 | if (@{$item->{'Extents'};} != 1) | 
 
| 572 | 4 | 2 | if $did{$name} or not $et->{'ADD_DIRS'}{$name} | 
 
| 575 | 0 | 2 | if (@missing) | 
 
| 576 | 0 | 0 | @missing > 1 ? : | 
 
| 580 | 0 | 2 | unless (defined $et->{'PrimaryItem'}) | 
 
| 581 | 0 | 0 | unless (defined $primary) | 
 
| 586 | 0 | 0 | if ($primary < 65536) { } | 
 
| 595 | 1 | 1 | if ($name eq 'EXIF') { } | 
 
| 611 | 2 | 0 | if (defined $newVal and $changed ne $et->{'CHANGED'}) | 
 
| 613 | 2 | 0 | if ($boxPos->{'iref'}) { } | 
 
| 617 | 0 | 0 | $primary < 65536 ? : | 
 
| 620 | 1 | 1 | if length $hdr | 
 
| 622 | 2 | 0 | unless defined $add{'iinf'} | 
 
| 624 | 1 | 1 | if ($name eq 'XMP') { } | 
 
| 634 | 2 | 0 | if ($id < 65536) { } | 
 
| 641 | 0 | 2 | if ($irefVer) { } | 
 
| 654 | 2 | 0 | if ($ilocVer == 0) { } | 
 
|  | 0 | 0 | elsif ($ilocVer == 1) { } | 
 
|  | 0 | 0 | elsif ($ilocVer == 2) { } | 
 
| 675 | 0 | 2 | unless my $off = $dirInfo->{'ChunkOffset'} | 
 
| 677 | 2 | 0 | if ($noff == 4) { } | 
 
|  | 0 | 0 | elsif ($noff == 8) { } | 
 
|  | 0 | 0 | elsif ($noff == 0) { } | 
 
| 683 | 0 | 0 | if ($nbas == 4) { } | 
 
|  | 0 | 0 | elsif ($nbas == 8) { } | 
 
| 703 | 2 | 1 | if ($countNew) | 
 
| 709 | 6 | 6 | unless $add{$tag} | 
 
| 711 | 6 | 0 | $boxPos->{$tag}[1] ? : | 
 
| 712 | 0 | 0 | unless $tag eq "iref" | 
 
| 720 | 2 | 4 | if ($tag eq 'iinf') { } | 
 
|  | 2 | 2 | elsif ($tag eq 'iref') { } | 
 
|  | 2 | 0 | elsif ($tag eq 'iloc') { } | 
 
|  | 0 | 0 | elsif ($tag ne 'hdlr') { } | 
 
| 722 | 0 | 2 | if ($iinfVer == 0) { } | 
 
| 733 | 2 | 0 | if ($ilocVer < 2) { } | 
 
| 741 | 0 | 2 | if ($added) | 
 
| 753 | 3 | 0 | @mdatEdit ? : | 
 
| 767 | 504 | 305 | unless $et | 
 
| 780 | 287 | 18 | $dataPt ? : | 
 
| 782 | 287 | 18 | if ($dataPt) { } | 
 
| 785 | 0 | 18 | unless $raf | 
 
| 791 | 56 | 249 | if $dirStart | 
 
| 797 | 8 | 297 | if ($addDirs->{'Keys'} and $curPath =~ /^MOV-Movie(-Meta)?$/) { } | 
 
|  | 9 | 288 | elsif ($curPath eq 'MOV-Movie-Meta-ItemList') { } | 
 
| 802 | 9 | 0 | if ($keys) | 
 
| 807 | 14 | 1 | if $keys->{'Remap'}{$index} | 
 
| 814 | 10 | 2 | unless $index | 
 
| 816 | 1 | 1 | if ($tagInfo->{'LangCode'}) | 
 
| 818 | 1 | 0 | unless $langTags{$id} | 
 
| 830 | 30 | 2 | unless $newTags->{$_}{'LangCode'} and $newTags->{$_}{'SrcTagInfo'} | 
 
| 832 | 2 | 0 | unless $langTags{$id} | 
 
| 836 | 114 | 191 | if ($curPath eq $writePath or $createKeys) | 
 
| 840 | 3 | 302 | if $tagTablePtr->{'VARS'} | 
 
| 843 | 0 | 0 | if (defined $atomCount and --$atomCount < 0 and $dataPt) | 
 
| 845 | 0 | 0 | unless &Write($outfile, substr($$dataPt, $raf->Tell)) | 
 
| 850 | 305 | 1042 | unless ($n == 8) | 
 
| 851 | 0 | 305 | if ($n == 4 and $hdr eq "\000\000\000\000") { } | 
 
|  | 0 | 305 | elsif ($n != 0) { } | 
 
| 862 | 3 | 1039 | if ($size == -7) { } | 
 
|  | 0 | 1039 | elsif ($size == -8) { } | 
 
|  | 0 | 1039 | elsif ($size < 0) { } | 
 
| 864 | 0 | 3 | unless $raf->Read($buff, 8) == 8 | 
 
| 867 | 0 | 3 | if ($hi or $lo > 2147483647) | 
 
| 868 | 0 | 0 | if ($hi > 2147483647) { } | 
 
|  | 0 | 0 | elsif (not $et->Options('LargeFileSupport')) { } | 
 
| 877 | 0 | 3 | if $size < 0 | 
 
| 879 | 0 | 0 | if ($dataPt) { } | 
 
| 880 | 0 | 0 | if $dirInfo->{'DirName'} eq "CanonCNTH" | 
 
| 898 | 21 | 1021 | if ($tag eq 'mdat') { } | 
 
|  | 0 | 1021 | elsif ($tag eq 'cmov') { } | 
 
|  | 0 | 1021 | elsif ($tag eq 'wide') { } | 
 
| 899 | 0 | 21 | if ($dataPt) | 
 
| 904 | 0 | 21 | unless $raf->Seek($size, 1) | 
 
| 915 | 2 | 1019 | if (not $size) { } | 
 
| 920 | 0 | 1019 | $size > $maxReadLen ? : | 
 
| 922 | 0 | 1021 | if ($got != $size) | 
 
| 924 | 0 | 0 | if ($got <= 256 and $size >= 1024 and $tag ne 'mdat') { } | 
 
| 926 | 0 | 0 | if ($et->{'OPTIONS'}{'IgnoreMinorErrors'}) { } | 
 
| 935 | 0 | 0 | if ($size > $maxReadLen and $got == 65536) { } | 
 
| 945 | 75 | 946 | if ($tag eq "hdlr" and length $buff >= 12) | 
 
| 947 | 30 | 45 | if $hdlr =~ /^(vide|soun)$/ | 
 
| 952 | 49 | 972 | if ($tag =~ /^(stco|co64|iloc|mfra|moof|sidx|saio|gps |CTBO|uuid)$/) | 
 
| 955 | 0 | 49 | if ($tag eq 'mfra' or $tag eq 'moof') { } | 
 
|  | 0 | 49 | elsif ($tag eq 'sidx' or $tag eq 'saio') { } | 
 
|  | 3 | 46 | elsif ($tag eq 'iloc') { } | 
 
|  | 0 | 46 | elsif ($tag eq 'gps ') { } | 
 
|  | 13 | 33 | elsif ($tag eq 'CTBO' or $tag eq 'uuid') { } | 
 
|  | 0 | 33 | elsif (not $flg) { } | 
 
|  | 0 | 33 | elsif ($flg == 3) { } | 
 
|  | 33 | 0 | elsif ($flg == 1) { } | 
 
| 962 | 0 | 3 | unless &Handle_iloc($et, $dirInfo, \$buff, $outfile) | 
 
| 965 | 0 | 0 | if ($dirInfo->{'DirID'} and $dirInfo->{'DirID'} eq "moov" and length $buff > 8) | 
 
| 968 | 0 | 0 | if $num * 8 + 8 > length $buff | 
 
| 993 | 21 | 808 | if $tagInfo and $tagInfo->{'WriteHook'} | 
 
| 996 | 21 | 0 | if (not $tagInfo and $dirName eq "ItemList" and $et->{'Keys'}) | 
 
| 999 | 21 | 0 | if (defined $newIndex) { } | 
 
| 1001 | 7 | 14 | unless ($newIndex) | 
 
| 1002 | 1 | 6 | if ($tagInfo) { } | 
 
| 1011 | 2 | 12 | unless ($keysIndex == $newIndex) | 
 
| 1020 | 77 | 937 | if ($delGrp) | 
 
| 1021 | 44 | 33 | if ($dirName eq 'ItemList') { } | 
 
|  | 14 | 31 | elsif ($dirName eq 'UserData' and not $tagInfo && $tagInfo->{'SubDirectory'}) { } | 
 
| 1031 | 0 | 785 | if $tagInfo and $tagInfo->{'Unknown'} | 
 
| 1033 | 785 | 0 | if ($tagInfo and !defined($tagInfo->{'Writable'}) || $tagInfo->{'Writable'}) | 
 
| 1037 | 565 | 220 | if ($subdir) { } | 
 
| 1039 | 33 | 532 | if $tag eq "trak" | 
 
| 1046 | 0 | 565 | if ($subdir->{'Base'}) | 
 
| 1051 | 0 | 0 | if $localBase <= $hdrLen | 
 
| 1076 | 0 | 565 | if $et->Options("QuickTimePad") | 
 
| 1079 | 62 | 503 | if ($hdrLen and $hdrLen < $size) | 
 
| 1083 | 7 | 558 | if $subdir->{'ByteOrder'} and $subdir->{'ByteOrder'} =~ /^Little/ | 
 
| 1085 | 33 | 532 | if ($subName eq "Track") | 
 
| 1086 | 15 | 18 | unless $track | 
 
| 1091 | 37 | 528 | unless $subTable->{'GROUPS'}{'0'} eq "QuickTime" | 
 
| 1094 | 33 | 532 | if ($et->{'DemoteErrors'}) | 
 
| 1096 | 0 | 33 | if $et->{'DemoteErrors'} > 1 | 
 
| 1099 | 0 | 9 | if (defined $newData and not length $newData and $tagInfo->{'Permanent'} || $tagTablePtr->{'PERMANENT'} && !defined($tagInfo->{'Permanent'})) | 
 
| 1109 | 56 | 1 | if ($start and defined $newData and length $newData || defined $tagInfo->{'Permanent'} && !$tagInfo->{'Permanent'}) | 
 
| 1116 | 34 | 192 | if ($curPath eq $writePath and $addDirs->{$subName} and $addDirs->{$subName} eq $dirName) | 
 
| 1124 | 2 | 211 | if ($nvHash or $langTags{$tag} or $delGrp) | 
 
| 1130 | 5 | 4 | if ($hasData) { } | 
 
|  | 0 | 4 | elsif ($format) { } | 
 
|  | 4 | 0 | elsif ($tag =~ /^\xa9/ || $tagInfo->{'IText'} and $size >= ($tagInfo->{'IText'} || 4)) { } | 
 
| 1133 | 5 | 5 | if ($pos + 16 > $size) | 
 
| 1135 | 1 | 4 | if ($langTags{$tag}) | 
 
| 1138 | 1 | 1 | $tg ? : | 
 
| 1140 | 1 | 1 | unless $nvHash and not $didTag->{$nvHash} | 
 
| 1142 | 0 | 1 | unless $nvHash->{'IsCreating'} and $et->IsOverwriting($nvHash) | 
 
| 1144 | 0 | 1 | unless defined $newVal | 
 
| 1147 | 0 | 1 | unless defined $newVal | 
 
| 1149 | 1 | 0 | if ($ti->{'LangCode'}) | 
 
| 1150 | 0 | 1 | unless ($ti->{'LangCode'} =~ /^([A-Z]{3})?[-_]?([A-Z]{2})?$/i) | 
 
| 1155 | 1 | 0 | if ($1 and $1 ne "und") | 
 
| 1158 | 1 | 0 | if $2 and $2 ne "ZZ" | 
 
| 1160 | 1 | 0 | unless defined $newData | 
 
| 1170 | 5 | 0 | unless $lang | 
 
| 1178 | 0 | 0 | if $nvHash or not $ctry or $lang ne $undLang or length $langCode == 2 | 
 
| 1184 | 4 | 1 | if (not $nvHash and $nvHashNoLang) | 
 
| 1185 | 4 | 0 | if ($lang eq $undLang and not $ctry and not $didTag->{$nvHashNoLang}) { } | 
 
| 1191 | 0 | 5 | if $pos + $len > $size | 
 
| 1192 | 5 | 0 | if ($type eq 'data' and $len >= 16) { } | 
 
|  | 0 | 0 | elsif (defined $newData) { } | 
 
| 1197 | 5 | 0 | if ($Image::ExifTool::QuickTime::stringEncoding{$flags}) { } | 
 
| 1199 | 5 | 0 | unless $tagInfo->{'Binary'} | 
 
| 1202 | 0 | 0 | if ($format) { } | 
 
| 1204 | 0 | 0 | if ($tagInfo->{'Writable'} and $qtFormat{$tagInfo->{'Writable'}}) { } | 
 
|  | 0 | 0 | elsif ($qtFormat{$format}) { } | 
 
| 1212 | 0 | 0 | if $format | 
 
| 1214 | 3 | 2 | if ($nvHash and $et->IsOverwriting($nvHash, $val) or $delTag) { } | 
 
|  | 0 | 2 | elsif (defined $newData) { } | 
 
| 1215 | 3 | 0 | if defined $nvHash | 
 
| 1216 | 0 | 3 | if ($delTag or not defined $newVal or $didTag->{$nvHash}) | 
 
| 1221 | 0 | 0 | unless defined $newData | 
 
| 1228 | 0 | 3 | unless defined $newVal | 
 
| 1232 | 3 | 0 | unless defined $newData | 
 
| 1233 | 3 | 0 | $lang eq $undLang ? : | 
 
| 1243 | 4 | 1 | if $nvHash | 
 
| 1245 | 0 | 5 | if defined $newData and $pos < $size | 
 
| 1251 | 0 | 4 | if ($tagInfo->{'IText'} and $tagInfo->{'IText'} >= 6) { } | 
 
| 1260 | 0 | 4 | if 4 + $len > $size | 
 
| 1261 | 0 | 4 | if $len > $size - 4 or $len < 0 | 
 
| 1264 | 4 | 0 | unless $lang | 
 
| 1266 | 0 | 4 | if ($lang < 1024 and not $val =~ /^\xfe\xff/) { } | 
 
| 1270 | 0 | 4 | $val =~ s/^\xfe\xff// ? : | 
 
| 1272 | 4 | 0 | unless ($tagInfo->{'NoDecode'}) | 
 
| 1276 | 0 | 4 | if defined $hdr | 
 
| 1280 | 3 | 1 | if (not $nvHash and $nvHashNoLang) | 
 
| 1281 | 3 | 0 | if ($lang eq $undLang and not $didTag->{$nvHashNoLang}) { } | 
 
|  | 0 | 0 | elsif ($canCreate) { } | 
 
| 1293 | 0 | 0 | if ($tag =~ /^\xa9/ or $tagInfo->{'IText'}) | 
 
| 1297 | 3 | 6 | if ($nvHash and defined $val) | 
 
| 1298 | 3 | 0 | if ($et->IsOverwriting($nvHash, $val)) | 
 
| 1300 | 0 | 3 | unless defined $newData or $canCreate | 
 
| 1304 | 0 | 3 | unless defined $newData and not $didTag->{$nvHash} | 
 
| 1307 | 3 | 0 | if (defined $lang) { } | 
 
|  | 0 | 0 | elsif (not $format or $format =~ /^string/ and not $tagInfo->{'Binary'} and not $tagInfo->{'ValueConv'}) { } | 
 
|  | 0 | 0 | elsif ($format and not $tagInfo->{'Binary'}) { } | 
 
| 1310 | 0 | 3 | if ($iText > 6) | 
 
| 1311 | 0 | 0 | if length $newData < $iText - 6 | 
 
| 1315 | 3 | 0 | unless ($tagInfo->{'NoDecode'}) | 
 
| 1316 | 0 | 3 | $lang < 1024 ? : | 
 
| 1318 | 3 | 0 | $lang eq $undLang ? : | 
 
| 1319 | 3 | 0 | if ($iText < 6) { } | 
 
|  | 0 | 0 | elsif ($iText == 6) { } | 
 
| 1341 | 394 | 391 | if (defined $newData) | 
 
| 1344 | 0 | 394 | if ($sizeDiff > 0 and $tagInfo->{'PreservePadding'} and $et->Options('QuickTimePad')) { } | 
 
|  | 67 | 327 | elsif ($sizeDiff) { } | 
 
| 1351 | 0 | 394 | if $len > 2147483647 | 
 
| 1353 | 5 | 389 | if $tag eq "uuid" | 
 
| 1354 | 9 | 385 | unless $len > 8 | 
 
| 1356 | 153 | 232 | if (@chunkOffset) | 
 
| 1360 | 1 | 384 | if ($tagInfo->{'WriteLast'}) { } | 
 
| 1365 | 0 | 384 | unless &Write($outfile, &Set32u($len), $tag, $newData) | 
 
| 1371 | 0 | 562 | if ($tag eq 'dinf') { } | 
 
|  | 33 | 529 | elsif ($parent eq 'DataInfo' and length $buff >= 4) { } | 
 
|  | 33 | 992 | elsif ($tag eq 'stsd' and length $buff >= 8) { } | 
 
| 1381 | 0 | 33 | unless $pos + 16 <= length $buff | 
 
| 1383 | 0 | 33 | unless $pos + $siz <= length $buff | 
 
| 1386 | 0 | 33 | if (not $drefIdx) { } | 
 
|  | 33 | 0 | elsif ($drefTbl and $$drefTbl[$drefIdx - 1]) { } | 
 
| 1391 | 33 | 0 | $dref->[1] == 1 && $dref->[0] ne 'rsrc' ? : | 
 
| 1398 | 0 | 33 | if ($msg) | 
 
| 1400 | 0 | 0 | if ($et->{'HandlerType'}) | 
 
| 1409 | 0 | 562 | if ($tagInfo and $tagInfo->{'WriteLast'}) { } | 
 
| 1415 | 0 | 562 | unless &Write($outfile, $hdr, $buff) | 
 
| 1418 | 0 | 7 | $delCount == 1 ? : | 
 
|  | 7 | 298 | if $delCount | 
 
| 1420 | 247 | 58 | unless $addDirs->{'Keys'} | 
 
| 1423 | 79 | 35 | if ($canCreate and exists $et->{'EDIT_DIRS'}{$dirName} || $createKeys) | 
 
| 1430 | 15 | 64 | if ($createKeys) | 
 
| 1431 | 2 | 13 | if ($curPath eq 'MOV-Movie') { } | 
 
|  | 4 | 9 | elsif ($curPath eq 'MOV-Movie-Meta') { } | 
 
|  | 9 | 0 | elsif ($curPath eq 'MOV-Movie-Meta-ItemList' and $et->{'Keys'}) { } | 
 
| 1433 | 2 | 0 | unless ($didDir{'meta'}) | 
 
| 1442 | 8 | 0 | if $didDir{$_} | 
 
| 1460 | 0 | 53 | if defined $tagInfo->{'CanCreate'} and not $tagInfo->{'CanCreate'} | 
 
| 1462 | 0 | 0 | if defined $tagInfo->{'HandlerType'} and !$et->{'HandlerType'} || $et->{'HandlerType'} ne $tagInfo->{'HandlerType'} | 
 
| 1464 | 39 | 14 | unless ($subdir) | 
 
| 1466 | 8 | 31 | unless $nvHash and not $didTag->{$nvHash} | 
 
| 1467 | 13 | 18 | unless $nvHash->{'IsCreating'} and $et->IsOverwriting($nvHash) | 
 
| 1469 | 0 | 18 | unless defined $newVal | 
 
| 1472 | 0 | 18 | unless defined $newVal | 
 
| 1475 | 0 | 18 | if ($tagInfo->{'LangCode'}) | 
 
| 1477 | 0 | 0 | unless ($tagInfo->{'LangCode'} =~ /^([A-Z]{3})?[-_]?([A-Z]{2})?$/i) | 
 
| 1482 | 0 | 0 | if ($1 and $1 ne "und") | 
 
| 1485 | 0 | 0 | if $2 and $2 ne "ZZ" | 
 
| 1487 | 11 | 7 | if ($dirInfo->{'HasData'}) { } | 
 
|  | 7 | 0 | elsif ($tag =~ /^\xa9/ or $tagInfo->{'IText'}) { } | 
 
|  | 0 | 0 | elsif ($ctry or $lang) { } | 
 
| 1491 | 0 | 7 | if ($ctry) { } | 
 
|  | 2 | 5 | elsif ($tagInfo->{'IText'} and $tagInfo->{'IText'} >= 6) { } | 
 
| 1499 | 0 | 2 | if length $newVal < $n | 
 
| 1510 | 0 | 18 | if ($tagInfo->{'WriteLast'}) { } | 
 
| 1514 | 0 | 18 | unless &Write($outfile, &Set32u(8 + length($newVal)), $tag, $newVal) | 
 
| 1525 | 2 | 12 | if ($createKeys and $curPath eq 'MOV-Movie' and $subName eq 'Meta') { } | 
 
|  | 0 | 12 | elsif ($createKeys and $curPath eq 'MOV-Movie-Meta') { } | 
 
|  | 2 | 10 | elsif ($subName eq 'Meta' and $et->{'OPTIONS'}{'QuickTimeHandler'}) { } | 
 
| 1532 | 0 | 0 | $subName eq 'Keys' ? : | 
 
| 1538 | 0 | 10 | unless $curPath eq $writePath and $addDirs->{$subName} and $addDirs->{$subName} eq $dirName | 
 
| 1553 | 14 | 0 | if ($newData and length $newData <= 2147483639) | 
 
| 1556 | 5 | 9 | if ($subdir->{'Start'}) | 
 
| 1557 | 2 | 3 | if ($subdir->{'Start'} == 4) { } | 
 
| 1562 | 3 | 0 | if $cond and $cond =~ m[=~\s*\/\^(.*)/] | 
 
| 1563 | 0 | 3 | unless length $prefix == $subdir->{'Start'} | 
 
| 1567 | 1 | 13 | if ($tagInfo->{'WriteLast'}) { } | 
 
| 1570 | 2 | 11 | if ($tag eq "uuid") | 
 
| 1576 | 0 | 13 | unless &Write($outfile, $newHdr, $newData) | 
 
| 1581 | 14 | 0 | unless $subName eq "Keys" | 
 
| 1585 | 3 | 0 | if ($curPath eq "MOV-Meta" and $et->{'EDIT_DIRS'}{'ItemInformation'}) | 
 
| 1588 | 3 | 0 | if ($mdatEdit) | 
 
| 1589 | 0 | 3 | if $et->{'mdatEdit'} | 
 
| 1594 | 0 | 305 | if $term and length $$outfile | 
 
| 1597 | 24 | 281 | if ($dirName eq "Meta") | 
 
| 1601 | 2 | 22 | if ($isEmpty) | 
 
| 1602 | 2 | 0 | if %boxPos | 
 
| 1606 | 9 | 15 | if ($curPath eq "MOV-Movie-Meta") | 
 
| 1613 | 287 | 18 | if ($dataPt) | 
 
| 1614 | 0 | 287 | if $writeLast | 
 
| 1615 | 0 | 287 | $err ? : | 
 
| 1620 | 0 | 18 | unless (@mdat) | 
 
| 1622 | 0 | 0 | if $co->[0] eq "uuid" | 
 
| 1632 | 3 | 15 | if ($et->{'mdatEdit'}) | 
 
| 1640 | 10 | 2 | if (length $mdat->[2]) | 
 
| 1650 | 7 | 5 | if defined $mdat->[5] or $changed | 
 
| 1651 | 5 | 0 | if (not $edit->[0] or ($edit->[0] < $mdat->[1] || !$mdat->[1] and $edit->[1] > $mdat->[0] or $edit->[0] == $edit->[1] and $edit->[0] == $mdat->[0] || $edit->[0] == $mdat->[1])) | 
 
| 1657 | 2 | 3 | if (not $edit->[0]) { } | 
 
|  | 0 | 3 | elsif ($edit->[0] < $mdat->[0] or $edit->[1] > $mdat->[1] and $mdat->[1]) { } | 
 
| 1664 | 0 | 5 | unless $hdrChunk | 
 
| 1666 | 5 | 0 | $edit->[2] ? : | 
 
| 1668 | 5 | 0 | if ($diff) | 
 
| 1669 | 5 | 0 | if (length $hdrChunk->[2] == 8) { } | 
 
|  | 0 | 0 | elsif (length $hdrChunk->[2] == 16) { } | 
 
| 1671 | 5 | 0 | if ($size) | 
 
| 1673 | 0 | 5 | if $size > 4294967295 | 
 
| 1678 | 0 | 0 | if ($size) | 
 
| 1689 | 0 | 5 | if ($edit->[0] > $mdat->[0]) { } | 
 
| 1690 | 0 | 0 | if $edit->[2] | 
 
| 1695 | 5 | 0 | if ($edit->[2]) | 
 
| 1700 | 5 | 0 | if ($edit->[3]) | 
 
| 1703 | 14 | 5 | unless defined $co->[4] and $co->[4] == $edit->[3] | 
 
| 1705 | 5 | 0 | if ($co->[0] eq 'stco_iloc') { } | 
 
| 1711 | 0 | 5 | unless $n == 1 | 
 
| 1718 | 5 | 0 | if ($changed) { } | 
 
| 1732 | 5 | 21 | $mdat->[4] ? : | 
 
| 1738 | 59 | 0 | unless $base | 
 
| 1739 | 15 | 44 | unless ($type =~ /^(stco|co64)_?(.*)$/) | 
 
| 1740 | 12 | 3 | if $type eq "uuid" | 
 
| 1741 | 0 | 3 | unless $type eq "CTBO" | 
 
| 1743 | 0 | 3 | unless $co->[2] > 12 | 
 
| 1744 | 0 | 3 | unless @mdat | 
 
| 1746 | 0 | 3 | if $co->[2] < $n * 20 + 12 | 
 
| 1750 | 15 | 10 | unless $_->[0] eq "uuid" and $_->[2] >= 24 | 
 
| 1752 | 1 | 9 | if $pos + 24 > length $$outfile | 
 
| 1754 | 0 | 9 | if ($siz == 1) | 
 
| 1755 | 0 | 0 | unless $_->[2] >= 32 | 
 
| 1760 | 6 | 3 | if defined $id | 
 
| 1769 | 3 | 0 | unless &Get64u($outfile, $pos + 12) or $id == 1 or $id == 2 | 
 
| 1770 | 0 | 9 | unless (defined $ctboOff{$id}) | 
 
| 1771 | 0 | 0 | unless $id == 1 or $id == 2 | 
 
| 1777 | 6 | 3 | unless $ctboOff{$id}[2] < 0 | 
 
| 1781 | 12 | 32 | $1 eq 'co64' ? : | 
 
| 1783 | 11 | 33 | if ($2) { } | 
 
| 1788 | 0 | 33 | if $len < 8 | 
 
| 1795 | 0 | 44 | if $end > $ptr + $len | 
 
| 1798 | 12 | 11 | $type eq 'co64' ? : | 
 
| 1802 | 17 | 21 | if (defined $mdat->[5]) { } | 
 
| 1804 | 12 | 5 | unless (defined $id and $id == $mdat->[5]) | 
 
| 1806 | 12 | 0 | unless $pos == $mdat->[0] and $mdat->[0] != $mdat->[1] | 
 
| 1810 | 3 | 18 | unless $pos >= $mdat->[0] and $pos <= $mdat->[1] || !$mdat->[1] | 
 
| 1812 | 0 | 0 | if $pos == $mdat->[1] and $i + 1 < @mdat and $pos == $mdat[$i + 1][0] | 
 
| 1815 | 0 | 23 | if ($val < 0) | 
 
| 1819 | 12 | 11 | if ($type eq 'co64') { } | 
 
|  | 11 | 0 | elsif ($val <= 4294967295) { } | 
 
| 1830 | 0 | 23 | unless ($ok) | 
 
| 1841 | 0 | 18 | unless &Write($outfile, $outBuff) | 
 
| 1845 | 0 | 26 | unless &Write($outfile, $mdat->[2]) | 
 
| 1846 | 5 | 21 | if ($mdat->[4]) { } | 
 
| 1847 | 0 | 5 | unless &Write($outfile, ${$$mdat[4];}) | 
 
| 1849 | 0 | 21 | unless $raf->Seek($mdat->[0], 0) | 
 
| 1850 | 21 | 0 | if ($mdat->[1]) { } | 
 
| 1852 | 0 | 21 | unless defined $result | 
 
| 1853 | 0 | 21 | unless $result | 
 
| 1858 | 0 | 0 | unless &Write($outfile, $buff) | 
 
| 1865 | 2 | 16 | if $writeLast | 
 
| 1878 | 0 | 18 | unless $et | 
 
| 1879 | 0 | 18 | unless my $raf = $dirInfo->{'RAF'} | 
 
| 1883 | 0 | 18 | unless $raf->Read($buff, 8) == 8 | 
 
| 1885 | 0 | 18 | if $size < 8 and $size != 1 | 
 
| 1889 | 0 | 18 | unless $tagTablePtr->{$tag} | 
 
| 1893 | 9 | 9 | if ($tag eq 'ftyp' and $size >= 12 and $size < 100000 and $raf->Read($buff, $size - 8) == $size - 8 and not $buff =~ /^(....)+(qt  )/s) { } | 
 
| 1897 | 3 | 6 | if ($buff =~ /^crx /) { } | 
 
|  | 3 | 3 | elsif ($buff =~ /^(heic|mif1|msf1|heix|hevc|hevx|avif)/) { } | 
 
| 1908 | 3 | 15 | if ($ftype eq 'HEIC') { } | 
 
| 1924 | 18 | 0 | &WriteQuickTime($et, $dirInfo, $tagTablePtr) ? : |