FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
opus_rc.h File Reference
#include <stdint.h>
#include "get_bits.h"

Go to the source code of this file.

Data Structures

struct  RawBitsContext
 
struct  OpusRangeCoder
 

Macros

#define OPUS_MAX_PACKET_SIZE   1275
 
#define opus_ilog(i)   (av_log2(i) + !!(i))
 

Functions

static av_always_inline uint32_t opus_rc_tell (const OpusRangeCoder *rc)
 CELT: estimate bits of entropy that have thus far been consumed for the current CELT frame, to integer and fractional (1/8th bit) precision. More...
 
static av_always_inline uint32_t opus_rc_tell_frac (const OpusRangeCoder *rc)
 
uint32_t ff_opus_rc_dec_cdf (OpusRangeCoder *rc, const uint16_t *cdf)
 
void ff_opus_rc_enc_cdf (OpusRangeCoder *rc, int val, const uint16_t *cdf)
 
uint32_t ff_opus_rc_dec_log (OpusRangeCoder *rc, uint32_t bits)
 
void ff_opus_rc_enc_log (OpusRangeCoder *rc, int val, uint32_t bits)
 
uint32_t ff_opus_rc_dec_uint_step (OpusRangeCoder *rc, int k0)
 
void ff_opus_rc_enc_uint_step (OpusRangeCoder *rc, uint32_t val, int k0)
 
uint32_t ff_opus_rc_dec_uint_tri (OpusRangeCoder *rc, int qn)
 
void ff_opus_rc_enc_uint_tri (OpusRangeCoder *rc, uint32_t k, int qn)
 
uint32_t ff_opus_rc_dec_uint (OpusRangeCoder *rc, uint32_t size)
 CELT: read a uniform distribution. More...
 
void ff_opus_rc_enc_uint (OpusRangeCoder *rc, uint32_t val, uint32_t size)
 CELT: write a uniformly distributed integer. More...
 
uint32_t ff_opus_rc_get_raw (OpusRangeCoder *rc, uint32_t count)
 CELT: read 1-25 raw bits at the end of the frame, backwards byte-wise. More...
 
void ff_opus_rc_put_raw (OpusRangeCoder *rc, uint32_t val, uint32_t count)
 CELT: write 0 - 31 bits to the rawbits buffer. More...
 
int ff_opus_rc_dec_laplace (OpusRangeCoder *rc, uint32_t symbol, int decay)
 
void ff_opus_rc_enc_laplace (OpusRangeCoder *rc, int *value, uint32_t symbol, int decay)
 
int ff_opus_rc_dec_init (OpusRangeCoder *rc, const uint8_t *data, int size)
 
void ff_opus_rc_dec_raw_init (OpusRangeCoder *rc, const uint8_t *rightend, uint32_t bytes)
 
void ff_opus_rc_enc_end (OpusRangeCoder *rc, uint8_t *dst, int size)
 
void ff_opus_rc_enc_init (OpusRangeCoder *rc)
 

Macro Definition Documentation

#define OPUS_MAX_PACKET_SIZE   1275

Definition at line 29 of file opus_rc.h.

Referenced by ff_opus_rc_enc_end(), and ff_opus_rc_enc_init().

#define opus_ilog (   i)    (av_log2(i) + !!(i))

Function Documentation

static av_always_inline uint32_t opus_rc_tell ( const OpusRangeCoder rc)
static

CELT: estimate bits of entropy that have thus far been consumed for the current CELT frame, to integer and fractional (1/8th bit) precision.

Definition at line 61 of file opus_rc.h.

Referenced by celt_bitalloc(), celt_decode_allocation(), celt_decode_coarse_energy(), celt_decode_final_energy(), celt_decode_tf_changes(), celt_enc_tf(), celt_encode_frame(), celt_quant_coarse(), celt_quant_final(), ff_celt_decode_frame(), opus_decode_frame(), and parse_postfilter().

static av_always_inline uint32_t opus_rc_tell_frac ( const OpusRangeCoder rc)
static
uint32_t ff_opus_rc_dec_cdf ( OpusRangeCoder rc,
const uint16_t *  cdf 
)
void ff_opus_rc_enc_cdf ( OpusRangeCoder rc,
int  val,
const uint16_t *  cdf 
)

