|
static bool | c_rtp_create (struct rohc_comp_ctxt *const context, const struct net_pkt *const packet) |
| Create a new RTP context and initialize it thanks to the given IP/UDP/RTP packet. More...
|
|
static void | c_rtp_destroy (struct rohc_comp_ctxt *const context) |
| Destroy the RTP context. More...
|
|
static bool | c_rtp_check_profile (const struct rohc_comp *const comp, const struct net_pkt *const packet) |
| Check if the given packet corresponds to the RTP profile. More...
|
|
static bool | c_rtp_check_context (const struct rohc_comp_ctxt *const context, const struct net_pkt *const packet, size_t *const cr_score) |
| Check if the IP/UDP/RTP packet belongs to the context. More...
|
|
static int | c_rtp_encode (struct rohc_comp_ctxt *const context, const struct net_pkt *const uncomp_pkt, uint8_t *const rohc_pkt, const size_t rohc_pkt_max_len, rohc_packet_t *const packet_type, size_t *const payload_offset) |
| Encode an IP/UDP/RTP packet according to a pattern decided by several different factors. More...
|
|
static void | rtp_decide_state (struct rohc_comp_ctxt *const context) |
| Decide the state that should be used for the next packet compressed with the ROHC RTP profile. More...
|
|
static rohc_packet_t | c_rtp_decide_FO_packet (const struct rohc_comp_ctxt *context) |
| Decide which packet to send when in First Order (FO) state. More...
|
|
static rohc_packet_t | c_rtp_decide_SO_packet (const struct rohc_comp_ctxt *context) |
| Decide which packet to send when in Second Order (SO) state. More...
|
|
static rohc_ext_t | c_rtp_decide_extension (const struct rohc_comp_ctxt *context) |
| Decide what extension shall be used in the UO-1/UO-2 packet. More...
|
|
static uint32_t | c_rtp_get_next_sn (const struct rohc_comp_ctxt *const context, const struct net_pkt *const uncomp_pkt) |
| Determine the SN value for the next packet. More...
|
|
static bool | rtp_encode_uncomp_fields (struct rohc_comp_ctxt *const context, const struct net_pkt *const uncomp_pkt) |
| Encode uncompressed RTP fields. More...
|
|
static size_t | rtp_code_static_rtp_part (const struct rohc_comp_ctxt *const context, const uint8_t *const next_header, uint8_t *const dest, const size_t counter) |
| Build the static part of the UDP/RTP headers. More...
|
|
static size_t | rtp_code_dynamic_rtp_part (const struct rohc_comp_ctxt *const context, const uint8_t *const next_header, uint8_t *const dest, const size_t counter) |
| Build the dynamic part of the UDP/RTP headers. More...
|
|
static int | rtp_changed_rtp_dynamic (const struct rohc_comp_ctxt *const context, const struct udphdr *const udp, const struct rtphdr *const rtp) |
| Check if the dynamic part of the UDP/RTP headers changed. More...
|
|
static size_t rtp_code_dynamic_rtp_part |
( |
const struct rohc_comp_ctxt *const |
context, |
|
|
const uint8_t *const |
next_header, |
|
|
uint8_t *const |
dest, |
|
|
const size_t |
counter |
|
) |
| |
|
static |
Build the dynamic part of the UDP/RTP headers.
Dynamic part of UDP header (5.7.7.5):
+---+---+---+---+---+---+---+---+
1 / Checksum / 2 octets
+---+---+---+---+---+---+---+---+
Dynamic part of RTP header (5.7.7.6):
+---+---+---+---+---+---+---+---+
2 | V=2 | P | RX| CC | (RX is NOT the RTP X bit)
+---+---+---+---+---+---+---+---+
3 | M | PT |
+---+---+---+---+---+---+---+---+
4 / RTP Sequence Number / 2 octets
+---+---+---+---+---+---+---+---+
5 / RTP Timestamp (absolute) / 4 octets
+---+---+---+---+---+---+---+---+
6 / Generic CSRC list / variable length
+---+---+---+---+---+---+---+---+
7 : Reserved | X | Mode |TIS|TSS: if RX = 1
+---+---+---+---+---+---+---+---+
8 : TS_Stride : 1-4 octets, if TSS = 1
+---+---+---+---+---+---+---+---+
9 : Time_Stride : 1-4 octets, if TIS = 1
+---+---+---+---+---+---+---+---+
Parts 6 & 9 are not supported yet. The TIS flag in part 7 is not supported.
- Parameters
-
context | The compression context |
next_header | The UDP/RTP headers |
dest | The rohc-packet-under-build buffer |
counter | The current position in the rohc-packet-under-build buffer |
- Returns
- The new position in the rohc-packet-under-build buffer