|
#define | MEDIA_ARRAY_BITS 11 |
|
#define | MEDIA_ARRAY_SIZE (1 << MEDIA_ARRAY_BITS) |
|
#define | FEC_ARRAY_SIZE (1 << 7) /* TS 102 034 says unit should cater for FEC L <= 40, so size is > 3*L */ |
|
#define | MEDIA_INDEX_MASK (MEDIA_ARRAY_SIZE - 1) |
|
#define | FEC_INDEX_MASK (FEC_ARRAY_SIZE - 1) |
|
#define | MIN_PACKET_COUNT 32 |
|
#define | BLK_PACKET_COUNT 64 |
|
#define | INVALID_BLOCK 0xFFFF |
|
#define | INVALID_FEC 0xFF |
|
#define | PAYLOAD_MPEG2_TS 33 |
|
#define | PAYLOAD_FEC_PKT 96 |
|
#define | RTCP_PT_SENDER_REPORT 200 |
|
#define | RTCP_PT_RECEIVER_REPORT 201 |
|
#define | RTCP_PT_SOURCE_DESCRIPTION 202 |
|
#define | RTCP_PT_GOODBYE 203 |
|
#define | READ_U32BIT(x) (U32BIT)(((x)[0] << 24) + ((x)[1] << 16) + ((x)[2] << 8) + ((x)[3])); x += 4 |
|
#define | FEC_LAYER_NONE 0 |
|
#define | FEC_LAYER_BASE_1D 1 |
|
#define | FEC_LAYER_BASE_2D 2 |
|
#define | TIMESTAMP_TICS_PER_MSEC 90 |
|
#define | QDBG(x) |
|
#define | QERR(x) |
|
|
void * | RTPCreateSequencingArray (U32BIT fec_layer) |
| Creates sequencing array for holding RTP packets as they arrive from the network. The sequence number for each RTP packet is used to find the position for the packet in this sequence queue. Therefore, RTP packets in this queue will be in the order that they were sent from the server. FEC processing will be used while the RTP packets remain in this queue. More...
|
|
void | RTPDestroySequencingArray (void *handle) |
| Destroy sequencing array created by RTPCreateSequencingArray, freeing all RTP packets still in the queue. More...
|
|
void * | RTPCreatePlayoutQueue (U32BIT low_threshold, U32BIT high_threshold) |
| Creates a queue for holding RTP packets. The queue has low and high thresholds and no packets can be removed from it initially until the time period is greater than or equal to the high threshold. If the queue time difference drops below the low threshold then removing packets from the queue will be paused until the level has returned to the high threshold value again. More...
|
|
void | RTPDeletePlayoutQueue (void *queue_handle) |
| Deletes a queue created by RTPCreatePlayoutQueue, freeing all RTP packets still on the queue. More...
|
|
void | RTPConnectSeqArrayToPlayoutQueue (void *seq_array_hdl, void *queue_hdl) |
| Connect sequencing array to a playout queue created by RTPCreatePlayoutQueue This will allow sequencing array to add to the playout queue. More...
|
|
void * | RTPAllocateMedia (U8BIT **buffer, U16BIT data_size) |
| Allocates an RTP packet structure including the buffer for the RTP packet. More...
|
|
void * | RTPAllocateFEC (U8BIT **buffer, U16BIT buff_size) |
| Allocates an FEC packet including the buffer for the RTP packet. More...
|
|
void | RTPFreePkt (void *handle) |
| Free an RTP packet allocated with RTPAllocateMedia or RTPAllocateFEC. More...
|
|
void | RTPParseCntl (void *seq_array_hdl, U8BIT *buffer, U16BIT nbytes) |
| Parse RTCP packet - Sender Report, Source Description or Goodbye packet. More...
|
|
BOOLEAN | RTPInsertMedia (void *seq_array_hdl, void *rtp_packet_hdl, U16BIT buffer_bytes) |
| Inserts the RTP data packet to the sequencing array as long as the packet has matching SSRC. The packet is inserted in the array in position according bottom 11 bits of sequence number. More...
|
|
BOOLEAN | RTPInsertFec (void *seq_array_hdl, void *fec_packet_hdl, U16BIT buffer_len, BOOLEAN second_stream) |
| Inserts the RTP packet to the sequencing array as long as the packet has matching SSRC. The packet is inserted in the array in position according bottom 11 bits of sequence number. More...
|
|
void * | RTPRemoveQueueItem (void *queue_handle, S_ITEM_INFO *info) |
| Removes next queue item, but the item isn't freed. The queue item is returned with info for buffer pointer, buffer size, timestamp and received clock time This function blocks until the minimum amount of data is present in the queue's buffer. More...
|
|
void | RTPUnpauseQueue (void *queue_handle) |
| Unpauses the queue even if the number of time difference is less than the low threshold. Note that if a call is made to RTPRemoveQueueItem after this function is called and the time difference is less than the low threshold then the queue will be paused again. More...
|
|
DVB-IPTV RTP queue manager.
- Date
- July 2020
void* RTPCreatePlayoutQueue |
( |
U32BIT |
low_threshold, |
|
|
U32BIT |
high_threshold |
|
) |
| |
Creates a queue for holding RTP packets. The queue has low and high thresholds and no packets can be removed from it initially until the time period is greater than or equal to the high threshold. If the queue time difference drops below the low threshold then removing packets from the queue will be paused until the level has returned to the high threshold value again.
Creates a queue for holding RTP packets. The queue has low and high thresholds and no packets can be removed from it initially until the time period is greater than or equal to the high threshold. If the queue time difference drops below the low threshold then removing packets from the queue will be paused until the level has returned to the high threshold value again. If the number of buffered bytes goes above the max buffer size, then the packet won't be added. If max_size is 0 then the queue size isn't limited and RTP packets will always be added.
- Parameters
-
low_threshold | Threshold value that pauses removing items from the queue. |
high_threshold | Threshold value that will cause the queue to be unpaused. |
- Returns
- Queue handle, or NULL if queue can't be created
void* RTPCreateSequencingArray |
( |
U32BIT |
fec_layer | ) |
|
Creates sequencing array for holding RTP packets as they arrive from the network. The sequence number for each RTP packet is used to find the position for the packet in this sequence queue. Therefore, RTP packets in this queue will be in the order that they were sent from the server. FEC processing will be used while the RTP packets remain in this queue.
Creates a sequence queue for holding RTP packets as they arrive from the network. The sequence number for each RTP packet is used to find the position for the packet in this sequence queue. Therefore, RTP packets in this queue will be in the order that they were sent from the server. FEC processing will be used while the RTP packets remain in this queue.
- Returns
- Queue handle, or NULL if queue can't be created