line |
true |
false |
branch |
38
|
1 |
0 |
if ( my_hv_exists(info, "seek_offset") ) { |
39
|
1 |
0 |
frame_offset = SvIV( *(my_hv_fetch(info, "seek_offset") ) ); |
83
|
1 |
4 |
if (mp4->track_count > 1) { |
88
|
0 |
4 |
if ( !my_hv_exists(info, "samplerate") ) { |
95
|
4 |
0 |
samplerate = SvIV( *( my_hv_fetch( info, "samplerate" ) ) ); |
102
|
4 |
0 |
if ( |
104
|
4 |
0 |
|| !mp4->num_sample_byte_sizes |
105
|
4 |
0 |
|| !mp4->num_sample_to_chunks |
106
|
0 |
4 |
|| !mp4->num_chunk_offsets |
114
|
4 |
0 |
while ( (i < mp4->num_time_to_samples) && |
|
4 |
0 |
while ( (i < mp4->num_time_to_samples) && |
126
|
4 |
0 |
if (j <= mp4->time_to_sample[i].sample_count) { |
140
|
0 |
4 |
if ( new_sample >= mp4->num_sample_byte_sizes ) { |
157
|
0 |
4 |
Newz(0, stts, stts_entries * sizeof(*stts), struct tts); |
159
|
6341 |
4 |
for (i = new_sample; i < total_sample_count; i++) { |
162
|
6337 |
4 |
if (cur_duration && cur_duration == duration) { |
|
6336 |
1 |
if (cur_duration && cur_duration == duration) { |
178
|
5 |
4 |
for (i = 0; i < stts_entries; i++) { |
202
|
1 |
3 |
for (i = 1; i < mp4->num_sample_to_chunks; i++) { |
209
|
1 |
0 |
if (new_sample < total_samples + range_samples) |
219
|
1 |
3 |
if (new_sample >= mp4->sample_to_chunk[0].samples_per_chunk) { |
235
|
0 |
4 |
if (chunk > mp4->num_chunk_offsets) { |
244
|
0 |
4 |
if (chunk_sample > new_sample) { |
251
|
5 |
4 |
for (i = chunk_sample; i < new_sample; i++) { |
257
|
0 |
4 |
if (file_offset > mp4->audio_offset + mp4->audio_size) { |
273
|
0 |
4 |
Newz(0, stsc, stsc_entries * sizeof(*stsc), struct stc); |
275
|
1271 |
4 |
for (i = chunk; i <= mp4->num_chunk_offsets; i++) { |
279
|
1267 |
4 |
if (cur_samples_per_chunk && cur_samples_per_chunk == samples_in_chunk) { |
|
1265 |
2 |
if (cur_samples_per_chunk && cur_samples_per_chunk == samples_in_chunk) { |
288
|
4 |
2 |
if (j == 1) { |
306
|
6 |
4 |
for (i = 0; i < stsc_entries; i++) { |
331
|
6341 |
4 |
for (i = new_sample; i < mp4->num_sample_byte_sizes; i++) { |
357
|
4 |
0 |
chunk_offset = SvIV( *( my_hv_fetch(info, "audio_offset") ) ); |
366
|
1271 |
4 |
for (i = chunk - 1; i < mp4->num_chunk_offsets; i++) { |
367
|
4 |
1267 |
if (i == chunk - 1) { |
411
|
4 |
0 |
if (mp4->time_to_sample) Safefree(mp4->time_to_sample); |
412
|
4 |
0 |
if (mp4->sample_to_chunk) Safefree(mp4->sample_to_chunk); |
413
|
4 |
0 |
if (mp4->sample_byte_size) Safefree(mp4->sample_byte_size); |
414
|
4 |
0 |
if (mp4->chunk_offset) Safefree(mp4->chunk_offset); |
421
|
103 |
0 |
while ( (box_size = _mp4_read_box(mp4)) > 0 ) { |
425
|
4 |
99 |
if (mp4->audio_offset >= mp4->file_size) |
432
|
4 |
0 |
if (mp4->buf) { |
441
|
4 |
1 |
if (mp4->new_stts) SvREFCNT_dec(mp4->new_stts); |
442
|
4 |
1 |
if (mp4->new_stsc) SvREFCNT_dec(mp4->new_stsc); |
443
|
4 |
1 |
if (mp4->new_stsz) SvREFCNT_dec(mp4->new_stsz); |
444
|
4 |
1 |
if (mp4->new_stco) SvREFCNT_dec(mp4->new_stco); |
447
|
5 |
0 |
if (mp4->time_to_sample) Safefree(mp4->time_to_sample); |
448
|
5 |
0 |
if (mp4->sample_to_chunk) Safefree(mp4->sample_to_chunk); |
449
|
5 |
0 |
if (mp4->sample_byte_size) Safefree(mp4->sample_byte_size); |
450
|
5 |
0 |
if (mp4->chunk_offset) Safefree(mp4->chunk_offset); |
457
|
1 |
4 |
if (ret == -1) { |
499
|
495 |
0 |
while ( (box_size = _mp4_read_box(mp4)) > 0 ) { |
503
|
17 |
478 |
if (mp4->audio_offset >= file_size) |
510
|
4 |
13 |
if ( !my_hv_exists(info, "avg_bitrate") ) { |
512
|
4 |
0 |
if (entry) { |
514
|
4 |
0 |
if (audio_offset) { |
515
|
4 |
0 |
uint32_t song_length_ms = SvIV(*entry); |
516
|
4 |
0 |
uint32_t bitrate = _bitrate(file_size - SvIV(*audio_offset), song_length_ms); |
525
|
15 |
2 |
if (!mp4->dlna_invalid && mp4->samplerate && mp4->bitrate && mp4->channels) { |
|
15 |
0 |
if (!mp4->dlna_invalid && mp4->samplerate && mp4->bitrate && mp4->channels) { |
|
15 |
0 |
if (!mp4->dlna_invalid && mp4->samplerate && mp4->bitrate && mp4->channels) { |
|
15 |
0 |
if (!mp4->dlna_invalid && mp4->samplerate && mp4->bitrate && mp4->channels) { |
530
|
11 |
0 |
if (mp4->samplerate < 8000 || mp4->samplerate > 48000) |
|
10 |
1 |
if (mp4->samplerate < 8000 || mp4->samplerate > 48000) |
533
|
10 |
0 |
if (mp4->channels <= 2) { |
534
|
8 |
2 |
if (mp4->bitrate <= 192000) |
536
|
2 |
0 |
else if (mp4->bitrate <= 320000) |
538
|
0 |
0 |
else if (mp4->bitrate <= 576000) |
541
|
0 |
0 |
else if (mp4->channels <= 6) { |
542
|
0 |
0 |
if (mp4->bitrate <= 1440000) |
552
|
0 |
0 |
if (mp4->samplerate < 8000) |
555
|
0 |
0 |
if (mp4->samplerate <= 48000) { |
556
|
0 |
0 |
if (mp4->channels <= 2 && mp4->bitrate <= 576000) |
|
0 |
0 |
if (mp4->channels <= 2 && mp4->bitrate <= 576000) |
559
|
0 |
0 |
else if (mp4->samplerate <= 96000) { |
560
|
0 |
0 |
if (mp4->channels <= 6 && mp4->bitrate <= 2880000) |
|
0 |
0 |
if (mp4->channels <= 6 && mp4->bitrate <= 2880000) |
562
|
0 |
0 |
else if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
|
0 |
0 |
else if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
571
|
0 |
0 |
if (mp4->samplerate < 8000) |
574
|
0 |
0 |
if (mp4->samplerate <= 24000) { |
575
|
0 |
0 |
if (mp4->channels > 2) |
578
|
0 |
0 |
if (mp4->bitrate <= 128000) |
580
|
0 |
0 |
else if (mp4->bitrate <= 320000) |
582
|
0 |
0 |
else if (mp4->bitrate <= 576000) |
585
|
0 |
0 |
else if (mp4->samplerate <= 48000) { |
586
|
0 |
0 |
if (mp4->channels <= 2 && mp4->bitrate <= 576000) |
|
0 |
0 |
if (mp4->channels <= 2 && mp4->bitrate <= 576000) |
588
|
0 |
0 |
else if (mp4->channels <= 6 && mp4->bitrate <= 1440000) |
|
0 |
0 |
else if (mp4->channels <= 6 && mp4->bitrate <= 1440000) |
590
|
0 |
0 |
else if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
|
0 |
0 |
else if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
593
|
0 |
0 |
else if (mp4->samplerate <= 96000) { |
594
|
0 |
0 |
if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
|
0 |
0 |
if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
604
|
0 |
0 |
if (mp4->samplerate < 8000) |
607
|
0 |
0 |
if (mp4->samplerate <= 24000) { |
608
|
0 |
0 |
if (mp4->channels > 2) |
611
|
0 |
0 |
if (mp4->bitrate <= 128000) |
613
|
0 |
0 |
else if (mp4->bitrate <= 320000) |
615
|
0 |
0 |
else if (mp4->bitrate <= 576000) |
618
|
0 |
0 |
else if (mp4->samplerate <= 48000) { |
619
|
0 |
0 |
if (mp4->channels <= 2 && mp4->bitrate <= 576000) |
|
0 |
0 |
if (mp4->channels <= 2 && mp4->bitrate <= 576000) |
621
|
0 |
0 |
else if (mp4->channels <= 6 && mp4->bitrate <= 1440000) |
|
0 |
0 |
else if (mp4->channels <= 6 && mp4->bitrate <= 1440000) |
623
|
0 |
0 |
else if (mp4->channels <= 6 && mp4->bitrate <= 2880000) |
|
0 |
0 |
else if (mp4->channels <= 6 && mp4->bitrate <= 2880000) |
625
|
0 |
0 |
else if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
|
0 |
0 |
else if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
628
|
0 |
0 |
else if (mp4->samplerate <= 96000) { |
629
|
0 |
0 |
if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
|
0 |
0 |
if (mp4->channels <= 8 && mp4->bitrate <= 4032000) |
638
|
0 |
0 |
if (mp4->samplerate < 16000 || mp4->samplerate > 48000) |
|
0 |
0 |
if (mp4->samplerate < 16000 || mp4->samplerate > 48000) |
641
|
0 |
0 |
if (mp4->bitrate > 128000) |
644
|
0 |
0 |
if (mp4->channels <= 2) |
646
|
0 |
0 |
else if (mp4->channels <= 6) |
672
|
0 |
598 |
if ( !_check_buf(mp4->infile, mp4->buf, 16, MP4_BLOCK_SIZE) ) { |
682
|
0 |
598 |
if (size == 1) { |
686
|
0 |
598 |
else if (size == 0) { |
694
|
598 |
0 |
if (size) { |
702
|
103 |
495 |
if (mp4->seekhdr) { |
706
|
31 |
72 |
if ( |
707
|
4 |
27 |
FOURCC_EQ(type, "moov") |
|
4 |
0 |
FOURCC_EQ(type, "moov") |
|
4 |
0 |
FOURCC_EQ(type, "moov") |
|
0 |
4 |
FOURCC_EQ(type, "moov") |
708
|
8 |
91 |
|| FOURCC_EQ(type, "trak") |
|
4 |
4 |
|| FOURCC_EQ(type, "trak") |
|
4 |
0 |
|| FOURCC_EQ(type, "trak") |
|
4 |
0 |
|| FOURCC_EQ(type, "trak") |
|
0 |
4 |
|| FOURCC_EQ(type, "trak") |
709
|
27 |
68 |
|| FOURCC_EQ(type, "mdia") |
|
12 |
15 |
|| FOURCC_EQ(type, "mdia") |
|
12 |
0 |
|| FOURCC_EQ(type, "mdia") |
|
12 |
0 |
|| FOURCC_EQ(type, "mdia") |
|
8 |
4 |
|| FOURCC_EQ(type, "mdia") |
710
|
23 |
68 |
|| FOURCC_EQ(type, "minf") |
|
4 |
19 |
|| FOURCC_EQ(type, "minf") |
|
4 |
0 |
|| FOURCC_EQ(type, "minf") |
|
4 |
0 |
|| FOURCC_EQ(type, "minf") |
|
0 |
4 |
|| FOURCC_EQ(type, "minf") |
711
|
28 |
59 |
|| FOURCC_EQ(type, "stbl") |
|
24 |
4 |
|| FOURCC_EQ(type, "stbl") |
|
24 |
0 |
|| FOURCC_EQ(type, "stbl") |
|
24 |
0 |
|| FOURCC_EQ(type, "stbl") |
|
4 |
20 |
|| FOURCC_EQ(type, "stbl") |
720
|
24 |
59 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
20 |
4 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
4 |
16 |
else if ( FOURCC_EQ(type, "stts") ) { |
724
|
20 |
59 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
16 |
4 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
16 |
0 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
16 |
0 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
4 |
12 |
else if ( FOURCC_EQ(type, "stsc") ) { |
728
|
16 |
59 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
12 |
4 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
12 |
0 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
12 |
0 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
4 |
8 |
else if ( FOURCC_EQ(type, "stsz") ) { |
732
|
12 |
59 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
8 |
4 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
8 |
0 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
8 |
0 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
4 |
4 |
else if ( FOURCC_EQ(type, "stco") ) { |
743
|
8 |
59 |
if ( FOURCC_EQ(type, "stsd") ) { |
|
4 |
4 |
if ( FOURCC_EQ(type, "stsd") ) { |
|
4 |
0 |
if ( FOURCC_EQ(type, "stsd") ) { |
|
4 |
0 |
if ( FOURCC_EQ(type, "stsd") ) { |
|
4 |
0 |
if ( FOURCC_EQ(type, "stsd") ) { |
748
|
19 |
44 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
3 |
16 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
3 |
0 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
3 |
0 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
3 |
0 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
753
|
16 |
44 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
4 |
12 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
4 |
0 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
4 |
0 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
4 |
0 |
else if ( FOURCC_EQ(type, "meta") ) { |
758
|
3 |
53 |
else if ( |
759
|
0 |
3 |
!FOURCC_EQ(type, "edts") |
|
0 |
0 |
!FOURCC_EQ(type, "edts") |
|
0 |
0 |
!FOURCC_EQ(type, "edts") |
|
0 |
0 |
!FOURCC_EQ(type, "edts") |
760
|
8 |
48 |
&& !FOURCC_EQ(type, "dinf") |
|
4 |
4 |
&& !FOURCC_EQ(type, "dinf") |
|
4 |
0 |
&& !FOURCC_EQ(type, "dinf") |
|
4 |
0 |
&& !FOURCC_EQ(type, "dinf") |
|
0 |
4 |
&& !FOURCC_EQ(type, "dinf") |
761
|
4 |
48 |
&& !FOURCC_EQ(type, "udta") |
|
4 |
0 |
&& !FOURCC_EQ(type, "udta") |
|
4 |
0 |
&& !FOURCC_EQ(type, "udta") |
|
4 |
0 |
&& !FOURCC_EQ(type, "udta") |
|
0 |
4 |
&& !FOURCC_EQ(type, "udta") |
762
|
12 |
36 |
&& !FOURCC_EQ(type, "mdat") |
|
8 |
4 |
&& !FOURCC_EQ(type, "mdat") |
|
8 |
0 |
&& !FOURCC_EQ(type, "mdat") |
|
8 |
0 |
&& !FOURCC_EQ(type, "mdat") |
|
4 |
4 |
&& !FOURCC_EQ(type, "mdat") |
764
|
0 |
44 |
if ( !_check_buf(mp4->infile, mp4->buf, size - 8, MP4_BLOCK_SIZE) ) { |
780
|
55 |
543 |
if ( FOURCC_EQ(type, "ftyp") ) { |
|
21 |
34 |
if ( FOURCC_EQ(type, "ftyp") ) { |
|
21 |
0 |
if ( FOURCC_EQ(type, "ftyp") ) { |
|
21 |
0 |
if ( FOURCC_EQ(type, "ftyp") ) { |
|
21 |
0 |
if ( FOURCC_EQ(type, "ftyp") ) { |
781
|
0 |
21 |
if ( !_mp4_parse_ftyp(mp4) ) { |
786
|
175 |
402 |
else if ( |
787
|
21 |
154 |
FOURCC_EQ(type, "moov") |
|
21 |
0 |
FOURCC_EQ(type, "moov") |
|
21 |
0 |
FOURCC_EQ(type, "moov") |
|
0 |
21 |
FOURCC_EQ(type, "moov") |
788
|
20 |
536 |
|| FOURCC_EQ(type, "edts") |
|
0 |
20 |
|| FOURCC_EQ(type, "edts") |
|
0 |
0 |
|| FOURCC_EQ(type, "edts") |
|
0 |
0 |
|| FOURCC_EQ(type, "edts") |
|
0 |
0 |
|| FOURCC_EQ(type, "edts") |
789
|
154 |
402 |
|| FOURCC_EQ(type, "mdia") |
|
69 |
85 |
|| FOURCC_EQ(type, "mdia") |
|
69 |
0 |
|| FOURCC_EQ(type, "mdia") |
|
69 |
0 |
|| FOURCC_EQ(type, "mdia") |
|
45 |
24 |
|| FOURCC_EQ(type, "mdia") |
790
|
130 |
402 |
|| FOURCC_EQ(type, "minf") |
|
24 |
106 |
|| FOURCC_EQ(type, "minf") |
|
24 |
0 |
|| FOURCC_EQ(type, "minf") |
|
24 |
0 |
|| FOURCC_EQ(type, "minf") |
|
0 |
24 |
|| FOURCC_EQ(type, "minf") |
791
|
48 |
460 |
|| FOURCC_EQ(type, "dinf") |
|
24 |
24 |
|| FOURCC_EQ(type, "dinf") |
|
24 |
0 |
|| FOURCC_EQ(type, "dinf") |
|
24 |
0 |
|| FOURCC_EQ(type, "dinf") |
|
0 |
24 |
|| FOURCC_EQ(type, "dinf") |
792
|
167 |
317 |
|| FOURCC_EQ(type, "stbl") |
|
144 |
23 |
|| FOURCC_EQ(type, "stbl") |
|
144 |
0 |
|| FOURCC_EQ(type, "stbl") |
|
144 |
0 |
|| FOURCC_EQ(type, "stbl") |
|
120 |
24 |
|| FOURCC_EQ(type, "stbl") |
793
|
21 |
439 |
|| FOURCC_EQ(type, "udta") |
|
21 |
0 |
|| FOURCC_EQ(type, "udta") |
|
21 |
0 |
|| FOURCC_EQ(type, "udta") |
|
21 |
0 |
|| FOURCC_EQ(type, "udta") |
|
21 |
0 |
|| FOURCC_EQ(type, "udta") |
799
|
0 |
138 |
if ( FOURCC_EQ(type, "trak") ) { |
|
0 |
0 |
if ( FOURCC_EQ(type, "trak") ) { |
|
0 |
0 |
if ( FOURCC_EQ(type, "trak") ) { |
|
0 |
0 |
if ( FOURCC_EQ(type, "trak") ) { |
|
0 |
0 |
if ( FOURCC_EQ(type, "trak") ) { |
803
|
51 |
388 |
else if ( FOURCC_EQ(type, "trak") ) { |
|
27 |
24 |
else if ( FOURCC_EQ(type, "trak") ) { |
|
27 |
0 |
else if ( FOURCC_EQ(type, "trak") ) { |
|
27 |
0 |
else if ( FOURCC_EQ(type, "trak") ) { |
|
24 |
3 |
else if ( FOURCC_EQ(type, "trak") ) { |
808
|
106 |
309 |
else if ( FOURCC_EQ(type, "mvhd") ) { |
|
21 |
85 |
else if ( FOURCC_EQ(type, "mvhd") ) { |
|
21 |
0 |
else if ( FOURCC_EQ(type, "mvhd") ) { |
|
21 |
0 |
else if ( FOURCC_EQ(type, "mvhd") ) { |
|
21 |
0 |
else if ( FOURCC_EQ(type, "mvhd") ) { |
811
|
0 |
21 |
if ( !_mp4_parse_mvhd(mp4) ) { |
816
|
27 |
367 |
else if ( FOURCC_EQ(type, "tkhd") ) { |
|
24 |
3 |
else if ( FOURCC_EQ(type, "tkhd") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "tkhd") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "tkhd") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "tkhd") ) { |
817
|
0 |
24 |
if ( !_mp4_parse_tkhd(mp4) ) { |
822
|
85 |
285 |
else if ( FOURCC_EQ(type, "mdhd") ) { |
|
45 |
40 |
else if ( FOURCC_EQ(type, "mdhd") ) { |
|
45 |
0 |
else if ( FOURCC_EQ(type, "mdhd") ) { |
|
45 |
0 |
else if ( FOURCC_EQ(type, "mdhd") ) { |
|
24 |
21 |
else if ( FOURCC_EQ(type, "mdhd") ) { |
823
|
0 |
24 |
if ( !_mp4_parse_mdhd(mp4) ) { |
828
|
27 |
319 |
else if ( FOURCC_EQ(type, "hdlr") ) { |
|
24 |
3 |
else if ( FOURCC_EQ(type, "hdlr") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "hdlr") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "hdlr") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "hdlr") ) { |
829
|
0 |
24 |
if ( !_mp4_parse_hdlr(mp4) ) { |
834
|
143 |
179 |
else if ( FOURCC_EQ(type, "stsd") ) { |
|
120 |
23 |
else if ( FOURCC_EQ(type, "stsd") ) { |
|
120 |
0 |
else if ( FOURCC_EQ(type, "stsd") ) { |
|
120 |
0 |
else if ( FOURCC_EQ(type, "stsd") ) { |
|
24 |
96 |
else if ( FOURCC_EQ(type, "stsd") ) { |
835
|
0 |
24 |
if ( !_mp4_parse_stsd(mp4) ) { |
843
|
61 |
237 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
20 |
41 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "mp4a") ) { |
844
|
0 |
20 |
if ( !_mp4_parse_mp4a(mp4) ) { |
852
|
3 |
275 |
else if ( FOURCC_EQ(type, "alac") ) { |
|
3 |
0 |
else if ( FOURCC_EQ(type, "alac") ) { |
|
3 |
0 |
else if ( FOURCC_EQ(type, "alac") ) { |
|
3 |
0 |
else if ( FOURCC_EQ(type, "alac") ) { |
|
3 |
0 |
else if ( FOURCC_EQ(type, "alac") ) { |
853
|
0 |
3 |
if ( !_mp4_parse_alac(mp4) ) { |
862
|
24 |
251 |
else if ( FOURCC_EQ(type, "drms") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "drms") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "drms") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "drms") ) { |
|
0 |
24 |
else if ( FOURCC_EQ(type, "drms") ) { |
871
|
20 |
255 |
else if ( FOURCC_EQ(type, "esds") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "esds") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "esds") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "esds") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "esds") ) { |
872
|
0 |
20 |
if ( !_mp4_parse_esds(mp4) ) { |
877
|
119 |
136 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
96 |
23 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
96 |
0 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
96 |
0 |
else if ( FOURCC_EQ(type, "stts") ) { |
|
24 |
72 |
else if ( FOURCC_EQ(type, "stts") ) { |
878
|
10 |
14 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
|
9 |
1 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
879
|
0 |
9 |
if ( !_mp4_parse_stts(mp4) ) { |
889
|
95 |
136 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
72 |
23 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
72 |
0 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
72 |
0 |
else if ( FOURCC_EQ(type, "stsc") ) { |
|
24 |
48 |
else if ( FOURCC_EQ(type, "stsc") ) { |
890
|
10 |
14 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
|
9 |
1 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
891
|
0 |
9 |
if ( !_mp4_parse_stsc(mp4) ) { |
901
|
71 |
136 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
48 |
23 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
48 |
0 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
48 |
0 |
else if ( FOURCC_EQ(type, "stsz") ) { |
|
24 |
24 |
else if ( FOURCC_EQ(type, "stsz") ) { |
902
|
10 |
14 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
|
9 |
1 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
903
|
0 |
9 |
if ( !_mp4_parse_stsz(mp4) ) { |
913
|
47 |
136 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
24 |
23 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "stco") ) { |
|
24 |
0 |
else if ( FOURCC_EQ(type, "stco") ) { |
914
|
10 |
14 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
|
9 |
1 |
if ( mp4->seeking && mp4->track_count == 1 ) { |
915
|
0 |
9 |
if ( !_mp4_parse_stco(mp4) ) { |
925
|
41 |
118 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
20 |
21 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "meta") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "meta") ) { |
927
|
0 |
20 |
if ( !meta_size ) { |
937
|
25 |
114 |
else if ( FOURCC_EQ(type, "ilst") ) { |
|
20 |
5 |
else if ( FOURCC_EQ(type, "ilst") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "ilst") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "ilst") ) { |
|
20 |
0 |
else if ( FOURCC_EQ(type, "ilst") ) { |
938
|
0 |
20 |
if ( !_mp4_parse_ilst(mp4) ) { |
943
|
21 |
98 |
else if ( FOURCC_EQ(type, "mdat") ) { |
|
21 |
0 |
else if ( FOURCC_EQ(type, "mdat") ) { |
|
21 |
0 |
else if ( FOURCC_EQ(type, "mdat") ) { |
|
21 |
0 |
else if ( FOURCC_EQ(type, "mdat") ) { |
|
21 |
0 |
else if ( FOURCC_EQ(type, "mdat") ) { |
949
|
3 |
18 |
if ( !mp4->seen_moov ) { |
964
|
182 |
416 |
if (skip) { |
976
|
0 |
21 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
987
|
0 |
21 |
if (mp4->rsize % 4) { |
992
|
74 |
21 |
while (mp4->rsize > 0) { |
1009
|
0 |
21 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1016
|
21 |
0 |
if (version == 0) { // 32-bit values |
1025
|
0 |
0 |
else if (version == 1) { // 64-bit values |
1054
|
24 |
0 |
uint32_t timescale = SvIV( *(my_hv_fetch(mp4->info, "mv_timescale")) ); |
1056
|
0 |
24 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1066
|
24 |
0 |
if (version == 0) { // 32-bit values |
1079
|
0 |
0 |
else if (version == 1) { // 64-bit values |
1102
|
0 |
24 |
if (width > 0) { |
1108
|
0 |
24 |
if (height > 0) { |
1126
|
0 |
24 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1133
|
24 |
0 |
if (version == 0) { // 32-bit values |
1141
|
24 |
0 |
if ( my_hv_exists( mp4->info, "song_length_ms" ) ) { |
1148
|
0 |
0 |
else if (version == 1) { // 64-bit values |
1156
|
0 |
0 |
if ( my_hv_exists( mp4->info, "song_length_ms" ) ) { |
1181
|
0 |
24 |
if (!trackinfo) { |
1185
|
0 |
24 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1212
|
0 |
24 |
if ( !_check_buf(mp4->infile, mp4->buf, 8, MP4_BLOCK_SIZE) ) { |
1229
|
0 |
20 |
if ( !_check_buf(mp4->infile, mp4->buf, 28, MP4_BLOCK_SIZE) ) { |
1261
|
0 |
20 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1272
|
20 |
0 |
if (buffer_get_char(mp4->buf) == 0x03) { |
1274
|
0 |
20 |
if ( _mp4_descr_length(mp4->buf) < 5 + 15 ) { |
1287
|
0 |
20 |
if (buffer_get_char(mp4->buf) != 0x04) { |
1292
|
0 |
20 |
if ( _mp4_descr_length(mp4->buf) < 13 ) { |
1304
|
16 |
4 |
if (avg_bitrate) { |
1305
|
3 |
13 |
if ( my_hv_exists(mp4->info, "avg_bitrate") ) { |
1307
|
3 |
0 |
avg_bitrate += SvIV(*(my_hv_fetch(mp4->info, "avg_bitrate"))); |
1314
|
0 |
20 |
if (buffer_get_char(mp4->buf) != 0x05) { |
1321
|
20 |
0 |
if (len > 0) { |
1329
|
2 |
18 |
if ( aot == 0x1F ) { |
1341
|
0 |
20 |
if (samplerate == 0xF) { // XXX need test file with 24-bit samplerate field |
1355
|
2 |
18 |
if (aot == AAC_SLS) { |
1363
|
17 |
1 |
else if (aot == AAC_HE || aot == AAC_PS) { |
|
0 |
17 |
else if (aot == AAC_HE || aot == AAC_PS) { |
1367
|
0 |
1 |
if (samplerate == 0xF) { // XXX need test file with 24-bit samplerate field |
1388
|
0 |
20 |
if (buffer_get_char(mp4->buf) != 0x06) { |
1395
|
0 |
20 |
if (buffer_get_char(mp4->buf) != 0x02) { |
1407
|
0 |
3 |
if ( !_check_buf(mp4->infile, mp4->buf, 28, MP4_BLOCK_SIZE) ) { |
1437
|
0 |
9 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1447
|
0 |
9 |
New(0, |
1453
|
0 |
9 |
if ( !mp4->time_to_sample ) { |
1458
|
11 |
9 |
for (i = 0; i < mp4->num_time_to_samples; i++) { |
1477
|
0 |
9 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1487
|
0 |
9 |
New(0, |
1493
|
0 |
9 |
if ( !mp4->sample_to_chunk ) { |
1498
|
11 |
9 |
for (i = 0; i < mp4->num_sample_to_chunks; i++) { |
1519
|
0 |
9 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1527
|
0 |
9 |
if ( buffer_get_int(mp4->buf) != 0 ) { |
1537
|
0 |
9 |
New(0, |
1543
|
0 |
9 |
if ( !mp4->sample_byte_size ) { |
1548
|
32510 |
9 |
for (i = 0; i < mp4->num_sample_byte_sizes; i++) { |
1551
|
0 |
32510 |
if (v > 0x0000ffff) { |
1569
|
0 |
9 |
if ( !_check_buf(mp4->infile, mp4->buf, mp4->rsize, MP4_BLOCK_SIZE) ) { |
1579
|
0 |
9 |
New(0, |
1585
|
0 |
9 |
if ( !mp4->chunk_offset ) { |
1590
|
21848 |
9 |
for (i = 0; i < mp4->num_chunk_offsets; i++) { |
1605
|
0 |
20 |
if ( !_check_buf(mp4->infile, mp4->buf, 12, MP4_BLOCK_SIZE) ) { |
1618
|
20 |
0 |
if ( !FOURCC_EQ(type, "hdlr") ) { |
|
20 |
0 |
if ( !FOURCC_EQ(type, "hdlr") ) { |
|
20 |
0 |
if ( !FOURCC_EQ(type, "hdlr") ) { |
|
20 |
0 |
if ( !FOURCC_EQ(type, "hdlr") ) { |
|
0 |
20 |
if ( !FOURCC_EQ(type, "hdlr") ) { |
1623
|
0 |
20 |
if ( !_check_buf(mp4->infile, mp4->buf, hdlr_size - 8, MP4_BLOCK_SIZE) ) { |
1635
|
396 |
20 |
while (mp4->rsize) { |
1639
|
0 |
396 |
if ( !_check_buf(mp4->infile, mp4->buf, 8, MP4_BLOCK_SIZE) ) { |
1658
|
67 |
329 |
if ( FOURCC_EQ(key, "----") ) { |
|
67 |
0 |
if ( FOURCC_EQ(key, "----") ) { |
|
67 |
0 |
if ( FOURCC_EQ(key, "----") ) { |
|
67 |
0 |
if ( FOURCC_EQ(key, "----") ) { |
|
67 |
0 |
if ( FOURCC_EQ(key, "----") ) { |
1660
|
0 |
67 |
if ( !_mp4_parse_ilst_custom(mp4, size - 8) ) { |
1668
|
0 |
329 |
if ( !_check_buf(mp4->infile, mp4->buf, 8, MP4_BLOCK_SIZE) ) { |
1678
|
329 |
0 |
if ( bsize <= size - 8 ) { |
1682
|
329 |
0 |
if ( !FOURCC_EQ(bptr, "data") ) { |
|
329 |
0 |
if ( !FOURCC_EQ(bptr, "data") ) { |
|
329 |
0 |
if ( !FOURCC_EQ(bptr, "data") ) { |
|
329 |
0 |
if ( !FOURCC_EQ(bptr, "data") ) { |
|
0 |
329 |
if ( !FOURCC_EQ(bptr, "data") ) { |
1690
|
0 |
329 |
if ( !_mp4_parse_ilst_data(mp4, bsize - 8, skey) ) { |
1698
|
2 |
327 |
if ( bsize < size - 8 ) { |
1723
|
29 |
371 |
if ( FOURCC_EQ(ckey, "COVR") && _env_true("AUDIO_SCAN_NO_ARTWORK") ) { |
|
13 |
16 |
if ( FOURCC_EQ(ckey, "COVR") && _env_true("AUDIO_SCAN_NO_ARTWORK") ) { |
|
13 |
0 |
if ( FOURCC_EQ(ckey, "COVR") && _env_true("AUDIO_SCAN_NO_ARTWORK") ) { |
|
13 |
0 |
if ( FOURCC_EQ(ckey, "COVR") && _env_true("AUDIO_SCAN_NO_ARTWORK") ) { |
|
11 |
2 |
if ( FOURCC_EQ(ckey, "COVR") && _env_true("AUDIO_SCAN_NO_ARTWORK") ) { |
|
1 |
10 |
if ( FOURCC_EQ(ckey, "COVR") && _env_true("AUDIO_SCAN_NO_ARTWORK") ) { |
1733
|
0 |
399 |
if ( !_check_buf(mp4->infile, mp4->buf, size, MP4_BLOCK_SIZE) ) { |
1745
|
351 |
48 |
if ( !flags || flags == 21 ) { |
|
60 |
291 |
if ( !flags || flags == 21 ) { |
1746
|
44 |
64 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
15 |
29 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
15 |
0 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
15 |
0 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
0 |
15 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
13 |
80 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
13 |
0 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
13 |
0 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
13 |
0 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
|
13 |
0 |
if ( FOURCC_EQ( SvPVX(key), "TRKN" ) || FOURCC_EQ( SvPVX(key), "DISK" ) ) { |
1756
|
27 |
1 |
if (size > 12) { |
1763
|
26 |
2 |
if (total) { |
1766
|
1 |
1 |
else if (num) { |
1772
|
9 |
71 |
else if ( FOURCC_EQ( SvPVX(key), "GNRE" ) ) { |
|
9 |
0 |
else if ( FOURCC_EQ( SvPVX(key), "GNRE" ) ) { |
|
9 |
0 |
else if ( FOURCC_EQ( SvPVX(key), "GNRE" ) ) { |
|
9 |
0 |
else if ( FOURCC_EQ( SvPVX(key), "GNRE" ) ) { |
|
9 |
0 |
else if ( FOURCC_EQ( SvPVX(key), "GNRE" ) ) { |
1777
|
9 |
0 |
if (genre_num > 0 && genre_num < NGENRES + 1) { |
|
9 |
0 |
if (genre_num > 0 && genre_num < NGENRES + 1) { |
1788
|
27 |
44 |
if (dsize == 1) { |
1791
|
15 |
29 |
else if (dsize == 2) { |
1794
|
18 |
11 |
else if (dsize == 4) { |
1797
|
1 |
10 |
else if (dsize == 8) { |
1811
|
124 |
167 |
if ( ckey[0] == 0xA9 ) { |
1822
|
100 |
263 |
if ( my_hv_exists( mp4->tags, (char *)ckey ) ) { |
1824
|
100 |
0 |
if (entry != NULL) { |
1825
|
7 |
93 |
if ( SvROK(*entry) && SvTYPE(SvRV(*entry)) == SVt_PVAV ) { |
|
7 |
0 |
if ( SvROK(*entry) && SvTYPE(SvRV(*entry)) == SVt_PVAV ) { |
1849
|
205 |
67 |
while (size) { |
1854
|
0 |
205 |
if ( !_check_buf(mp4->infile, mp4->buf, 8, MP4_BLOCK_SIZE) ) { |
1866
|
67 |
138 |
if ( FOURCC_EQ(type, "name") ) { |
|
67 |
0 |
if ( FOURCC_EQ(type, "name") ) { |
|
67 |
0 |
if ( FOURCC_EQ(type, "name") ) { |
|
67 |
0 |
if ( FOURCC_EQ(type, "name") ) { |
|
67 |
0 |
if ( FOURCC_EQ(type, "name") ) { |
1868
|
0 |
67 |
if ( !_check_buf(mp4->infile, mp4->buf, bsize, MP4_BLOCK_SIZE) ) { |
1880
|
71 |
67 |
else if ( FOURCC_EQ(type, "data") ) { |
|
71 |
0 |
else if ( FOURCC_EQ(type, "data") ) { |
|
71 |
0 |
else if ( FOURCC_EQ(type, "data") ) { |
|
71 |
0 |
else if ( FOURCC_EQ(type, "data") ) { |
|
71 |
0 |
else if ( FOURCC_EQ(type, "data") ) { |
1881
|
0 |
71 |
if (!key) { |
1886
|
0 |
71 |
if ( !_mp4_parse_ilst_data(mp4, bsize - 8, key) ) { |
1893
|
0 |
67 |
if ( !_check_buf(mp4->infile, mp4->buf, bsize - 8, MP4_BLOCK_SIZE) ) { |
1917
|
67 |
0 |
if (entry != NULL) { |
1925
|
74 |
0 |
for (i = 0; av_len(tracks) >= 0 && i <= av_len(tracks); i++) { |
|
74 |
0 |
for (i = 0; av_len(tracks) >= 0 && i <= av_len(tracks); i++) { |
1927
|
74 |
0 |
if (info != NULL) { |
1932
|
74 |
0 |
if (tid != NULL) { |
1933
|
74 |
0 |
if ( SvIV(*tid) == mp4->current_track ) { |
|
67 |
7 |
if ( SvIV(*tid) == mp4->current_track ) { |
1954
|
228 |
80 |
} while ( (b & 0x80) && num_bytes < 4 ); |
|
228 |
0 |
} while ( (b & 0x80) && num_bytes < 4 ); |
1962
|
154 |
31 |
if ( buffer_len(mp4->buf) >= size ) { |
1981
|
2538 |
0 |
for (i = mp4->num_sample_to_chunks - 1; i >= 0; i--) { |
1982
|
1271 |
1267 |
if (mp4->sample_to_chunk[i].first_chunk <= chunk) { |
1996
|
5 |
4 |
for (i = 0; i < mp4->num_time_to_samples; i++) { |
2009
|
6342 |
0 |
for (i = 0; i < mp4->num_time_to_samples; i++) { |
2011
|
6341 |
1 |
if (sample < co + delta) { |