17#include <smolrtsp/priv/compiler_attrs.h>
22#define SMOLRTSP_H266_NAL_HEADER_SIZE sizeof(uint16_t)
29#define SMOLRTSP_H266_FU_HEADER_SIZE \
30 ( sizeof(uint16_t) + sizeof(uint8_t))
89 uint8_t bytes[restrict
static 2]) SMOLRTSP_PRIV_MUST_USE;
95 SMOLRTSP_PRIV_MUST_USE;
101 SMOLRTSP_PRIV_MUST_USE;
107 SMOLRTSP_PRIV_MUST_USE;
113 SMOLRTSP_PRIV_MUST_USE;
120 SMOLRTSP_PRIV_MUST_USE;
127 SMOLRTSP_PRIV_MUST_USE;
142 bool is_first_fragment,
bool is_last_fragment);
147#define SMOLRTSP_H266_NAL_UNIT_TRAIL_NUT 0
150#define SMOLRTSP_H266_NAL_UNIT_STSA_NUT 1
153#define SMOLRTSP_H266_NAL_UNIT_RADL_NUT 2
156#define SMOLRTSP_H266_NAL_UNIT_RASL_NUT 3
159#define SMOLRTSP_H266_NAL_UNIT_IDR_W_RADL 7
162#define SMOLRTSP_H266_NAL_UNIT_IDR_N_LP 8
165#define SMOLRTSP_H266_NAL_UNIT_CRA_NUT 9
168#define SMOLRTSP_H266_NAL_UNIT_GDR_NUT 10
171#define SMOLRTSP_H266_NAL_UNIT_OPI_NUT 12
174#define SMOLRTSP_H266_NAL_UNIT_DCI_NUT 13
177#define SMOLRTSP_H266_NAL_UNIT_VPS_NUT 14
180#define SMOLRTSP_H266_NAL_UNIT_SPS_NUT 15
183#define SMOLRTSP_H266_NAL_UNIT_PPS_NUT 16
186#define SMOLRTSP_H266_NAL_UNIT_PREFIX_APS_NUT 17
189#define SMOLRTSP_H266_NAL_UNIT_SUFFIX_APS_NUT 18
192#define SMOLRTSP_H266_NAL_UNIT_PH_NUT 19
195#define SMOLRTSP_H266_NAL_UNIT_AUD_NUT 20
198#define SMOLRTSP_H266_NAL_UNIT_EOS_NUT 21
201#define SMOLRTSP_H266_NAL_UNIT_EOB_NUT 22
204#define SMOLRTSP_H266_NAL_UNIT_PREFIX_SEI_NUT 23
207#define SMOLRTSP_H266_NAL_UNIT_SUFFIX_SEI_NUT 24
210#define SMOLRTSP_H266_NAL_UNIT_FD_NUT 25
217#define SMOLRTSP_H266_NAL_UNIT_AP 28
223#define SMOLRTSP_H266_NAL_UNIT_FU 29
SmolRTSP_H266NalHeader SmolRTSP_H266NalHeader_parse(uint8_t bytes[restrict static 2]) SMOLRTSP_PRIV_MUST_USE
Parses an H.266 NAL header from bytes.
bool SmolRTSP_H266NalHeader_is_pps(SmolRTSP_H266NalHeader self) SMOLRTSP_PRIV_MUST_USE
Checks whether self is PPS.
bool SmolRTSP_H266NalHeader_is_vps(SmolRTSP_H266NalHeader self) SMOLRTSP_PRIV_MUST_USE
Checks whether self is VPS.
bool SmolRTSP_H266NalHeader_is_sps(SmolRTSP_H266NalHeader self) SMOLRTSP_PRIV_MUST_USE
Checks whether self is SPS.
bool SmolRTSP_H266NalHeader_is_coded_slice_non_idr(SmolRTSP_H266NalHeader self) SMOLRTSP_PRIV_MUST_USE
Checks whether self is a coded slice non-IDR (TRAIL_NUT, STSA_NUT, RADL_NUT, RASL_NUT,...
bool SmolRTSP_H266NalHeader_is_coded_slice_idr(SmolRTSP_H266NalHeader self) SMOLRTSP_PRIV_MUST_USE
Checks whether self is a coded slice IDR (either IDR_W_RADL or IDR_N_LP).
void SmolRTSP_H266NalHeader_write_fu_header(SmolRTSP_H266NalHeader self, uint8_t buffer[restrict], bool is_first_fragment, bool is_last_fragment)
Writes an FU payload header and FU header for self into buffer.
uint16_t SmolRTSP_H266NalHeader_serialize(SmolRTSP_H266NalHeader self) SMOLRTSP_PRIV_MUST_USE
Converts self to a two-octet representation.
An H.266 NAL unit.
Definition h266.h:73
U8Slice99 payload
The payload data of this NAL unit (not including the header).
Definition h266.h:82
SmolRTSP_H266NalHeader header
The NAL header of this NAL unit.
Definition h266.h:77