Condition Coverage

blib/lib/Image/ExifTool/QuickTimeStream.pl
Criterion Covered Total %
condition 29 335 8.6


and 2 conditions

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

and 3 conditions

line !l l&&!r l&&r condition
794 0 0 0 $verbose and defined $str
808 0 0 0 defined $tagID and defined $format
840 0 0 0 defined $sampleTime and $value->{'CreateDate'}
843 0 0 0 $value->{'TimeScale'} and $value->{'Duration'}
897 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 "BEGINGSENSOR" and $dat =~ /^:([-+]\d+\.\d+):([-+]\d+\.\d+):([-+]\d+\.\d+)/
0 0 0 $tag eq "TIME" and $dat =~ /^:(\d+)/
986 0 0 0 $$dataPt =~ /^\0\0(..\xaa\xaa|\xf2\xe1\xf0\xee)/s and length $$dataPt >= 282
1054 0 0 0 $a[8] and $a[8] =~ s/M$//
1055 0 0 0 $a[7] and $a[7] =~ /^\d+\.\d+$/
1056 0 0 0 $a[11] and $a[11] =~ s/;\s*$//
1072 0 0 0 $n >= 0 and defined $decode[$n]
1085 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
1135 8 0 0 $start and $size
1138 0 0 8 $stco and $stsc
0 0 8 $stco and $stsc and @$stsc
1142 0 0 8 $stts and @$stts > 1
1149 0 0 8 $iChunk >= $nextChunk and @$stsc
1199 8 0 8 $i < @$start and $i < @$size
1207 0 0 8 $raf->Seek($start->[$i], 0) and $raf->Read($buff, $size) == $size
1222 0 0 0 $eeOpt and $eeOpt > 2
1231 8 0 0 $type eq "sbtl" and $metaFormat eq "tx3g"
8 0 0 $type eq "sbtl" and $metaFormat eq "tx3g" and $buff =~ /^..PNDM/s
1243 0 0 0 $size >= 2 and unpack("n", $buff) == $size - 2
1249 0 0 0 $buff =~ /^\0/ and $buff =~ /\x0a$/
0 0 0 $buff =~ /^\0/ and $buff =~ /\x0a$/ and length $buff > 5
1283 0 0 0 $metaFormat eq "camm" and $buff =~ /^X/
1330 8 0 0 $et->{'FoundGPSLatitude'} and not $et->{'FoundGPSDateTime'}
1371 0 0 0 $$dataPt =~ /^.{60}4W`b]S= 140
1583 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'
1637 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
1664 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'
1676 0 0 0 abs $lat2 - $lat < "0.001" and abs $lon2 - $lon < "0.001"
1730 0 0 0 $$dataPt =~ /^.{60}A\0.{6}([NS])\0.{6}([EW])\0/s and $dirLen >= 112
1835 0 0 0 $recentRecPos and $recPos < $recentRecPos
2040 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
2222 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2251 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2290 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2323 0 0 0 $tag =~ /^[\w ]{4}/ and $len < 33554432
2414 0 0 0 $fix{'tim'} and !$tim || $fix{'tim'} != $tim
2415 0 0 0 $fix{'dat'} and defined $fix{'lat'}
0 0 0 $fix{'dat'} and defined $fix{'lat'} and defined $fix{'lon'}
2417 0 0 0 $fix{'tc'} and $et->{'StartTime'}
2434 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
2529 0 0 0 $resync and $type != 255
2619 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"
2676 0 0 0 $len % 20 and not $len % 56
0 0 0 $len % 56 and not $len % 20
2692 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)
2732 0 0 0 $a[5] eq 'N' || $a[5] eq 'S' and $a[7] eq 'E' || $a[7] eq 'W' || $a[7] eq 'O'
2847 0 0 0 $$dataPt =~ /^FMAS\0\0\0\0.{72}SAMM.{36}A/s and length $$dataPt >= 160
2886 0 4 0 $dataPos and not $et->{'DOC_COUNT'}

or 2 conditions

line l !l condition
787 0 0 $qtFmt{$str} || 'undef'
917 0 0 $4 || 0
918 0 0 $7 || 0
935 0 0 $4 || 0
936 0 0 $7 || 0
943 0 0 $et->{'MediaTS'} || 1
1037 0 0 $2 || 1
1091 0 0 $5 || 0
1092 0 0 $8 || 0
1102 0 0 $et->{'UnknownTextCount'} || 0
1123 16 0 $et->{'HandlerType'} || ''
1147 8 0 $et->{'MediaTS'} || 1
1184 4 4 $et->{'MetaFormat'} || ''
2440 0 0 $5 || 0
2441 0 0 $8 || 0
2447 0 0 $5 || 0
2448 0 0 $8 || 0
2616 0 0 $dirInfo->{'Offset'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
770 0 0 0 $len < 8 or $pos + $len > $end
1231 0 0 8 $type eq "text" or $type eq "sbtl" and $metaFormat eq "tx3g" and $buff =~ /^..PNDM/s
1583 0 0 0 $latRef eq 'N' || $latRef eq 'S'
0 0 0 $lonRef eq 'E' || $lonRef eq 'W'
1664 0 0 0 $latRef eq 'N' || $latRef eq 'S'
0 0 0 $lonRef eq 'E' || $lonRef eq 'W'
1988 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
2012 0 0 0 $mon < 1 or $mon > 12
2040 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
2052 0 0 0 $sz == 8 or $sz == 16
2185 0 0 0 $len < 8 or $pos + $len > length $$dataPt
2261 0 0 0 abs $lat > 9000 or abs $lon > 18000
2357 0 0 0 abs $lat > 9000 or abs $lon > 18000
2414 0 0 0 !$tim || $fix{'tim'} != $tim
2545 0 0 0 $tm < $sampleTime or $tm > $sampleTime + 250
2561 0 0 0 $type == 0 or $type == 3
2599 0 0 0 $eeOpt or ($found & 41) != 41
2631 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
2642 0 0 0 $verbose or $et->{'HTML_DUMP'}
2732 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'
2911 0 0 0 $tagTbl or $pos < 20000000