Condition Coverage

blib/lib/Image/ExifTool/QuickTimeStream.pl
Criterion Covered Total %
condition 31 358 8.6


and 2 conditions

line l !l condition
2491 0 0 $et->Warn("Bad gps0 record") and last

and 3 conditions

line !l l&&!r l&&r condition
800 0 0 0 $verbose and defined $str
814 0 0 0 defined $tagID and defined $format
846 0 0 0 defined $sampleTime and $value->{'CreateDate'}
849 0 0 0 $value->{'TimeScale'} and $value->{'Duration'}
904 0 0 0 $tag =~ /^[A-Z]{2}RMC$/ and $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+)/
0 0 0 $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 0 $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 0 $tag eq "GS" and $dat =~ /:([-+]?\d+),([-+]?\d+),([-+]?\d+)/
0 0 0 $tag eq "BEGINGSENSOR" and $dat =~ /^:([-+]\d+\.\d+):([-+]\d+\.\d+):([-+]\d+\.\d+)/
0 0 0 $tag eq "TIME" and $dat =~ /^:(\d+)/
1003 0 0 0 $$dataPt =~ /^\0\0(..\xaa\xaa|\xf2\xe1\xf0\xee)/s and length $$dataPt >= 282
1071 0 0 0 $a[8] and $a[8] =~ s/M$//
1072 0 0 0 $a[7] and $a[7] =~ /^\d+\.\d+$/
1073 0 0 0 $a[11] and $a[11] =~ s/;\s*$//
1089 0 0 0 $n >= 0 and defined $decode[$n]
1102 0 0 0 $$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
0 0 0 $$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
0 0 0 $$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
1166 8 0 0 $start and $size
1169 0 0 8 $stco and $stsc
0 0 8 $stco and $stsc and @$stsc
1173 0 0 8 $stts and @$stts > 1
1181 0 0 8 $iChunk >= $nextChunk and @$stsc
1186 0 0 8 defined $chunkStart and length $chunkStart
1240 8 0 8 $i < @$start and $i < @$size
1248 0 0 8 $raf->Seek($start->[$i], 0) and $raf->Read($buff, $size) == $size
1267 0 0 0 $eeOpt and $eeOpt > 2
1276 8 0 0 $type eq "sbtl" and $metaFormat eq "tx3g"
8 0 0 $type eq "sbtl" and $metaFormat eq "tx3g" and $buff =~ /^..PNDM/s
1289 0 0 0 $size >= 2 and unpack("n", $buff) == $size - 2
1295 0 0 0 $buff =~ /^\0/ and $buff =~ /\x0a$/
0 0 0 $buff =~ /^\0/ and $buff =~ /\x0a$/ and length $buff > 5
1330 0 0 0 $metaFormat eq "camm" and $buff =~ /^X/
1377 8 0 0 $et->{'FoundGPSLatitude'} and not $et->{'FoundGPSDateTime'}
1420 0 0 0 $$dataPt =~ /^.{60}4W`b]S= 140
1536 0 0 0 $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"
1637 0 0 0 $stat eq "A" and $latRef eq 'N' || $latRef eq 'S'
0 0 0 $stat eq "A" and $latRef eq 'N' || $latRef eq 'S' and $lonRef eq 'E' || $lonRef eq 'W'
1691 0 0 0 $mon >= 1 and $mon <= 12
0 0 0 $mon >= 1 and $mon <= 12 and $day >= 1
0 0 0 $mon >= 1 and $mon <= 12 and $day >= 1 and $day <= 31
1718 0 0 0 $stat eq "A" and $latRef eq 'N' || $latRef eq 'S'
0 0 0 $stat eq "A" and $latRef eq 'N' || $latRef eq 'S' and $lonRef eq 'E' || $lonRef eq 'W'
1730 0 0 0 abs $lat2 - $lat < "0.001" and abs $lon2 - $lon < "0.001"
1783 0 0 0 $$dataPt =~ /^.{60}A\0.{6}([NS])\0.{6}([EW])\0/s and $dirLen >= 112
1889 0 0 0 $recentRecPos and $recPos < $recentRecPos
2116 52 0 0 $tag eq "stz2" and $dataLen > 12
36 0 16 $tag eq "co64" and $dataLen > 8
20 0 16 $tag eq "stsc" and $dataLen > 8
4 0 16 $tag eq "stts" and $dataLen > 8
0 0 0 $tag eq "gps " and $dataLen > 8
2298 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2343 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2381 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2457 0 0 0 $tag =~ /^[\w ]{4}/ and $len < 33554432
2548 0 0 0 $fix{'tim'} and !$tim || $fix{'tim'} != $tim
2549 0 0 0 $fix{'dat'} and defined $fix{'lat'}
0 0 0 $fix{'dat'} and defined $fix{'lat'} and defined $fix{'lon'}
2551 0 0 0 $fix{'tc'} and $et->{'StartTime'}
2568 0 0 0 $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 0 $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
2663 0 0 0 $resync and $type != 255
2753 0 0 4 $raf->Seek(-78 - $offset, 2) and $raf->Read($buff, 78) == 78
0 4 0 $raf->Seek(-78 - $offset, 2) and $raf->Read($buff, 78) == 78 and substr($buff, -32) eq "8db42d694ccc418790edff439fe026bf"
2809 0 0 0 defined $dlen and not $dlen
2811 0 0 0 $len % 20 and not $len % 56
0 0 0 $len % 56 and not $len % 20
2830 0 0 0 $dlen and $insvLimit{$id}
0 0 0 $dlen and $insvLimit{$id} and $len > $insvLimit{$id}[1] * $dlen
0 0 0 $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)
2872 0 0 0 $a[5] eq 'N' || $a[5] eq 'S' and $a[7] eq 'E' || $a[7] eq 'W' || $a[7] eq 'O'
3017 0 0 0 $$dataPt =~ /^FMAS\0\0\0\0.{72}SAMM.{36}A/s and length $$dataPt >= 160
3056 0 4 0 $dataPos and not $et->{'DOC_COUNT'}

or 2 conditions

line l !l condition
793 0 0 $qtFmt{$str} || 'undef'
924 0 0 $4 || 0
925 0 0 $7 || 0
942 0 0 $4 || 0
943 0 0 $7 || 0
960 0 0 $et->{'MediaTS'} || 1
1054 0 0 $2 || 1
1108 0 0 $5 || 0
1109 0 0 $8 || 0
1119 0 0 $et->{'UnknownTextCount'} || 0
1142 16 0 $et->{'HandlerType'} || ''
1178 8 0 $et->{'MediaTS'} || 1
1225 4 4 $et->{'MetaFormat'} || ''
2574 0 0 $5 || 0
2575 0 0 $8 || 0
2581 0 0 $5 || 0
2582 0 0 $8 || 0
2750 0 0 $dirInfo->{'Offset'} || 0
2924 0 0 $dirInfo->{'DirStart'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
776 0 0 0 $len < 8 or $pos + $len > $end
1215 0 0 8 $type eq "soun" or $type eq "vide"
1276 0 0 8 $type eq "text" or $type eq "sbtl" and $metaFormat eq "tx3g" and $buff =~ /^..PNDM/s
1637 0 0 0 $latRef eq 'N' || $latRef eq 'S'
0 0 0 $lonRef eq 'E' || $lonRef eq 'W'
1718 0 0 0 $latRef eq 'N' || $latRef eq 'S'
0 0 0 $lonRef eq 'E' || $lonRef eq 'W'
2067 0 0 0 $yr < 2000 or $yr > 2200
0 0 0 $yr < 2000 or $yr > 2200 or $mon < 1
0 0 0 $yr < 2000 or $yr > 2200 or $mon < 1 or $mon > 12
0 0 0 $yr < 2000 or $yr > 2200 or $mon < 1 or $mon > 12 or $day < 1
0 0 0 $yr < 2000 or $yr > 2200 or $mon < 1 or $mon > 12 or $day < 1 or $day > 31
0 0 0 $yr < 2000 or $yr > 2200 or $mon < 1 or $mon > 12 or $day < 1 or $day > 31 or $hr > 59
0 0 0 $yr < 2000 or $yr > 2200 or $mon < 1 or $mon > 12 or $day < 1 or $day > 31 or $hr > 59 or $min > 59
0 0 0 $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
2090 0 0 0 $mon < 1 or $mon > 12
2116 16 0 52 $tag eq "stsz" or $tag eq "stz2" and $dataLen > 12
0 0 52 $tag eq "stco" or $tag eq "co64" and $dataLen > 8
2128 0 0 0 $sz == 8 or $sz == 16
2261 0 0 0 $len < 8 or $pos + $len > length $$dataPt
2352 0 0 0 abs $lat > 9000 or abs $lon > 18000
2491 0 0 0 abs $lat > 9000 or abs $lon > 18000
2548 0 0 0 !$tim || $fix{'tim'} != $tim
2679 0 0 0 $tm < $sampleTime or $tm > $sampleTime + 250
2695 0 0 0 $type == 0 or $type == 3
2733 0 0 0 $eeOpt or ($found & 41) != 41
2765 0 0 0 $trailerLen > $fileEnd or not $raf->Seek($dirInfo->{'DataPos'}, 0)
0 0 0 $trailerLen > $fileEnd or not $raf->Seek($dirInfo->{'DataPos'}, 0) or $raf->Read(${$$dirInfo{"OutFile"};}, $trailerLen) != $trailerLen
2776 0 0 0 $verbose or $et->{'HTML_DUMP'}
2872 0 0 0 $a[5] eq 'N' || $a[5] eq 'S'
0 0 0 $a[7] eq 'E' || $a[7] eq 'W' || $a[7] eq 'O'
2925 0 0 0 $dirInfo->{'DirLen'} || length($$dataPt) - $pos
3081 0 0 0 $tagTbl or $pos < 20000000