# Functions
ParseTsPacketAdaptation TODO chef.
ParseTsPacketHeader 解析4字节TS Packet header.
# Constants
Adaptation_field followed by payload.
No adaptation_field, payload only.
Adaptation_field only, no payload.
Reserved for future use by ISO/IEC.
TS Packet Header.
TS Packet Header.
TS Packet Header.
TS Packet Header.
no PTS no DTS.
forbidden.
only PTS.
both PTS and DTS.
110x xxxx 0xC0.
1110 xxxx.
PMT.
PMT.
PMT.
PMT.
----------------------------------------------------------------------------- <iso13818-1.pdf> <Table 2-29 Stream type assignments> <page 66/174> 0x0F AAC (ISO/IEC 13818-7 Audio with ADTS transport syntax) 0x1B AVC (video stream as defined in ITU-T Rec.
conditional_access_section (CA_section).
TS_description_section.
forbidden.
PsiId.
ITU-T Rec.
PsiId.
Defined in ISO/IEC 13818-6.
ISO_IEC_14496_object_descriptor_section.
program_association_section.
TS_program_map_section.
ISO_IEC_14496_scene_description_section.
PsiId.
User private.
# Variables
FixedFragmentHeader 每个TS文件都以固定的PAT,PMT开始 TODO(chef): [refactor] 考虑去掉这个fixed变量,目前只在测试中使用 [202303].
FixedFragmentHeaderHevc 每个TS文件都以固定的PAT,PMT开始 TODO(chef): [refactor] 考虑去掉这个fixed变量,目前只在测试中使用 [202303].
# Structs
Frame 帧数据,用于打包成mpegts格式的数据.
Pat --------------------------------------------------------------------------------------------------- Program association section <iso13818-1.pdf> <2.4.4.3> <page 61/174> table_id [8b] * section_syntax_indicator [1b] '0' [1b] reserved [2b] section_length [12b] ** transport_stream_id [16b] ** reserved [2b] version_number [5b] current_next_indicator [1b] * section_number [8b] * last_section_number [8b] * -----loop----- program_number [16b] ** reserved [3b] program_map_PID [13b] ** if program_number == 0 then network_PID else then program_map_PID -------------- CRC_32 [32b] **** ---------------------------------------------------------------------------------------------------.
Pes ----------------------------------------------------------- <iso13818-1.pdf> <2.4.3.6 PES packet> <page 49/174> <Table E.1 - PES packet header example> <page 142/174> <F.0.2 PES packet> <page 144/174> packet_start_code_prefix [24b] *** always 0x00, 0x00, 0x01 stream_id [8b] * PES_packet_length [16b] ** '10' [2b] PES_scrambling_control [2b] PES_priority [1b] data_alignment_indicator [1b] copyright [1b] original_or_copy [1b] * PTS_DTS_flags [2b] ESCR_flag [1b] ES_rate_flag [1b] DSM_trick_mode_flag [1b] additional_copy_info_flag [1b] PES_CRC_flag [1b] PES_extension_flag [1b] * PES_header_data_length [8b] * -----------------------------------------------------------.
Pmt
---------------------------------------- Program Map Table <iso13818-1.pdf> <2.4.4.8> <page 64/174> table_id [8b] * section_syntax_indicator [1b] 0 [1b] reserved [2b] section_length [12b] ** program_number [16b] ** reserved [2b] version_number [5b] current_next_indicator [1b] * section_number [8b] * last_section_number [8b] * reserved [3b] PCR_PID [13b] ** reserved [4b] program_info_length [12b] ** -----loop----- stream_type [8b] * reserved [3b] elementary_PID [13b] ** reserved [4b] ES_info_length_length [12b] ** -------------- CRC32 [32b] **** ----------------------------------------.
TsPacketAdaptation ---------------------------------------------------------- <iso13818-1.pdf> <Table 2-6> <page 40/174> adaptation_field_length [8b] * 不包括自己这1字节 discontinuity_indicator [1b] random_access_indicator [1b] elementary_stream_priority_indicator [1b] PCR_flag [1b] OPCR_flag [1b] splicing_point_flag [1b] transport_private_data_flag [1b] adaptation_field_extension_flag [1b] * -----if PCR_flag == 1----- program_clock_reference_base [33b] reserved [6b] program_clock_reference_extension [9b] ****** ----------------------------------------------------------.
TsPacketHeader ------------------------------------------------ <iso13818-1.pdf> <2.4.3.2> <page 36/174> sync_byte [8b] * always 0x47 transport_error_indicator [1b] payload_unit_start_indicator [1b] transport_priority [1b] PID [13b] ** transport_scrambling_control [2b] adaptation_field_control [2b] continuity_counter [4b] * ------------------------------------------------.