Definition at line 109 of file opus_rc.c.

Referenced by celt_bitalloc(), and celt_quant_coarse().

uint32_t ff_opus_rc_dec_log ( OpusRangeCoder rc,
uint32_t  bits 
)
void ff_opus_rc_enc_log ( OpusRangeCoder rc,
int  val,
uint32_t  bits 
)
uint32_t ff_opus_rc_dec_uint_step ( OpusRangeCoder rc,
int  k0 
)

Definition at line 211 of file opus_rc.c.

Referenced by ff_celt_decode_band().

void ff_opus_rc_enc_uint_step ( OpusRangeCoder rc,
uint32_t  val,
int  k0 
)

Definition at line 226 of file opus_rc.c.

Referenced by ff_celt_encode_band().

uint32_t ff_opus_rc_dec_uint_tri ( OpusRangeCoder rc,
int  qn 
)

Definition at line 234 of file opus_rc.c.

Referenced by ff_celt_decode_band().

void ff_opus_rc_enc_uint_tri ( OpusRangeCoder rc,
uint32_t  k,
int  qn 
)

Definition at line 258 of file opus_rc.c.

Referenced by ff_celt_encode_band().

uint32_t ff_opus_rc_dec_uint ( OpusRangeCoder rc,
uint32_t  size 
)

CELT: read a uniform distribution.

Definition at line 182 of file opus_rc.c.

Referenced by celt_decode_allocation(), celt_decode_pulses(), ff_celt_decode_band(), opus_decode_frame(), and parse_postfilter().

void ff_opus_rc_enc_uint ( OpusRangeCoder rc,
uint32_t  val,
uint32_t  size 
)

CELT: write a uniformly distributed integer.

Definition at line 204 of file opus_rc.c.

Referenced by celt_bitalloc(), celt_encode_pulses(), and ff_celt_encode_band().

uint32_t ff_opus_rc_get_raw ( OpusRangeCoder rc,
uint32_t  count 
)

CELT: read 1-25 raw bits at the end of the frame, backwards byte-wise.

Definition at line 140 of file opus_rc.c.

Referenced by celt_decode_final_energy(), celt_decode_fine_energy(), ff_celt_decode_band(), ff_celt_decode_frame(), ff_opus_rc_dec_uint(), and parse_postfilter().

void ff_opus_rc_put_raw ( OpusRangeCoder rc,
uint32_t  val,
uint32_t  count 
)

CELT: write 0 - 31 bits to the rawbits buffer.

Definition at line 161 of file opus_rc.c.

Referenced by celt_encode_frame(), celt_quant_final(), celt_quant_fine(), ff_celt_encode_band(), ff_opus_rc_enc_end(), and ff_opus_rc_enc_uint().

int ff_opus_rc_dec_laplace ( OpusRangeCoder rc,
uint32_t  symbol,
int  decay 
)

Definition at line 275 of file opus_rc.c.

Referenced by celt_decode_coarse_energy().

void ff_opus_rc_enc_laplace ( OpusRangeCoder rc,
int value,
uint32_t  symbol,
int  decay 
)

Definition at line 314 of file opus_rc.c.

Referenced by celt_quant_coarse().

int ff_opus_rc_dec_init ( OpusRangeCoder rc,
const uint8_t data,
int  size 
)

Definition at line 338 of file opus_rc.c.

Referenced by opus_decode_frame(), and opus_decode_redundancy().

void ff_opus_rc_dec_raw_init ( OpusRangeCoder rc,
const uint8_t rightend,
uint32_t  bytes 
)

Definition at line 352 of file opus_rc.c.

Referenced by ff_opus_rc_enc_init(), opus_decode_frame(), and opus_decode_redundancy().

void ff_opus_rc_enc_end ( OpusRangeCoder rc,
uint8_t dst,
int  size 
)

Definition at line 360 of file opus_rc.c.

Referenced by opus_packet_assembler().

void ff_opus_rc_enc_init ( OpusRangeCoder rc)

Definition at line 399 of file opus_rc.c.

Referenced by opus_encode_frame().