FFmpeg
Data Structures | Macros | Enumerations | Functions
opus_celt.h File Reference
#include <stdint.h>
#include "avcodec.h"
#include "opusdsp.h"
#include "opus_rc.h"
#include "libavutil/float_dsp.h"
#include "libavutil/libm.h"
#include "libavutil/mem_internal.h"
#include "libavutil/tx.h"

Go to the source code of this file.

Data Structures

struct  CeltBlock
 
struct  CeltFrame
 

Macros

#define CELT_SHORT_BLOCKSIZE   120
 
#define CELT_OVERLAP   CELT_SHORT_BLOCKSIZE
 
#define CELT_MAX_LOG_BLOCKS   3
 
#define CELT_MAX_FRAME_SIZE   (CELT_SHORT_BLOCKSIZE * (1 << CELT_MAX_LOG_BLOCKS))
 
#define CELT_MAX_BANDS   21
 
#define CELT_VECTORS   11
 
#define CELT_ALLOC_STEPS   6
 
#define CELT_FINE_OFFSET   21
 
#define CELT_MAX_FINE_BITS   8
 
#define CELT_NORM_SCALE   16384
 
#define CELT_QTHETA_OFFSET   4
 
#define CELT_QTHETA_OFFSET_TWOPHASE   16
 
#define CELT_POSTFILTER_MINPERIOD   15
 
#define CELT_ENERGY_SILENCE   (-28.0f)
 

Enumerations

enum  CeltSpread { CELT_SPREAD_NONE, CELT_SPREAD_LIGHT, CELT_SPREAD_NORMAL, CELT_SPREAD_AGGRESSIVE }
 
enum  CeltBlockSize {
  CELT_BLOCK_120, CELT_BLOCK_240, CELT_BLOCK_480, CELT_BLOCK_960,
  CELT_BLOCK_NB
}
 

Functions

static av_always_inline uint32_t celt_rng (CeltFrame *f)
 
static av_always_inline void celt_renormalize_vector (float *X, int N, float gain)
 
int ff_celt_init (AVCodecContext *avctx, CeltFrame **f, int output_channels, int apply_phase_inv)
 
void ff_celt_free (CeltFrame **f)
 
void ff_celt_flush (CeltFrame *f)
 
int ff_celt_decode_frame (CeltFrame *f, OpusRangeCoder *rc, float **output, int coded_channels, int frame_size, int startband, int endband)
 
void ff_celt_quant_bands (CeltFrame *f, OpusRangeCoder *rc)
 
void ff_celt_bitalloc (CeltFrame *f, OpusRangeCoder *rc, int encode)
 

Macro Definition Documentation

◆ CELT_SHORT_BLOCKSIZE

#define CELT_SHORT_BLOCKSIZE   120

Definition at line 38 of file opus_celt.h.

◆ CELT_OVERLAP

#define CELT_OVERLAP   CELT_SHORT_BLOCKSIZE

Definition at line 39 of file opus_celt.h.

◆ CELT_MAX_LOG_BLOCKS

#define CELT_MAX_LOG_BLOCKS   3

Definition at line 40 of file opus_celt.h.

◆ CELT_MAX_FRAME_SIZE

#define CELT_MAX_FRAME_SIZE   (CELT_SHORT_BLOCKSIZE * (1 << CELT_MAX_LOG_BLOCKS))

Definition at line 41 of file opus_celt.h.

◆ CELT_MAX_BANDS

#define CELT_MAX_BANDS   21

Definition at line 42 of file opus_celt.h.

◆ CELT_VECTORS

#define CELT_VECTORS   11

Definition at line 44 of file opus_celt.h.

◆ CELT_ALLOC_STEPS

#define CELT_ALLOC_STEPS   6

Definition at line 45 of file opus_celt.h.

◆ CELT_FINE_OFFSET

#define CELT_FINE_OFFSET   21

Definition at line 46 of file opus_celt.h.

◆ CELT_MAX_FINE_BITS

#define CELT_MAX_FINE_BITS   8

Definition at line 47 of file opus_celt.h.

◆ CELT_NORM_SCALE

#define CELT_NORM_SCALE   16384

Definition at line 48 of file opus_celt.h.

◆ CELT_QTHETA_OFFSET

#define CELT_QTHETA_OFFSET   4

Definition at line 49 of file opus_celt.h.

◆ CELT_QTHETA_OFFSET_TWOPHASE

#define CELT_QTHETA_OFFSET_TWOPHASE   16

Definition at line 50 of file opus_celt.h.

◆ CELT_POSTFILTER_MINPERIOD

#define CELT_POSTFILTER_MINPERIOD   15

Definition at line 51 of file opus_celt.h.

◆ CELT_ENERGY_SILENCE

#define CELT_ENERGY_SILENCE   (-28.0f)

Definition at line 52 of file opus_celt.h.

Enumeration Type Documentation

◆ CeltSpread

enum CeltSpread
Enumerator
CELT_SPREAD_NONE 
CELT_SPREAD_LIGHT 
CELT_SPREAD_NORMAL 
CELT_SPREAD_AGGRESSIVE 

Definition at line 54 of file opus_celt.h.

◆ CeltBlockSize

Enumerator
CELT_BLOCK_120 
CELT_BLOCK_240 
CELT_BLOCK_480 
CELT_BLOCK_960 
CELT_BLOCK_NB 

Definition at line 61 of file opus_celt.h.

Function Documentation

◆ celt_rng()

static av_always_inline uint32_t celt_rng ( CeltFrame f)
static

Definition at line 149 of file opus_celt.h.

Referenced by process_anticollapse(), and quant_band_template().

◆ celt_renormalize_vector()

static av_always_inline void celt_renormalize_vector ( float X,
int  N,
float  gain 
)
static

Definition at line 155 of file opus_celt.h.

Referenced by process_anticollapse(), and quant_band_template().

◆ ff_celt_init()

int ff_celt_init ( AVCodecContext avctx,
CeltFrame **  f,
int  output_channels,
int  apply_phase_inv 
)

Definition at line 542 of file opusdec_celt.c.

Referenced by opus_decode_init().

◆ ff_celt_free()

void ff_celt_free ( CeltFrame **  f)

Definition at line 525 of file opusdec_celt.c.

Referenced by ff_celt_init(), and opus_decode_close().

◆ ff_celt_flush()

void ff_celt_flush ( CeltFrame f)

Definition at line 494 of file opusdec_celt.c.

Referenced by ff_celt_init(), opus_decode_flush(), and opus_decode_frame().

◆ ff_celt_decode_frame()

int ff_celt_decode_frame ( CeltFrame f,
OpusRangeCoder rc,
float **  output,
int  coded_channels,
int  frame_size,
int  startband,
int  endband 
)

Definition at line 322 of file opusdec_celt.c.

Referenced by opus_decode_frame(), and opus_decode_redundancy().

◆ ff_celt_quant_bands()

void ff_celt_quant_bands ( CeltFrame f,
OpusRangeCoder rc 
)

Definition at line 28 of file opus_celt.c.

Referenced by celt_encode_frame(), and ff_celt_decode_frame().

◆ ff_celt_bitalloc()

void ff_celt_bitalloc ( CeltFrame f,
OpusRangeCoder rc,
int  encode 
)

Definition at line 137 of file opus_celt.c.

Referenced by bands_dist(), celt_encode_frame(), and ff_celt_decode_frame().