| line |
true |
false |
branch |
|
867
|
0 |
0 |
$_ < 2147483648 ? : |
|
882
|
0 |
0 |
unless $dirLen > 8 |
|
887
|
0 |
0 |
unless $ee |
|
889
|
0 |
0 |
if $verbose |
|
896
|
0 |
0 |
if $end > $dirLen |
|
899
|
0 |
0 |
if ($verbose) |
|
907
|
0 |
0 |
if $len < 8 or $pos + $len > $end |
|
914
|
0 |
0 |
if ($tag eq 'keyd') { } |
|
|
0 |
0 |
elsif ($tag eq 'dtyp') { } |
|
916
|
0 |
0 |
unless $tagID |
|
917
|
0 |
0 |
if $verbose |
|
919
|
0 |
0 |
if length $val < 4 |
|
920
|
0 |
0 |
if (length $val >= 4) |
|
922
|
0 |
0 |
if ($ns == 0) { } |
|
|
0 |
0 |
elsif ($ns == 1) { } |
|
923
|
0 |
0 |
unless length $val >= 8 |
|
932
|
0 |
0 |
if $verbose and defined $str |
|
941
|
0 |
0 |
if ($verbose > 1) |
|
942
|
0 |
0 |
if (defined $str) { } |
|
952
|
0 |
0 |
if (defined $tagID and defined $format) |
|
953
|
0 |
0 |
if ($verbose) |
|
971
|
8 |
0 |
if defined $time |
|
972
|
8 |
0 |
if defined $dur |
|
984
|
0 |
0 |
if (defined $sampleTime and $value->{'CreateDate'}) |
|
986
|
0 |
0 |
if ($et->{'CreateDateAtEnd'}) { } |
|
987
|
0 |
0 |
unless $value->{'TimeScale'} and $value->{'Duration'} |
|
994
|
0 |
0 |
unless defined $utc |
|
995
|
0 |
0 |
unless ($utc) |
|
997
|
0 |
0 |
unless (defined $tzOff) |
|
1019
|
0 |
0 |
if $tags->{'GPSDateTime'} |
|
1033
|
0 |
0 |
if ($et->{'LastTime'}) |
|
1034
|
0 |
0 |
if ($et->{'LastTime'} eq $time) { } |
|
|
0 |
0 |
elsif (%$tags) { } |
|
1042
|
0 |
0 |
if $et->{'DOC_COUNT'} < ++$et->{'DOC_NUM'} |
|
1058
|
0 |
0 |
if $et->{'NoMoreTextDecoding'} |
|
1060
|
0 |
0 |
if (ref $dataPt eq "HASH") |
|
1068
|
0 |
0 |
if ($tag =~ /^[A-Z]{2}RMC$/) { } |
|
|
0 |
0 |
elsif ($tag =~ /^[A-Z]{2}GGA$/ and $dat =~ /^,(\d{2})(\d{2})(\d+(?:\.\d*)?),(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),[1-6]?,(\d+)?,(\.\d+|\d+\.?\d*)?,(-?\d+\.?\d*)?,M?/s) { } |
|
|
0 |
0 |
elsif ($tag eq 'G' and $dat =~ /:(\d{4})-(\d{2})-(\d{2}) (\d{2}:\d{2}:\d{2})-([NS])(\d+\.\d+)-([EW])(\d+\.\d+)-S(\d+)/) { } |
|
|
0 |
0 |
elsif ($tag eq 'GS' and $dat =~ /:([-+]?\d+),([-+]?\d+),([-+]?\d+)/) { } |
|
|
0 |
0 |
elsif ($tag eq 'BEGINGSENSOR' and $dat =~ /^:([-+]\d+\.\d+):([-+]\d+\.\d+):([-+]\d+\.\d+)/) { } |
|
|
0 |
0 |
elsif ($tag eq 'TIME' and $dat =~ /^:(\d+)/) { } |
|
|
0 |
0 |
elsif ($tag eq 'BEGIN') { } |
|
|
0 |
0 |
elsif ($tag ne 'END' and not $handled) { } |
|
1069
|
0 |
0 |
unless ($dat =~ /^,(\d{2})(\d{2})(\d+(?:\.\d*)),A?,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/) |
|
1070
|
0 |
0 |
defined $tags{'Text'} ? : |
|
|
0 |
0 |
unless $handled |
|
1071
|
0 |
0 |
if $dat =~ /^,\d+\.?\d*,V,/ |
|
1076
|
0 |
0 |
$14 >= 70 ? : |
|
1080
|
0 |
0 |
$6 eq 'N' ? : |
|
1081
|
0 |
0 |
$9 eq 'E' ? : |
|
1082
|
0 |
0 |
if length $10 |
|
1083
|
0 |
0 |
if length $11 |
|
1088
|
0 |
0 |
$6 eq 'N' ? : |
|
1089
|
0 |
0 |
$9 eq 'E' ? : |
|
1090
|
0 |
0 |
if defined $10 |
|
1091
|
0 |
0 |
if defined $11 |
|
1092
|
0 |
0 |
if defined $12 |
|
1096
|
0 |
0 |
$5 eq 'S' ? : |
|
1097
|
0 |
0 |
$7 eq 'W' ? : |
|
1108
|
0 |
0 |
if length $dat |
|
1111
|
0 |
0 |
defined $tags{'Text'} ? : |
|
1114
|
0 |
0 |
if (%tags) |
|
1115
|
0 |
0 |
unless ($tags{'Accelerometer'}) |
|
1123
|
0 |
0 |
if ($$dataPt =~ /^\0{4}(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\0\0.{2}/s) |
|
1126
|
0 |
0 |
if ($num and $num * 12 + 22 < length $$dataPt) |
|
1129
|
0 |
0 |
if $_ >= 32768 |
|
1134
|
0 |
0 |
if ($tags{'GPSTimeStamp'} and not $tags{'GPSDateTime'} and $et->{'LastDate'}) |
|
1175
|
0 |
0 |
if ($$dataPt =~ /^\0\0(..\xaa\xaa|\xf2\xe1\xf0\xee)/s and length $$dataPt >= 282) |
|
1177
|
0 |
0 |
if ($val =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/) |
|
1180
|
0 |
0 |
if ($val =~ /^([NS])(\d{2})(\d+$)$/) |
|
1181
|
0 |
0 |
$1 eq 'S' ? : |
|
1184
|
0 |
0 |
if ($val =~ /^([EW])(\d{3})(\d+$)$/) |
|
1185
|
0 |
0 |
$1 eq 'W' ? : |
|
1188
|
0 |
0 |
if $val =~ /^[-+]\d+$/ |
|
1190
|
0 |
0 |
if $val =~ /^\d+$/ |
|
1191
|
0 |
0 |
if ($$dataPt =~ /^\0\0..\xaa\xaa/s) { } |
|
1194
|
0 |
0 |
if ($val =~ /^([-+]\d{3})([-+]\d{3})([-+]\d{3})$/) |
|
1207
|
0 |
0 |
if @acc |
|
1210
|
0 |
0 |
if %tags |
|
1216
|
0 |
0 |
if ($$dataPt =~ /GPS \(([-+]?\d*\.\d+),\s*([-+]?\d*\.\d+)/) |
|
1220
|
0 |
0 |
if $$dataPt =~ /,\s*H\s+([-+]?\d+\.?\d*)m/ |
|
1221
|
0 |
0 |
if $$dataPt =~ /,\s*H.S\s+([-+]?\d+\.?\d*)/ |
|
1222
|
0 |
0 |
if $$dataPt =~ /,\s*D\s+(\d+\.?\d*)m/ |
|
1223
|
0 |
0 |
if $$dataPt =~ /,\s*V.S\s+([-+]?\d+\.?\d*)/ |
|
1224
|
0 |
0 |
if $$dataPt =~ m[\bF/(\d+\.?\d*)] |
|
1225
|
0 |
0 |
if $$dataPt =~ /\bSS\s+(\d+\.?\d*)/ |
|
1226
|
0 |
0 |
if $$dataPt =~ m[\bEV\s+([-+]?\d+\.?\d*)(/\d+)?] |
|
1227
|
0 |
0 |
if $$dataPt =~ /\bISO\s+(\d+\.?\d*)/ |
|
1234
|
0 |
0 |
if ($$dataPt =~ /^A,(\d{2})(\d{2})(\d{2}),(\d{2})(\d{2})(\d{2}(\.\d+)?)/) |
|
1236
|
0 |
0 |
if ($$dataPt =~ /^A,.*?,.*?,(\d{2})(\d+\.\d+),([NS])/) |
|
1237
|
0 |
0 |
$3 eq 'S' ? : |
|
1239
|
0 |
0 |
if ($$dataPt =~ /^A,.*?,.*?,.*?,.*?,(\d{3})(\d+\.\d+),([EW])/) |
|
1240
|
0 |
0 |
$3 eq 'W' ? : |
|
1243
|
0 |
0 |
if $a[8] and $a[8] =~ s/M$// |
|
1244
|
0 |
0 |
if $a[7] and $a[7] =~ /^\d+\.\d+$/ |
|
1245
|
0 |
0 |
if $a[11] and $a[11] =~ s/;\s*$// |
|
1255
|
0 |
0 |
if ($$dataPt =~ /\*[0-9A-F]{2}~$/) |
|
1261
|
0 |
0 |
if $n >= 0 and defined $decode[$n] |
|
1264
|
0 |
0 |
if ($buff =~ /X(.*?)Y(.*?)Z(.*?)G(.*?)\$/) |
|
1274
|
0 |
0 |
if ($$dataPt =~ /[A-Z]{2}RMC,(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/ and $13 <= 31 and $14 <= 12 and $15 <= 99) |
|
1278
|
0 |
0 |
$15 >= 70 ? : |
|
1280
|
0 |
0 |
$7 eq 'N' ? : |
|
1281
|
0 |
0 |
$10 eq 'E' ? : |
|
1282
|
0 |
0 |
if length $11 |
|
1283
|
0 |
0 |
if length $12 |
|
1285
|
0 |
0 |
if $$dataPt =~ /\bgsensori,(.*?)(;|$)/ |
|
1286
|
0 |
0 |
if $$dataPt =~ /\bCAR,(.*?)(;|$)/ |
|
1288
|
0 |
0 |
if (%tags) { } |
|
1293
|
0 |
0 |
if $et->{'UnknownTextCount'} > 100 |
|
1311
|
0 |
16 |
unless $ee |
|
1316
|
12 |
4 |
if ($type eq 'vide') { } |
|
|
0 |
4 |
elsif ($type eq 'soun') { } |
|
1321
|
12 |
0 |
if ($eeOpt) |
|
1322
|
0 |
12 |
if ($ee->{'avcC'}) { } |
|
|
4 |
8 |
elsif ($ee->{'JPEG'}) { } |
|
1324
|
8 |
0 |
unless $hash |
|
1328
|
0 |
0 |
unless $hash |
|
1330
|
0 |
4 |
unless $eeOpt |
|
1339
|
8 |
0 |
unless ($start and $size) |
|
1340
|
0 |
8 |
unless $size |
|
1342
|
0 |
8 |
unless $stco and $stsc and @$stsc |
|
1346
|
8 |
0 |
if ($stts and @$stts > 1) |
|
1354
|
8 |
0 |
if ($iChunk >= $nextChunk and @$stsc) |
|
1356
|
0 |
8 |
if @$stsc |
|
1358
|
0 |
8 |
if @$size < @$start + $samplesPerChunk |
|
1359
|
0 |
8 |
unless defined $chunkStart and length $chunkStart |
|
1364
|
8 |
0 |
if (defined $time) |
|
1366
|
0 |
0 |
if (@$stts < 2) |
|
1380
|
8 |
0 |
if ++$i >= $samplesPerChunk |
|
1386
|
0 |
8 |
unless @$start == @$size |
|
1388
|
0 |
8 |
if ($type eq "soun" or $type eq "vide") |
|
1401
|
0 |
8 |
if ($verbose) |
|
1406
|
0 |
8 |
if ($hash) |
|
1408
|
0 |
0 |
if defined $mdatSize |
|
1411
|
0 |
8 |
if ($type eq "avcC") |
|
1413
|
0 |
0 |
$hdrLen == 2 ? : |
|
|
0 |
0 |
$hdrLen == 4 ? : |
|
1426
|
0 |
8 |
if (defined $mdatOffset) |
|
1427
|
0 |
0 |
if ($start->[$i] < $mdatOffset) { } |
|
|
0 |
0 |
elsif ($start->[$i] + $size > $mdatOffset + $mdatSize) { } |
|
1432
|
0 |
0 |
if $size < 0 |
|
1436
|
0 |
8 |
unless $raf->Seek($start->[$i], 0) |
|
1439
|
0 |
8 |
unless ($n == $size) |
|
1441
|
0 |
0 |
unless $n |
|
1444
|
0 |
8 |
if ($hash) |
|
1448
|
0 |
8 |
if ($type eq "avcC") |
|
1449
|
0 |
0 |
if length $buff <= $hdrLen |
|
1453
|
0 |
0 |
if $pos + $hdrLen + $len > length $buff |
|
1457
|
0 |
0 |
if $pos + $hdrLen >= length $buff |
|
1459
|
0 |
0 |
if $et->{'GotNAL06'} and $eeOpt < 3 |
|
1462
|
0 |
8 |
if ($verbose > 1) |
|
1463
|
0 |
0 |
$et->{'SET_GROUP1'} ? : |
|
1467
|
0 |
8 |
if ($type eq 'text' or $type eq 'sbtl' and $metaFormat eq 'tx3g' and $buff =~ /^..PNDM/s) { } |
|
|
4 |
4 |
elsif ($processByMetaFormat{$type}) { } |
|
|
0 |
4 |
elsif ($type eq 'gps ') { } |
|
|
4 |
0 |
elsif ($tagTbl->{$type}) { } |
|
1474
|
0 |
0 |
unless ($buff =~ /^\$BEGIN/) |
|
1476
|
0 |
0 |
if $buff =~ s/\0\0\0\x0cencd\0\0\x01\0$// |
|
1480
|
0 |
0 |
if ($size >= 2 and unpack("n", $buff) == $size - 2) |
|
1481
|
0 |
0 |
if $size == 2 |
|
1486
|
0 |
0 |
if ($buff =~ /^\0/ and $buff =~ /\x0a$/ and length $buff > 5) { } |
|
|
0 |
0 |
elsif ($buff =~ /^(\0.{3})?PNDM/s) { } |
|
1491
|
0 |
0 |
if ($verbose > 2) |
|
1495
|
0 |
0 |
if ($tmp =~ /^(.*?)(\$[A-Z]{2}RMC.*)/s) |
|
1498
|
0 |
0 |
if length $val |
|
1502
|
0 |
0 |
$1 ? : |
|
1503
|
0 |
0 |
if length $buff < 20 + $n |
|
1510
|
0 |
0 |
unless (defined $val or $buff =~ /\0[^\0]/) |
|
1520
|
4 |
0 |
if ($tagTbl->{$metaFormat}) { } |
|
|
0 |
0 |
elsif ($verbose) { } |
|
1522
|
4 |
0 |
if ($tagInfo and !$tagInfo->{'Unknown'} || $et->{'OPTIONS'}{'Unknown'} >= $tagInfo->{'Unknown'}) { } |
|
|
0 |
0 |
elsif ($metaFormat eq 'camm' and $buff =~ /^X/) { } |
|
1532
|
0 |
4 |
if ($metaFormat eq "djmd") |
|
1533
|
0 |
0 |
if (defined $et->{'GPSLatitude'} and defined $et->{'GPSLongitude'} and not $et->{'GPSDateTime'}) |
|
1544
|
0 |
0 |
if $buff =~ /X(.*?)Y(.*?)Z(.*?)G(.*?)\$/ |
|
1553
|
0 |
0 |
if ($buff =~ /^....freeGPS /s) |
|
1557
|
0 |
0 |
if $et->{'FoundGPSByScan'} |
|
1570
|
4 |
0 |
if ($tagInfo) |
|
1580
|
0 |
8 |
if $et->{'FoundGPSLatitude'} and not $et->{'FoundGPSDateTime'} |
|
1582
|
0 |
8 |
if ($verbose) |
|
1583
|
0 |
0 |
$type eq 'soun' ? : |
|
1584
|
0 |
0 |
if $hashSize |
|
1645
|
0 |
0 |
if $dirLen < 82 |
|
1652
|
0 |
0 |
if (substr($$dataPt, 18, 8) eq "\252\252\362\341\360\356TT") { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{52}(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^(.{37}|.{85})\0\0\0A([NS])([EW])\0/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^(.{16}|.{48}|.{80})LIGOGPSINFO\0/s and length $$dataPt >= length($1) + 132) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{60}A\0{3}.{4}([NS])\0{3}.{4}([EW])\0{3}/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{60}4W`b]S= 140) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{64}[\x01-\x0c]\0{3}[\x01-\x1f]\0{3}A[NS][EW]\0{5}/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{12}\xac\0\0\0.{44}(.{72})/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{64}A([NS])([EW])\0/s) { } |
|
|
0 |
0 |
elsif (substr($$dataPt, 69, 3) eq 'ATC') { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{60}A\0.{10}([NS])\0.{14}([EW])\0/s and $dirLen >= 136) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{16}A([NS])([EW])\0/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{20}[\0-\x18][\0-\x3b]{2}[\0-\x09]A([NS])([EW])/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{28}A.{11}([NS]).{15}([EW])/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{72}A[NS][EW]\0/s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ m[^.{23}(\d{4})/(\d{2})/(\d{2}) (\d{2}):(\d{2}):(\d{2}) [N|S]]s) { } |
|
|
0 |
0 |
elsif ($$dataPt =~ /^.{30}A.{20}VV/) { } |
|
1654
|
0 |
0 |
if $debug |
|
1683
|
0 |
0 |
if $n > 257 |
|
1685
|
0 |
0 |
if ($et->Options("Verbose") > 1) |
|
1690
|
0 |
0 |
if ($buf2 =~ /^.{8}(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2}).(.{15})([NS])(\d{8})([EW])(\d{9})(\d{8})?/s) |
|
1692
|
0 |
0 |
if (defined $spd) { } |
|
|
0 |
0 |
elsif ($buf2 =~ /^.{57}([-+]\d{4})(\d{3})/s) { } |
|
1700
|
0 |
0 |
if ($buf2 =~ /^.{65}(([-+]\d{3})([-+]\d{3})([-+]\d{3})([-+]\d{3})*)/s) { } |
|
|
0 |
0 |
elsif ($buf2 =~ /^.{173}([-+]\d{3})([-+]\d{3})([-+]\d{3})/s) { } |
|
1708
|
0 |
0 |
if (not defined $yr and $buf2 =~ /^.{8}(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2}).(.{15})/s) |
|
1712
|
0 |
0 |
if (defined $lbl) |
|
1714
|
0 |
0 |
if length $lbl |
|
1719
|
0 |
0 |
if $debug |
|
1733
|
0 |
0 |
if ($$dataPt =~ /\$[A-Z]{2}RMC,(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d+\.\d+),([NS]),(\d+\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/s) |
|
1735
|
0 |
0 |
$13 >= 70 ? : |
|
1737
|
0 |
0 |
if length $9 |
|
1738
|
0 |
0 |
if length $10 |
|
1740
|
0 |
0 |
if ($$dataPt =~ /\$[A-Z]{2}GGA,(\d{2})(\d{2})(\d+(\.\d*)?),(\d+\.\d+),([NS]),(\d+\.\d+),([EW]),[1-6]?,(\d+)?,(\.\d+|\d+\.?\d*)?,(-?\d+\.?\d*)?,M?/s) |
|
1741
|
0 |
0 |
unless defined $yr |
|
1746
|
0 |
0 |
if (defined $lat) |
|
1754
|
0 |
0 |
if (length $1 == 85) |
|
1770
|
0 |
0 |
if (length $$dataPt < 120) { } |
|
1778
|
0 |
0 |
if ($notEnc and $notStr) { } |
|
1780
|
0 |
0 |
if $debug |
|
1786
|
0 |
0 |
if ($yr >= 2000) |
|
1802
|
0 |
0 |
if ($tmp ne "\0\0\0\0\0\0\0\0\0\0\0\0" and $tmp ne "\1\0\2\0\3\0\4\0\5\0\6\0") |
|
1808
|
0 |
0 |
if $debug |
|
1824
|
0 |
0 |
if ($notEnc) { } |
|
1834
|
0 |
0 |
if $i |
|
1835
|
0 |
0 |
unless ($lat = &DecryptLucky($lt, $key)) =~ /^\d{1,4}\.\d+$/ |
|
1836
|
0 |
0 |
unless ($lon = &DecryptLucky($ln, $key)) =~ /^\d{1,5}\.\d+$/ |
|
1839
|
0 |
0 |
unless $lon |
|
1845
|
0 |
0 |
if $debug |
|
1886
|
0 |
0 |
if $pos == 16 and $$dataPt =~ /^.{12}\xf0\x03\0\0.{16}\0{4}/s |
|
1908
|
0 |
0 |
if $debug |
|
1932
|
0 |
0 |
if (substr($$dataPt, 16, 4) eq 'x.xx') { } |
|
1934
|
0 |
0 |
if $trk >= 360 |
|
1942
|
0 |
0 |
if $debug |
|
1951
|
0 |
0 |
if $_ >= 16 |
|
1952
|
0 |
0 |
if (/[A-Z]{2}RMC,(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d*?\d{1,2}\.\d+),([NS]),(\d*?\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/) { } |
|
1954
|
0 |
0 |
$yr >= 70 ? : |
|
1955
|
0 |
0 |
if length $9 |
|
1956
|
0 |
0 |
if length $10 |
|
1963
|
0 |
0 |
if $debug |
|
2000
|
0 |
0 |
if $debug |
|
2023
|
0 |
0 |
if $debug |
|
2035
|
0 |
0 |
if ($mon >= 1 and $mon <= 12 and $day >= 1 and $day <= 31) { } |
|
2049
|
0 |
0 |
if $debug |
|
2063
|
0 |
0 |
unless $then |
|
2089
|
0 |
0 |
if $now[$i] <= $dateMax[$i] |
|
2095
|
0 |
0 |
if ($now[$i] < $then->[$i]) |
|
2096
|
0 |
0 |
if $foundNew |
|
2099
|
0 |
0 |
if $now[$i] == $then->[$i] |
|
2101
|
0 |
0 |
if ($verbose) |
|
2136
|
0 |
0 |
if $trk < 0 |
|
2153
|
0 |
0 |
if $recentRecPos and $recPos < $recentRecPos |
|
2161
|
0 |
0 |
if $debug |
|
2192
|
0 |
0 |
if $debug |
|
2208
|
0 |
0 |
substr($dat, 1, 1) eq 'S' ? : |
|
2209
|
0 |
0 |
substr($dat, 2, 1) eq 'W' ? : |
|
2218
|
0 |
0 |
if $debug |
|
2234
|
0 |
0 |
$latRef eq 'S' ? : |
|
2235
|
0 |
0 |
$lonRef eq 'W' ? : |
|
2242
|
0 |
0 |
if $debug |
|
2298
|
0 |
0 |
if (substr($$dataPt, 16, 3) eq 'IQS') { } |
|
2299
|
0 |
0 |
if $debug |
|
2323
|
0 |
0 |
if ($et->{'KodakVersion'} and $et->{'KodakVersion'} eq '3.01.054') { } |
|
|
0 |
0 |
elsif (&Get32u($dataPt, 0) == 4194304 and abs $lat <= 90 and abs $lon <= 180) { } |
|
2324
|
0 |
0 |
if $debug |
|
2329
|
0 |
0 |
if $debug |
|
2340
|
0 |
0 |
if $debug |
|
2343
|
0 |
0 |
if ($dirLen >= 176) |
|
2347
|
0 |
0 |
if (abs $lat2 - $lat < "0.001" and abs $lon2 - $lon < "0.001") |
|
2356
|
0 |
0 |
if $debug |
|
2371
|
0 |
0 |
unless (/^([A-Z]):([-+]?\d+(\.\d+)?)$/i) |
|
2373
|
0 |
0 |
if defined $lon and not defined $spd and /^\d+\.\d+$/ |
|
2376
|
0 |
0 |
if $1 eq "N" or $1 eq "S" |
|
2377
|
0 |
0 |
if $1 eq "E" or $1 eq "W" |
|
2378
|
0 |
0 |
if $1 eq "x" or $1 eq "y" or $1 eq "z" |
|
2379
|
0 |
0 |
if $1 eq "A" |
|
2382
|
0 |
0 |
unless $tagTbl->{$1} |
|
2388
|
0 |
0 |
if $debug |
|
2405
|
0 |
0 |
if $debug |
|
2433
|
0 |
0 |
if $yr < 2000 or $yr > 2200 or $mon < 1 or $mon > 12 or $day < 1 or $day > 31 or $hr > 59 or $min > 59 or $sec > 600 |
|
2439
|
0 |
0 |
if $trk >= 32768 |
|
2441
|
0 |
0 |
if $trk < 0 |
|
2449
|
0 |
0 |
if $pos += 32 > length($$dataPt) - 30 |
|
2454
|
0 |
0 |
$et->{'DOC_NUM'} ? : |
|
|
0 |
0 |
if $done |
|
2455
|
0 |
0 |
if defined $yr and $mon < 1 || $mon > 12 |
|
2460
|
0 |
0 |
if defined $sec and not $sec =~ /^\d{2}/ |
|
2461
|
0 |
0 |
if (defined $yr) { } |
|
|
0 |
0 |
elsif (defined $hr) { } |
|
2462
|
0 |
0 |
if $yr < 2000 |
|
2469
|
0 |
0 |
if (defined $lat and defined $lon) |
|
2471
|
0 |
0 |
unless $ddd |
|
2472
|
0 |
0 |
$latRef && $latRef eq 'S' ? : |
|
2473
|
0 |
0 |
$lonRef && $lonRef eq 'W' ? : |
|
2475
|
0 |
0 |
if defined $alt |
|
2476
|
0 |
0 |
if defined $spd |
|
2477
|
0 |
0 |
if defined $trk |
|
2482
|
0 |
0 |
if @acc |
|
2495
|
16 |
52 |
if ($tag eq 'stsz' or $tag eq 'stz2' and $dataLen > 12) { } |
|
|
16 |
36 |
elsif ($tag eq 'stco' or $tag eq 'co64' and $dataLen > 8) { } |
|
|
16 |
20 |
elsif ($tag eq 'stsc' and $dataLen > 8) { } |
|
|
16 |
4 |
elsif ($tag eq 'stts' and $dataLen > 8) { } |
|
|
0 |
4 |
elsif ($tag eq 'avcC') { } |
|
|
4 |
0 |
elsif ($tag eq 'JPEG') { } |
|
|
0 |
0 |
elsif ($tag eq 'gps ' and $dataLen > 8) { } |
|
|
0 |
0 |
elsif ($tag eq 'GPS ') { } |
|
2499
|
16 |
0 |
if ($tag eq 'stsz') { } |
|
2500
|
0 |
16 |
if ($sz == 0) { } |
|
2507
|
0 |
0 |
if ($sz == 4) { } |
|
|
0 |
0 |
elsif ($sz == 8 or $sz == 16) { } |
|
2521
|
0 |
16 |
$tag eq 'stco' ? : |
|
2525
|
16 |
0 |
if ($dataLen >= 8 + $num * 12) |
|
2536
|
16 |
0 |
if ($dataLen >= 8 + $num * 8) |
|
2541
|
0 |
0 |
if $dataLen >= 7 |
|
2547
|
0 |
0 |
if $num * 8 + 8 > $dataLen |
|
2563
|
0 |
0 |
if $dat eq "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" |
|
2571
|
0 |
0 |
if $a[4] eq "S" |
|
2572
|
0 |
0 |
if $a[6] eq "W" |
|
2591
|
0 |
0 |
if length $$dataPt < 2 |
|
2595
|
0 |
0 |
if ($text =~ /^HOME\(/) { } |
|
|
0 |
0 |
elsif ($text =~ /^\w{3} (\d{4})-(\d{2})-(\d{2}) (\d{2}:\d{2}:\d{2}) ?([-+])(\d{2}):?(\d{2})$/s) { } |
|
2603
|
0 |
0 |
if ($line =~ /^HOME\(([EW]):\s*(\d+\.\d+),\s*([NS]):\s*(\d+\.\d+)\)\s*(.*)/) { } |
|
|
0 |
0 |
elsif ($line =~ /^GPS\(([EW]):\s*(\d+\.\d+),\s*([NS]):\s*(\d+\.\d+),\s*(.*)m/) { } |
|
|
0 |
0 |
elsif ($line =~ /^F\.PRY\s*\((-?[\d.]+)\xc2\xb0,\s*(-?[\d.]+)\xc2\xb0,\s*(-?[\d.]+)\xc2\xb0/) { } |
|
2605
|
0 |
0 |
if $1 eq "W" |
|
2606
|
0 |
0 |
if $3 eq "S" |
|
2613
|
0 |
0 |
if $1 eq "W" |
|
2614
|
0 |
0 |
if $3 eq "S" |
|
2622
|
0 |
0 |
if ($line =~ /G\.PRY\s*\((-?[\d.]+)\xc2\xb0,\s*(-?[\d.]+)\xc2\xb0,\s*(-?[\d.]+)\xc2\xb0/) |
|
2647
|
0 |
0 |
unless my $ee = $et->{'ee'} |
|
2648
|
0 |
0 |
unless $ee->{'keys'} |
|
2656
|
0 |
0 |
if $len < 8 or $pos + $len > length $$dataPt |
|
2659
|
0 |
0 |
if ($info) { } |
|
2661
|
0 |
0 |
unless ($tagTbl->{$tag}) |
|
2662
|
0 |
0 |
unless $tag =~ /^[-\w.]+$/ |
|
2693
|
0 |
0 |
if ($dirLen > $recLen and not $et->Options("ExtractEmbedded")) |
|
2701
|
0 |
0 |
if $tc == 4294967295 |
|
2724
|
0 |
0 |
if ($$dataPt =~ /^.{2}\xf2\xe1\xf0\xeeTT\x98/s) |
|
2728
|
0 |
0 |
unless $dat =~ /^.{2}\xf2\xe1\xf0\xeeTT\x98/s |
|
2738
|
0 |
0 |
if ($dirLen > $recLen and not $et->Options("ExtractEmbedded")) |
|
2747
|
0 |
0 |
if abs $lat > 9000 or abs $lon > 18000 |
|
2776
|
0 |
0 |
if ($dirLen > $recLen and not $et->Options("ExtractEmbedded")) |
|
2798
|
0 |
0 |
unless ($et->{'OPTIONS'}{'ExtractEmbedded'}) |
|
2808
|
0 |
0 |
unless my $info = $dbase{'*'} |
|
2809
|
0 |
0 |
if $info->{'cameraModel'} |
|
2810
|
0 |
0 |
unless my $gps = $info->{'gpsData'} |
|
2811
|
0 |
0 |
unless ref $gps eq "ARRAY" |
|
2813
|
0 |
0 |
unless ref $fix eq "HASH" and $fix->{'gpsStatus'} and $fix->{'gpsStatus'} eq "A" |
|
2815
|
0 |
0 |
if ($fix->{'datetime'}) |
|
2819
|
0 |
0 |
if defined $fix->{'lat'} |
|
2820
|
0 |
0 |
if defined $fix->{'lon'} |
|
2821
|
0 |
0 |
if defined $fix->{'speed'} |
|
2822
|
0 |
0 |
if defined $fix->{'bearing'} |
|
2823
|
0 |
0 |
if (defined $fix->{'xAcc'} and defined $fix->{'yAcc'} and defined $fix->{'zAcc'}) |
|
2839
|
0 |
0 |
if ($et->{'OPTIONS'}{'ExtractEmbedded'}) { } |
|
2874
|
0 |
0 |
unless $dat =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})./gs |
|
2877
|
0 |
0 |
unless $dat =~ /\G(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})./gs |
|
2878
|
0 |
0 |
unless $dat =~ /\G([NS])(\d+)([EW])(\d+)/g |
|
2883
|
0 |
0 |
$1 eq 'S' ? : |
|
2884
|
0 |
0 |
$3 eq 'W' ? : |
|
2885
|
0 |
0 |
unless $dat =~ /\G([-+]\d{4})(\d+)/g |
|
2892
|
0 |
0 |
if @acc |
|
2893
|
0 |
0 |
unless ($et->Options("ExtractEmbedded")) |
|
2917
|
0 |
0 |
unless $raf->Read($buff, 8) == 8 |
|
2919
|
0 |
0 |
if $tag eq "\0\0\0\0" |
|
2920
|
0 |
0 |
unless ($tag =~ /^[\w ]{4}/ and $len < 33554432) |
|
2924
|
0 |
0 |
unless $raf->Read($buff, $len) == $len |
|
2925
|
0 |
0 |
if ($verbose) |
|
2927
|
0 |
0 |
if $verbose > 2 |
|
2929
|
0 |
0 |
if $tag =~ /^(gps0|gsen)$/ |
|
2931
|
0 |
0 |
if ($tag eq 'gps0') { } |
|
|
0 |
0 |
elsif ($tag eq 'gsen') { } |
|
2949
|
0 |
0 |
unless substr($buff, $pos, 4) eq "AITG" |
|
2954
|
0 |
0 |
if abs $lat > 9000 or abs $lon > 18000 |
|
2956
|
0 |
0 |
if &Get8u(\$buff, $pos + 33) == 2 |
|
2957
|
0 |
0 |
if &Get8u(\$buff, $pos + 34) == 2 |
|
2976
|
0 |
0 |
unless substr($buff, $pos, 4) eq "AITS" |
|
2987
|
0 |
0 |
if $verbose |
|
3014
|
0 |
0 |
unless $raf->Read($buff, 14) and $buff eq "CCCCCCCCCCCCCC" |
|
3016
|
0 |
0 |
unless ($et->{'OPTIONS'}{'ExtractEmbedded'}) |
|
3027
|
0 |
0 |
if $tag eq "unk" |
|
3029
|
0 |
0 |
if $val =~ s/^([NSEW])// |
|
3030
|
0 |
0 |
unless $val =~ /^[-+]?\d+\.\d+$/ |
|
3031
|
0 |
0 |
if $tag eq "acc" |
|
3032
|
0 |
0 |
if $hemi and $hemi eq 'S' || $hemi eq 'W' |
|
3035
|
0 |
0 |
if @acc == 3 |
|
3053
|
0 |
0 |
if ($$dataPt =~ /(?:\[(\d+)\])?\$[A-Z]{2}(RMC|GGA),(\d{2}\d{2}\d+(\.\d*)?),/g) |
|
3058
|
0 |
0 |
if ($fix{'tim'} and !$tim || $fix{'tim'} != $tim) |
|
3059
|
0 |
0 |
if ($fix{'dat'} and defined $fix{'lat'} and defined $fix{'lon'}) |
|
3061
|
0 |
0 |
if $fix{'tc'} and $et->{'StartTime'} |
|
3066
|
0 |
0 |
if defined $fix{'spd'} |
|
3067
|
0 |
0 |
if defined $fix{'trk'} |
|
3068
|
0 |
0 |
if defined $fix{'alt'} |
|
3069
|
0 |
0 |
if defined $fix{'nsats'} |
|
3070
|
0 |
0 |
if defined $fix{'hdop'} |
|
3074
|
0 |
0 |
unless $fix{'tim'} = $tim |
|
3078
|
0 |
0 |
if ($type eq 'RMC' and $$dataPt =~ /\G(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/g) { } |
|
|
0 |
0 |
elsif ($type eq 'GGA' and $$dataPt =~ /\G(\d{2})(\d{2})(\d+(\.\d*)?),(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),[1-6]?,(\d+)?,(\.\d+|\d+\.?\d*)?,(-?\d+\.?\d*)?,M?/g) { } |
|
3081
|
0 |
0 |
$15 >= 70 ? : |
|
3084
|
0 |
0 |
$7 eq 'N' ? : |
|
3085
|
0 |
0 |
$10 eq 'E' ? : |
|
3086
|
0 |
0 |
if length $11 |
|
3087
|
0 |
0 |
if length $12 |
|
3091
|
0 |
0 |
$7 eq 'N' ? : |
|
3092
|
0 |
0 |
$10 eq 'E' ? : |
|
3113
|
0 |
0 |
if &ProcessNMEA($et, $dirInfo, $tagTbl) |
|
3123
|
0 |
0 |
$7 eq 'S' ? : |
|
3124
|
0 |
0 |
$9 eq 'W' ? : |
|
3125
|
0 |
0 |
if length $11 |
|
3126
|
0 |
0 |
if length $12 |
|
3127
|
0 |
0 |
if length $13 |
|
3128
|
0 |
0 |
if length $14 |
|
3129
|
0 |
0 |
if length $15 |
|
3156
|
0 |
0 |
if $dirLen < $pos |
|
3173
|
0 |
0 |
if ($resync and $type != 255) |
|
3174
|
0 |
0 |
if ++$skipped > 256 |
|
3177
|
0 |
0 |
unless ($ttLen{$type}) |
|
3179
|
0 |
0 |
unless $warned |
|
3184
|
0 |
0 |
if $pos + $ttLen{$type} > $dirLen |
|
3185
|
0 |
0 |
if ($type == 255) |
|
3188
|
0 |
0 |
if ($resync) |
|
3189
|
0 |
0 |
if ($tm < $sampleTime or $tm > $sampleTime + 250) |
|
3200
|
0 |
0 |
unless ($eeOpt) |
|
3202
|
0 |
0 |
if $found & 1 << $type |
|
3205
|
0 |
0 |
if ($type == 0 or $type == 3) { } |
|
|
0 |
0 |
elsif ($type == 5) { } |
|
|
0 |
0 |
elsif ($type < 3) { } |
|
3209
|
0 |
0 |
$type ? : |
|
3225
|
0 |
0 |
if ($unknown) |
|
3233
|
0 |
0 |
if ($unknown) |
|
3235
|
0 |
0 |
$type == 1 ? : |
|
3243
|
0 |
0 |
unless $eeOpt or ($found & 41) != 41 |
|
3263
|
0 |
0 |
$dirInfo ? : |
|
3266
|
0 |
0 |
if ($dirInfo and $dirInfo->{'DirEnd'}) |
|
3270
|
0 |
0 |
unless $raf->Seek(-78 - $offset, 2) and $raf->Read($buff, 78) == 78 and substr($buff, -32) eq "8db42d694ccc418790edff439fe026bf" |
|
3277
|
0 |
0 |
if $trailerLen > $trailEnd |
|
3278
|
0 |
0 |
if ($dirInfo) |
|
3281
|
0 |
0 |
if ($dirInfo->{'OutFile'}) |
|
3282
|
0 |
0 |
if ($et->{'DEL_GROUP'}{'Insta360'}) { } |
|
|
0 |
0 |
elsif ($trailerLen > $trailEnd or not $raf->Seek($dirInfo->{'DataPos'}, 0) or $raf->Read(${$$dirInfo{'OutFile'};}, $trailerLen) != $trailerLen) { } |
|
3294
|
0 |
0 |
if $verbose or $et->{'HTML_DUMP'} |
|
3296
|
0 |
0 |
unless ($et->Options("ExtractEmbedded")) |
|
3312
|
0 |
0 |
if ($epos -= $len) + $trailerLen < 0 |
|
3313
|
0 |
0 |
unless $raf->Seek($epos - $offset, 2) |
|
3314
|
0 |
0 |
if ($verbose) |
|
3327
|
0 |
0 |
if (defined $dlen and not $dlen) |
|
3328
|
0 |
0 |
if ($id == 768) { } |
|
|
0 |
0 |
elsif ($id == 512) { } |
|
3329
|
0 |
0 |
if ($len % 20 and not $len % 56) { } |
|
|
0 |
0 |
elsif ($len % 56 and not $len % 20) { } |
|
3334
|
0 |
0 |
if ($raf->Read($buff, 20) == 20) |
|
3335
|
0 |
0 |
if (substr($buff, 16, 3) eq "\000\000\000") { } |
|
3341
|
0 |
0 |
unless $raf->Seek($epos - $offset, 2) |
|
3348
|
0 |
0 |
if ($dlen and $insvLimit{$id} and $len > $insvLimit{$id}[1] * $dlen and $et->Warn("Insta360 $insvLimit{$id}[0] data is huge. Processing only the first $insvLimit{$id}[1] records", 2)) |
|
3353
|
0 |
0 |
unless $raf->Read($buff, $len) == $len |
|
3354
|
0 |
0 |
if $verbose > 2 |
|
3355
|
0 |
0 |
if ($dlen) { } |
|
|
0 |
0 |
elsif ($id == 257) { } |
|
|
0 |
0 |
elsif ($id == 0) { } |
|
3356
|
0 |
0 |
if ($len % $dlen and $id != 1792) { } |
|
|
0 |
0 |
elsif ($id == 512) { } |
|
|
0 |
0 |
elsif ($id == 768) { } |
|
|
0 |
0 |
elsif ($id == 1024) { } |
|
|
0 |
0 |
elsif ($id == 1536) { } |
|
|
0 |
0 |
elsif ($id == 1792) { } |
|
3364
|
0 |
0 |
if ($buff =~ /^\xff\xd8\xff/) { } |
|
|
0 |
0 |
elsif ($buff =~ /^\x01\0\0\0(.{4})\x01/s and unpack('V', $1) == $dlen) { } |
|
3376
|
0 |
0 |
if ($dlen == 56) { } |
|
3401
|
0 |
0 |
unless ($a[5] eq 'N' || $a[5] eq 'S' and $a[7] eq 'E' || $a[7] eq 'W' || $a[7] eq 'O') |
|
3407
|
0 |
0 |
if $a[3] eq "V" |
|
3411
|
0 |
0 |
unless $a[3] eq "A" |
|
3414
|
0 |
0 |
if $a[5] eq "S" |
|
3415
|
0 |
0 |
if $a[7] ne "E" |
|
3417
|
0 |
0 |
if $a[2] |
|
3424
|
0 |
0 |
if $unknown |
|
3430
|
0 |
0 |
if $p + 2 > $len |
|
3432
|
0 |
0 |
if $p + 2 + $n > $len |
|
3438
|
0 |
0 |
unless $len |
|
3449
|
0 |
0 |
unless ($dirTable) |
|
3455
|
0 |
0 |
if ($dirTable) { } |
|
3458
|
0 |
0 |
if $dirTablePos + 10 > length $dirTable |
|
3461
|
0 |
0 |
if ($id and $siz and $off + $siz < $trailerLen) |
|
3466
|
0 |
0 |
unless defined $epos |
|
3468
|
0 |
0 |
if ($epos -= 6) + $trailerLen < 0 |
|
3470
|
0 |
0 |
unless $raf->Seek($epos - $offset, 2) |
|
3471
|
0 |
0 |
unless $raf->Read($buff, 6) == 6 |
|
3495
|
0 |
0 |
unless my $size = $size{$type} |
|
3496
|
0 |
0 |
if $pos + $size > $end |
|
3500
|
0 |
0 |
if $et->ProcessBinaryData($dirInfo, $tagTbl) |
|
3532
|
0 |
0 |
if ($lat != '-2147483648' or $lon != '-2147483648') |
|
3561
|
0 |
0 |
if ($tagTbl->{$type}) |
|
3562
|
0 |
0 |
if ($time != $lastTime) |
|
3569
|
0 |
0 |
if $type == 5 |
|
3584
|
0 |
0 |
unless $$dataPt =~ /^FMAS\0\0\0\0.{72}SAMM.{36}A/s and length $$dataPt >= 160 |
|
3602
|
0 |
0 |
$a[9] eq 'S' ? : |
|
3603
|
0 |
0 |
$a[8] eq 'W' ? : |
|
3619
|
0 |
0 |
if length $$dataPt < 248 |
|
3684
|
0 |
4 |
unless my $raf = $et->{'RAF'} |
|
3689
|
0 |
4 |
if $et->{'FoundEmbedded'} or not $dataPos |
|
3693
|
0 |
4 |
if ($ee > 2) { } |
|
3699
|
0 |
4 |
unless $dataLen and $raf->Seek($dataPos) |
|
3704
|
8 |
4 |
if $n + $pos > $dataLen |
|
3705
|
4 |
8 |
unless $n > length $buf2 and $raf->Read($buff, $n - length($buf2)) |
|
3706
|
4 |
4 |
if length $buf2 |
|
3710
|
8 |
0 |
if (not $buff =~ /(\0..\0freeGPS |GP\x06\0\0)/gs) { } |
|
|
0 |
0 |
elsif ($1 eq "GP\cF\000\000") { } |
|
3715
|
8 |
0 |
if $found or $pos < 20000000 or $ee > 1 |
|
3722
|
0 |
0 |
unless $raf->Seek($start) |
|
3723
|
0 |
0 |
unless (defined $found) |
|
3732
|
0 |
0 |
if ($size) { } |
|
3733
|
0 |
0 |
unless ($found) |
|
3736
|
0 |
0 |
if $raf->Seek(0, 2) |
|
3739
|
0 |
0 |
unless $raf->Seek($start + $size) |
|
3744
|
0 |
0 |
unless $raf->Seek($filePos) |
|
3750
|
0 |
0 |
if length $buff < $gpsBlockSize |
|
3751
|
0 |
0 |
unless ($tagTbl) |
|
3759
|
0 |
0 |
if (pos $buff > 12) |
|
3765
|
0 |
0 |
if ($len < 12) { } |
|
3769
|
0 |
0 |
if ($more > 0) |
|
3770
|
0 |
0 |
unless $raf->Read($buf2, $more) == $more |
|
3773
|
0 |
0 |
if ($verbose) |
|
3784
|
0 |
4 |
if ($found) |