| line | true | false | branch | 
 
| 54 | 11 | 8 | while (!done) { | 
 
| 55 | 0 | 11 | if ( !_check_buf(infile, wvp->buf, 32, WAVPACK_BLOCK_SIZE) ) { | 
 
| 63 | 2 | 9 | if ( bptr[0] == 'R' ) { | 
 
| 64 | 0 | 2 | if ( !_wavpack_parse_old(wvp) ) { | 
 
| 73 | 30610 | 119 | while ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 109 | 10 | while ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 1 | 9 | while ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 0 | 9 | while ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
| 78 | 7 | 30713 | if ( !buffer_len(wvp->buf) ) { | 
 
| 79 | 0 | 7 | if ( !_check_buf(infile, wvp->buf, 32, WAVPACK_BLOCK_SIZE) ) { | 
 
| 89 | 8 | 1 | if ( _wavpack_parse_block(wvp) ) { | 
 
| 114 | 9 | 0 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 9 | 0 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 9 | 0 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 0 | 9 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
| 146 | 0 | 9 | if (wvp->header->version < 0x4) { | 
 
| 156 | 2 | 7 | my_hv_store( wvp->info, (wvp->header->flags & 0x8) ? "hybrid" : "lossless", newSVuv(1) ); | 
 
|  | 2 | 7 | my_hv_store( wvp->info, (wvp->header->flags & 0x8) ? "hybrid" : "lossless", newSVuv(1) ); | 
 
| 161 | 8 | 1 | if ( samplerate_index < 0xF ) { | 
 
| 171 | 0 | 9 | my_hv_store( wvp->info, "channels", newSVuv( (wvp->header->flags & 0x4) ? 1 : 2 ) ); | 
 
| 177 | 1 | 8 | if ( !wvp->header->block_samples ) { | 
 
| 183 | 53 | 1 | while (remaining > 0) { | 
 
| 190 | 0 | 53 | if ( !_check_buf(wvp->infile, wvp->buf, 4, WAVPACK_BLOCK_SIZE) ) { | 
 
| 198 | 7 | 46 | if (id & ID_LARGE) { | 
 
| 211 | 13 | 40 | if (id & ID_ODD_SIZE) { | 
 
| 217 | 47 | 6 | if ( id == ID_WV_BITSTREAM || !size ) { | 
 
|  | 46 | 1 | if ( id == ID_WV_BITSTREAM || !size ) { | 
 
| 249 | 13 | 33 | if (size & 0x1) { | 
 
| 250 | 13 | 0 | if ( buffer_len(wvp->buf) ) { | 
 
| 262 | 8 | 0 | if ( wvp->header->total_samples && wvp->file_size > 0 ) { | 
 
|  | 8 | 0 | if ( wvp->header->total_samples && wvp->file_size > 0 ) { | 
 
| 264 | 8 | 0 | if (samplerate != NULL) { | 
 
| 267 | 1 | 7 | if (wvp->header->flags & 0x80000000) | 
 
| 270 | 8 | 0 | song_length_ms = ((wvp->header->total_samples * 1.0) / SvIV(*samplerate)) * 1000; | 
 
| 297 | 0 | 1 | if (size == 6) { | 
 
| 314 | 1 | 0 | if (wvp->header->flags & 0x80000000) { | 
 
| 318 | 1 | 0 | if (samplerate_index < 0xF) | 
 
| 335 | 45 | 0 | if ( buffer_len(wvp->buf) >= size ) { | 
 
| 367 | 0 | 2 | if ( strncmp( (char *)buffer_ptr(wvp->buf), "RIFF", 4 ) ) { | 
 
| 378 | 0 | 2 | if ( strncmp( (char *)buffer_ptr(wvp->buf), "WAVE", 4 ) ) { | 
 
| 389 | 0 | 2 | if ( !_check_buf(wvp->infile, wvp->buf, 8, WAVPACK_BLOCK_SIZE) ) { | 
 
| 395 | 4 | 0 | while ( buffer_len(wvp->buf) >= 8 ) { | 
 
| 405 | 0 | 4 | if ( chunk_size % 2 ) { | 
 
| 411 | 2 | 2 | if ( !strcmp( chunk_id, "data" ) ) { | 
 
| 417 | 2 | 0 | if ( !strcmp( chunk_id, "fmt " ) ) { | 
 
| 418 | 0 | 2 | if ( !_check_buf(wvp->infile, wvp->buf, chunk_size, WAV_BLOCK_SIZE) ) { | 
 
| 423 | 0 | 2 | if (chunk_size < sizeof(wavhdr)) { | 
 
| 437 | 0 | 2 | if (chunk_size > 16) { | 
 
| 447 | 0 | 2 | if ( !_check_buf(wvp->infile, wvp->buf, 8, WAVPACK_BLOCK_SIZE) ) { | 
 
| 454 | 2 | 0 | if ( | 
 
| 455 | 2 | 0 | wavhdr.FormatTag != 1 || !wavhdr.NumChannels || wavhdr.NumChannels > 2 || | 
 
|  | 2 | 0 | wavhdr.FormatTag != 1 || !wavhdr.NumChannels || wavhdr.NumChannels > 2 || | 
 
|  | 2 | 0 | wavhdr.FormatTag != 1 || !wavhdr.NumChannels || wavhdr.NumChannels > 2 || | 
 
| 456 | 2 | 0 | !wavhdr.SampleRate || wavhdr.BitsPerSample < 16 || wavhdr.BitsPerSample > 24 || | 
 
|  | 2 | 0 | !wavhdr.SampleRate || wavhdr.BitsPerSample < 16 || wavhdr.BitsPerSample > 24 || | 
 
|  | 2 | 0 | !wavhdr.SampleRate || wavhdr.BitsPerSample < 16 || wavhdr.BitsPerSample > 24 || | 
 
| 457 | 2 | 0 | wavhdr.BlockAlign / wavhdr.NumChannels > 3 || wavhdr.BlockAlign % wavhdr.NumChannels || | 
 
|  | 0 | 2 | wavhdr.BlockAlign / wavhdr.NumChannels > 3 || wavhdr.BlockAlign % wavhdr.NumChannels || | 
 
| 465 | 0 | 2 | total_samples = chunk_size / wavhdr.NumChannels / ((wavhdr.BitsPerSample > 16) ? 3 : 2); | 
 
| 469 | 2 | 0 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 2 | 0 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 2 | 0 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
|  | 0 | 2 | if ( bptr[0] != 'w' || bptr[1] != 'v' || bptr[2] != 'p' || bptr[3] != 'k' ) { | 
 
| 480 | 2 | 0 | if (wphdr.version >= 2) { | 
 
| 484 | 1 | 1 | if (wphdr.version == 3) { |