| line | true | false | branch | 
 
| 68 | 0 | 22 | if ( !_check_buf(infile, &ogg_buf, 10, OGG_BLOCK_SIZE) ) { | 
 
| 75 | 0 | 22 | if ( | 
 
| 76 | 0 | 0 | (bptr[0] == 'I' && bptr[1] == 'D' && bptr[2] == '3') && | 
 
|  | 0 | 0 | (bptr[0] == 'I' && bptr[1] == 'D' && bptr[2] == '3') && | 
 
|  | 0 | 0 | (bptr[0] == 'I' && bptr[1] == 'D' && bptr[2] == '3') && | 
 
| 77 | 0 | 0 | bptr[3] < 0xff && bptr[4] < 0xff && | 
 
|  | 0 | 0 | bptr[3] < 0xff && bptr[4] < 0xff && | 
 
| 78 | 0 | 0 | bptr[6] < 0x80 && bptr[7] < 0x80 && bptr[8] < 0x80 && bptr[9] < 0x80 | 
 
|  | 0 | 0 | bptr[6] < 0x80 && bptr[7] < 0x80 && bptr[8] < 0x80 && bptr[9] < 0x80 | 
 
|  | 0 | 0 | bptr[6] < 0x80 && bptr[7] < 0x80 && bptr[8] < 0x80 && bptr[9] < 0x80 | 
 
| 83 | 0 | 0 | if (bptr[5] & 0x10) { | 
 
| 99 | 0 | 165 | if ( !_check_buf(infile, &ogg_buf, 28, OGG_BLOCK_SIZE) ) { | 
 
| 109 | 165 | 0 | if ( ogghdr[0] != 'O' || ogghdr[1] != 'g' || ogghdr[2] != 'g' || ogghdr[3] != 'S' ) { | 
 
|  | 165 | 0 | if ( ogghdr[0] != 'O' || ogghdr[1] != 'g' || ogghdr[2] != 'g' || ogghdr[3] != 'S' ) { | 
 
|  | 165 | 0 | if ( ogghdr[0] != 'O' || ogghdr[1] != 'g' || ogghdr[2] != 'g' || ogghdr[3] != 'S' ) { | 
 
|  | 0 | 165 | if ( ogghdr[0] != 'O' || ogghdr[1] != 'g' || ogghdr[2] != 'g' || ogghdr[3] != 'S' ) { | 
 
| 127 | 22 | 143 | if ( header_type & 0x02 ) { | 
 
| 132 | 65 | 100 | if ( !(header_type & 0x01) ) { | 
 
| 137 | 21 | 144 | if (packets > 2 * streams && !buffer_len(&vorbis_buf) ) { | 
 
|  | 0 | 21 | if (packets > 2 * streams && !buffer_len(&vorbis_buf) ) { | 
 
| 144 | 165 | 0 | if (page >= 0 && page == pagenum) { | 
 
|  | 164 | 1 | if (page >= 0 && page == pagenum) { | 
 
| 157 | 115 | 50 | if (granule_pos > 0 && granule_pos != -1) { | 
 
|  | 22 | 93 | if (granule_pos > 0 && granule_pos != -1) { | 
 
| 159 | 3 | 19 | if (seeking) { | 
 
| 164 | 18 | 1 | if ( buffer_len(&vorbis_buf) > 0 ) { | 
 
| 179 | 117 | 26 | if (num_segments > 1) { | 
 
| 182 | 0 | 117 | if ( !_check_buf(infile, &ogg_buf, num_segments, OGG_BLOCK_SIZE) ) { | 
 
| 187 | 1918 | 117 | for( i = 0; i < num_segments - 1; i++ ) { | 
 
| 196 | 0 | 143 | if ( !_check_buf(infile, &ogg_buf, pagelen, OGG_BLOCK_SIZE) ) { | 
 
| 202 | 0 | 143 | if ( buffer_len(&ogg_buf) < pagelen ) { | 
 
| 216 | 43 | 100 | if ( !vorbis_type ) { | 
 
| 219 | 0 | 43 | if ( strncmp( buffer_ptr(&vorbis_buf), "vorbis", 6 ) ) { | 
 
| 228 | 22 | 121 | if (vorbis_type == 1) { | 
 
| 231 | 0 | 22 | if ( buffer_len(&vorbis_buf) < 23 ) { | 
 
| 281 | 17 | 5 | if ( file_size > avg_buf_size ) { | 
 
| 290 | 0 | 22 | if ( PerlIO_read(infile, buffer_append_space(&ogg_buf, avg_buf_size), avg_buf_size) == 0 ) { | 
 
| 291 | 0 | 0 | if ( PerlIO_error(infile) ) { | 
 
| 305 | 41910 | 0 | while ( | 
 
| 307 | 41712 | 198 | && (bptr[0] != 'O' || bptr[1] != 'g' || bptr[2] != 'g' || bptr[3] != 'S') | 
 
|  | 177 | 21 | && (bptr[0] != 'O' || bptr[1] != 'g' || bptr[2] != 'g' || bptr[3] != 'S') | 
 
|  | 1 | 20 | && (bptr[0] != 'O' || bptr[1] != 'g' || bptr[2] != 'g' || bptr[3] != 'S') | 
 
|  | 0 | 20 | && (bptr[0] != 'O' || bptr[1] != 'g' || bptr[2] != 'g' || bptr[3] != 'S') | 
 
| 312 | 2 | 41888 | if ( buf_size < 14 ) { | 
 
| 334 | 14 | 6 | if ( granule_pos && samplerate && serialno == final_serialno ) { | 
 
|  | 14 | 0 | if ( granule_pos && samplerate && serialno == final_serialno ) { | 
 
|  | 13 | 1 | if ( granule_pos && samplerate && serialno == final_serialno ) { | 
 
| 354 | 0 | 22 | if (err) return err; | 
 
| 378 | 265 | 24 | while (num_comments--) { | 
 
| 382 | 1 | 264 | if ( len > buffer_len(vorbis_buf) ) { | 
 
| 389 | 4 | 260 | if ( | 
 
| 412 | 0 | 4 | if ( !picture ) { | 
 
| 418 | 2 | 2 | if ( my_hv_exists(tags, "ALLPICTURES") ) { | 
 
| 420 | 2 | 0 | if (entry != NULL) { | 
 
| 436 | 4 | 256 | else if ( | 
 
| 456 | 1 | 3 | if ( _env_true("AUDIO_SCAN_NO_ARTWORK") ) { | 
 
| 471 | 0 | 4 | if ( my_hv_exists(tags, "ALLPICTURES") ) { | 
 
| 473 | 0 | 0 | if (entry != NULL) { | 
 
| 497 | 18 | 6 | if (has_framing) { | 
 
| 514 | 0 | 3 | if ( _ogg_parse(infile, file, info, tags, 1) != 0 ) { | 
 
| 518 | 3 | 0 | song_length_ms = SvIV( *(my_hv_fetch( info, "song_length_ms" )) ); | 
 
| 519 | 0 | 3 | if (offset >= song_length_ms) { | 
 
| 523 | 3 | 0 | samplerate = SvIV( *(my_hv_fetch( info, "samplerate" )) ); | 
 
| 555 | 3 | 0 | off_t audio_offset = SvIV( *(my_hv_fetch( info, "audio_offset" )) ); | 
 
| 556 | 3 | 0 | off_t file_size    = SvIV( *(my_hv_fetch( info, "file_size" )) ); | 
 
| 557 | 3 | 0 | uint32_t serialno  = SvIV( *(my_hv_fetch( info, "serial_number" )) ); | 
 
| 566 | 28 | 0 | while (low <= high) { | 
 
| 573 | 0 | 28 | if (mid > file_size - 28) { | 
 
| 579 | 0 | 28 | if ( (PerlIO_seek(infile, mid, SEEK_SET)) == -1 ) { | 
 
| 584 | 0 | 28 | if ( !_check_buf(infile, &buf, 28, OGG_BLOCK_SIZE * 2) ) { | 
 
| 594 | 56 | 0 | while (buf_size >= 4) { | 
 
| 599 | 205128 | 0 | while ( | 
 
| 601 | 204411 | 717 | && | 
 
| 602 | 661 | 56 | (bptr[0] != 'O' || bptr[1] != 'g' || bptr[2] != 'g' || bptr[3] != 'S') | 
 
|  | 0 | 56 | (bptr[0] != 'O' || bptr[1] != 'g' || bptr[2] != 'g' || bptr[3] != 'S') | 
 
|  | 0 | 56 | (bptr[0] != 'O' || bptr[1] != 'g' || bptr[2] != 'g' || bptr[3] != 'S') | 
 
| 608 | 0 | 56 | if (buf_size < 4) { | 
 
| 619 | 0 | 56 | if ( !_check_buf(infile, &buf, 28, 28) ) { | 
 
| 637 | 0 | 56 | if (serialno != cur_serialno) { | 
 
| 648 | 56 | 0 | if (granule_pos && prev_granule_pos) { | 
 
|  | 28 | 28 | if (granule_pos && prev_granule_pos) { | 
 
| 656 | 2 | 26 | if ((prev_granule_pos + 1) <= target_sample && granule_pos >= target_sample) { | 
 
|  | 2 | 0 | if ((prev_granule_pos + 1) <= target_sample && granule_pos >= target_sample) { | 
 
| 662 | 26 | 0 | if (target_sample < (prev_granule_pos + 1)) { | 
 
| 664 | 1 | 25 | if (prev_frame_offset == audio_offset) { |