|
JitterBuffer * | jitter_buffer_init (int step_size) |
|
void | jitter_buffer_reset (JitterBuffer *jitter) |
|
void | jitter_buffer_destroy (JitterBuffer *jitter) |
|
void | jitter_buffer_put (JitterBuffer *jitter, const JitterBufferPacket *packet) |
|
int | jitter_buffer_get (JitterBuffer *jitter, JitterBufferPacket *packet, spx_int32_t desired_span, spx_int32_t *start_offset) |
|
int | jitter_buffer_get_another (JitterBuffer *jitter, JitterBufferPacket *packet) |
|
int | jitter_buffer_get_pointer_timestamp (JitterBuffer *jitter) |
|
void | jitter_buffer_tick (JitterBuffer *jitter) |
|
void | jitter_buffer_remaining_span (JitterBuffer *jitter, spx_uint32_t rem) |
|
int | jitter_buffer_ctl (JitterBuffer *jitter, int request, void *ptr) |
|
int | jitter_buffer_update_delay (JitterBuffer *jitter, JitterBufferPacket *packet, spx_int32_t *start_offset) |
|
This is the jitter buffer that reorders UDP/RTP packets and adjusts the buffer size to maintain good quality and low latency.
#define JITTER_BUFFER_BAD_ARGUMENT -2 |
#define JITTER_BUFFER_GET_AVAILABLE_COUNT 3 |
Get the amount of available packets currently buffered
#define JITTER_BUFFER_GET_AVALIABLE_COUNT 3 |
Included because of an early misspelling (will remove in next release)
#define JITTER_BUFFER_GET_MARGIN 1 |
Get minimum amount of extra buffering required (margin)
#define JITTER_BUFFER_INSERTION 2 |
A "fake" packet is meant to be inserted here to increase buffering
#define JITTER_BUFFER_INTERNAL_ERROR -1 |
There was an error in the jitter buffer
#define JITTER_BUFFER_MISSING 1 |
Packet is lost or is late
#define JITTER_BUFFER_OK 0 |
Packet has been retrieved
#define JITTER_BUFFER_SET_CONCEALMENT_SIZE 8 |
Tell the jitter buffer to only do concealment in multiples of the size parameter provided
#define JITTER_BUFFER_SET_DELAY_STEP 6 |
Tell the jitter buffer to only adjust the delay in multiples of the step parameter provided
#define JITTER_BUFFER_SET_DESTROY_CALLBACK 4 |
Assign a function to destroy unused packet. When setting that, the jitter buffer no longer copies packet data.
#define JITTER_BUFFER_SET_LATE_COST 12 |
Equivalent cost of one percent late packet in timestamp units
#define JITTER_BUFFER_SET_MARGIN 0 |
Set minimum amount of extra buffering required (margin)
#define JITTER_BUFFER_SET_MAX_LATE_RATE 10 |
Absolute max amount of loss that can be tolerated regardless of the delay. Typical loss should be half of that or less.
Generic adaptive jitter buffer state
Definition of an incoming packet
int jitter_buffer_ctl |
( |
JitterBuffer * |
jitter, |
|
|
int |
request, |
|
|
void * |
ptr |
|
) |
| |
Used like the ioctl function to control the jitter buffer parameters
- Parameters
-
jitter | Jitter buffer state |
request | ioctl-type request (one of the JITTER_BUFFER_* macros) |
ptr | Data exchanged to-from function |
- Returns
- 0 if no error, -1 if request in unknown
Destroys jitter buffer
- Parameters
-
jitter | Jitter buffer state |
Get one packet from the jitter buffer
- Parameters
-
jitter | Jitter buffer state |
packet | Returned packet |
desired_span | Number of samples (or units) we wish to get from the buffer (no guarantee) |
current_timestamp | Timestamp for the returned packet |
Used right after jitter_buffer_get() to obtain another packet that would have the same timestamp. This is mainly useful for media where a single "frame" can be split into several packets.
- Parameters
-
jitter | Jitter buffer state |
packet | Returned packet |
int jitter_buffer_get_pointer_timestamp |
( |
JitterBuffer * |
jitter | ) |
|
Get pointer timestamp of jitter buffer
- Parameters
-
jitter | Jitter buffer state |
Initialises jitter buffer
- Parameters
-
step_size | Starting value for the size of concleanment packets and delay adjustment steps. Can be changed at any time using JITTER_BUFFER_SET_DELAY_STEP and JITTER_BUFFER_GET_CONCEALMENT_SIZE. |
- Returns
- Newly created jitter buffer state
Put one packet into the jitter buffer
- Parameters
-
jitter | Jitter buffer state |
packet | Incoming packet |
void jitter_buffer_remaining_span |
( |
JitterBuffer * |
jitter, |
|
|
spx_uint32_t |
rem |
|
) |
| |
Telling the jitter buffer about the remaining data in the application buffer
- Parameters
-
jitter | Jitter buffer state |
rem | Amount of data buffered by the application (timestamp units) |
Restores jitter buffer to its original state
- Parameters
-
jitter | Jitter buffer state |
Advance by one tick
- Parameters
-
jitter | Jitter buffer state |