Condition Coverage

blib/lib/Image/ExifTool/QuickTimeStream.pl
Criterion Covered Total %
condition 29 326 8.9


and 2 conditions

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

and 3 conditions

line !l l&&!r l&&r condition
792 0 0 0 $verbose and defined $str
806 0 0 0 defined $tagID and defined $format
838 0 0 0 defined $sampleTime and $value->{'CreateDate'}
841 0 0 0 $value->{'TimeScale'} and $value->{'Duration'}
895 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+)/
978 0 0 0 $$dataPt =~ /^\0\0(..\xaa\xaa|\xf2\xe1\xf0\xee)/s and length $$dataPt >= 282
1046 0 0 0 $a[8] and $a[8] =~ s/M$//
1047 0 0 0 $a[7] and $a[7] =~ /^\d+\.\d+$/
1048 0 0 0 $a[11] and $a[11] =~ s/;\s*$//
1064 0 0 0 $n >= 0 and defined $decode[$n]
1077 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
1127 8 0 0 $start and $size
1130 0 0 8 $stco and $stsc
0 0 8 $stco and $stsc and @$stsc
1134 0 0 8 $stts and @$stts > 1
1141 0 0 8 $iChunk >= $nextChunk and @$stsc
1191 8 0 8 $i < @$start and $i < @$size
1199 0 0 8 $raf->Seek($start->[$i], 0) and $raf->Read($buff, $size) == $size
1214 0 0 0 $eeOpt and $eeOpt > 2
1223 8 0 0 $type eq "sbtl" and $metaFormat eq "tx3g"
8 0 0 $type eq "sbtl" and $metaFormat eq "tx3g" and $buff =~ /^..PNDM/s
1235 0 0 0 $size >= 2 and unpack("n", $buff) == $size - 2
1241 0 0 0 $buff =~ /^\0/ and $buff =~ /\x0a$/
0 0 0 $buff =~ /^\0/ and $buff =~ /\x0a$/ and length $buff > 5
1275 0 0 0 $metaFormat eq "camm" and $buff =~ /^X/
1322 8 0 0 $et->{'FoundGPSLatitude'} and not $et->{'FoundGPSDateTime'}
1363 0 0 0 $$dataPt =~ /^.{60}4W`b]S= 140
1556 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'
1608 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
1631 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'
1643 0 0 0 abs $lat2 - $lat < "0.001" and abs $lon2 - $lon < "0.001"
1696 0 0 0 $$dataPt =~ /^.{60}A\0.{6}([NS])\0.{6}([EW])\0/s and $dirLen >= 112
1801 0 0 0 $recentRecPos and $recPos < $recentRecPos
1998 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
2180 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2209 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2248 0 0 0 $dirLen > $recLen and not $et->Options("ExtractEmbedded")
2281 0 0 0 $tag =~ /^[\w ]{4}/ and $len < 33554432
2372 0 0 0 $fix{'tim'} and !$tim || $fix{'tim'} != $tim
2373 0 0 0 $fix{'dat'} and defined $fix{'lat'}
0 0 0 $fix{'dat'} and defined $fix{'lat'} and defined $fix{'lon'}
2375 0 0 0 $fix{'tc'} and $et->{'StartTime'}
2392 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
2487 0 0 0 $resync and $type != 255
2577 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"
2625 0 0 0 $insvLimit{$id} and $len > $insvLimit{$id}[1] * $dlen
0 0 0 $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)
2658 0 0 0 $a[5] eq 'N' || $a[5] eq 'S' and $a[7] eq 'E' || $a[7] eq 'W' || $a[7] eq 'O'
2741 0 0 0 $$dataPt =~ /^FMAS\0\0\0\0.{72}SAMM.{36}A/s and length $$dataPt >= 160
2780 0 4 0 $dataPos and not $et->{'DOC_COUNT'}

or 2 conditions

line l !l condition
785 0 0 $qtFmt{$str} || 'undef'
910 0 0 $4 || 0
911 0 0 $7 || 0
927 0 0 $4 || 0
928 0 0 $7 || 0
935 0 0 $et->{'MediaTS'} || 1
1029 0 0 $2 || 1
1083 0 0 $5 || 0
1084 0 0 $8 || 0
1094 0 0 $et->{'UnknownTextCount'} || 0
1115 16 0 $et->{'HandlerType'} || ''
1139 8 0 $et->{'MediaTS'} || 1
1176 4 4 $et->{'MetaFormat'} || ''
2398 0 0 $5 || 0
2399 0 0 $8 || 0
2405 0 0 $5 || 0
2406 0 0 $8 || 0
2574 0 0 $dirInfo->{'Offset'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
768 0 0 0 $len < 8 or $pos + $len > $end
1223 0 0 8 $type eq "text" or $type eq "sbtl" and $metaFormat eq "tx3g" and $buff =~ /^..PNDM/s
1556 0 0 0 $latRef eq 'N' || $latRef eq 'S'
0 0 0 $lonRef eq 'E' || $lonRef eq 'W'
1631 0 0 0 $latRef eq 'N' || $latRef eq 'S'
0 0 0 $lonRef eq 'E' || $lonRef eq 'W'
1947 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
1970 0 0 0 $mon < 1 or $mon > 12
1998 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
2010 0 0 0 $sz == 8 or $sz == 16
2143 0 0 0 $len < 8 or $pos + $len > length $$dataPt
2219 0 0 0 abs $lat > 9000 or abs $lon > 18000
2315 0 0 0 abs $lat > 9000 or abs $lon > 18000
2372 0 0 0 !$tim || $fix{'tim'} != $tim
2503 0 0 0 $tm < $sampleTime or $tm > $sampleTime + 250
2519 0 0 0 $type == 0 or $type == 3
2557 0 0 0 $eeOpt or ($found & 41) != 41
2589 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
2600 0 0 0 $verbose or $et->{'HTML_DUMP'}
2658 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'
2805 0 0 0 $tagTbl or $pos < 20000000