| 775 | } |
| 776 | |
| 777 | static int parse_section_header(SectionHeader *h, |
| 778 | const uint8_t **pp, const uint8_t *p_end) |
| 779 | { |
| 780 | int val; |
| 781 | |
| 782 | val = get8(pp, p_end); |
| 783 | if (val < 0) |
| 784 | return val; |
| 785 | h->tid = val; |
| 786 | *pp += 2; |
| 787 | val = get16(pp, p_end); |
| 788 | if (val < 0) |
| 789 | return val; |
| 790 | h->id = val; |
| 791 | val = get8(pp, p_end); |
| 792 | if (val < 0) |
| 793 | return val; |
| 794 | h->version = (val >> 1) & 0x1f; |
| 795 | h->current_next = val & 0x01; |
| 796 | val = get8(pp, p_end); |
| 797 | if (val < 0) |
| 798 | return val; |
| 799 | h->sec_num = val; |
| 800 | val = get8(pp, p_end); |
| 801 | if (val < 0) |
| 802 | return val; |
| 803 | h->last_sec_num = val; |
| 804 | return 0; |
| 805 | } |
| 806 | |
| 807 | typedef struct StreamType { |
| 808 | uint32_t stream_type; |