Ticket #1043: mpegts.c.TXT

File mpegts.c.TXT, 1.3 KB (added by Mark, 15 years ago)
Line 
1mpegts.c
2
3
4static int parse_MP4SLDescrTag(MP4DescrParseContext *d, int64_t off, int len)
5{
6 Mp4Descr *descr = d->active_descr;
7 int predefined;
8 if (!descr)
9 return -1;
10
11 predefined = avio_r8(&d->pb);
12 if (!predefined) {
13 int lengths;
14 int flags = avio_r8(&d->pb);
15 descr->sl.use_au_start = !!(flags & 0x80);
16 descr->sl.use_au_end = !!(flags & 0x40);
17 descr->sl.use_rand_acc_pt = !!(flags & 0x20);
18 descr->sl.use_padding = !!(flags & 0x08);
19 descr->sl.use_timestamps = !!(flags & 0x04);
20 descr->sl.use_idle = !!(flags & 0x02);
21 descr->sl.timestamp_res = avio_rb32(&d->pb);
22 avio_rb32(&d->pb);
23 descr->sl.timestamp_len = avio_r8(&d->pb);
24 descr->sl.ocr_len = avio_r8(&d->pb);
25 descr->sl.au_len = avio_r8(&d->pb);
26 descr->sl.inst_bitrate_len = avio_r8(&d->pb);
27 lengths = avio_rb16(&d->pb);
28 descr->sl.degr_prior_len = lengths >> 12;
29 descr->sl.au_seq_num_len = (lengths >> 7) & 0x1f;
30 descr->sl.packet_seq_num_len = (lengths >> 2) & 0x1f;
31 } else {
32 av_log_missing_feature(d->s, "Predefined SLConfigDescriptor\n", 0);
33 }
34 return 0;
35}