| adaptation_field_length | 0 | 8 | uimsbf |
| if adaptation_field_length >0 |
| discontinuity_indicator | 8 | 1 | uimsbf |
| random_access_indicator | 9 | 1 | uimsbf |
| elementary_stream_priority_indicator | 10 | 1 | bslbf |
| PCR_flag | 11 | 1 | bslbf |
| OPCR_flag | 12 | 1 | bslbf |
| splicing_point_flag | 13 | 1 | bslbf |
| transport_private_data_flag | 14 | 1 | bslbf |
| adaptation_field_extension_flag | 15 | 1 | bslbf |
| if PCR_flag == '1' |
| program_clock_reference_base | 16 | 33 | uimsbf |
| reserved | 49 | 6 | '111111' |
| program_clock_reference_extension | 55 | 9 | uimsbf |
| end if |
| if OPCR_flag == '1' |
| original_program_clock_reference_base | 16 | 33 | uimsbf |
| reserved | 49 | 6 | '111111' |
| original_program_clock_reference_extension | 55 | 9 | uimsbf |
| end if |
| if splicing_point_flag == '1' |
| splice_countdown | | 8 | tcimsbf |
| end if |
| if transport_private_data_flag == '1' |
| private_data_byte | | var | bslbf |
| end if |
| if adaptation_field_extension_flag == '1' |
| adaptation_field_extension_length | | 8 | bslbf |
| ltw_flag | | 1 | bslbf |
| piecewise_rate_flag | | 1 | bslbf |
| seamless_splice_flag | | 1 | bslbf |
| reserved | | 5 | '11111' |
| if ltw_flag == '1' |
| ltw_valid_flag | | 1 | bslbf |
| ltw_offset | | 15 | bslbf |
| end if |
| if piecewise_rate_flag == '1' |
| reserved | | 2 | '11' |
| piecewise_rate | | 22 | uimsbf |
| end if |
| end if |
| end if |