FFmpeg
Loading...
Searching...
No Matches
celt.h File Reference
#include <stdint.h>
#include "libavcodec/avcodec.h"
#include "dsp.h"
#include "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 39 of file celt.h.

Referenced by ff_celt_decode_frame(), and flush_silent_frames().

◆ CELT_OVERLAP

◆ CELT_MAX_LOG_BLOCKS

#define CELT_MAX_LOG_BLOCKS   3

Definition at line 41 of file celt.h.

Referenced by ff_celt_decode_frame().

◆ CELT_MAX_FRAME_SIZE

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

Definition at line 42 of file celt.h.

◆ CELT_MAX_BANDS

◆ CELT_VECTORS

#define CELT_VECTORS   11

Definition at line 45 of file celt.h.

Referenced by ff_celt_bitalloc().

◆ CELT_ALLOC_STEPS

#define CELT_ALLOC_STEPS   6

Definition at line 46 of file celt.h.

Referenced by ff_celt_bitalloc().

◆ CELT_FINE_OFFSET

#define CELT_FINE_OFFSET   21

Definition at line 47 of file celt.h.

◆ CELT_MAX_FINE_BITS

#define CELT_MAX_FINE_BITS   8

Definition at line 48 of file celt.h.

Referenced by celt_decode_final_energy(), and celt_quant_final().

◆ CELT_NORM_SCALE

#define CELT_NORM_SCALE   16384

Definition at line 49 of file celt.h.

◆ CELT_QTHETA_OFFSET

#define CELT_QTHETA_OFFSET   4

Definition at line 50 of file celt.h.

Referenced by quant_band_template().

◆ CELT_QTHETA_OFFSET_TWOPHASE

#define CELT_QTHETA_OFFSET_TWOPHASE   16

Definition at line 51 of file celt.h.

Referenced by quant_band_template().

◆ CELT_POSTFILTER_MINPERIOD

#define CELT_POSTFILTER_MINPERIOD   15

Definition at line 52 of file celt.h.

Referenced by celt_enc_quant_pfilter(), and parse_postfilter().

◆ CELT_ENERGY_SILENCE

#define CELT_ENERGY_SILENCE   (-28.0f)

Definition at line 53 of file celt.h.

Referenced by celt_frame_mdct(), ff_celt_decode_frame(), and ff_celt_flush().

Enumeration Type Documentation

◆ CeltSpread

enum CeltSpread
Enumerator
CELT_SPREAD_NONE 
CELT_SPREAD_LIGHT 
CELT_SPREAD_NORMAL 
CELT_SPREAD_AGGRESSIVE 

Definition at line 55 of file celt.h.

◆ CeltBlockSize

Enumerator
CELT_BLOCK_120 
CELT_BLOCK_240 
CELT_BLOCK_480 
CELT_BLOCK_960 
CELT_BLOCK_NB 

Definition at line 62 of file celt.h.

Function Documentation

◆ celt_rng()

static av_always_inline uint32_t celt_rng ( CeltFrame * f)
static

Definition at line 150 of file 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 156 of file 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 547 of file dec_celt.c.

Referenced by opus_decode_init().

◆ ff_celt_free()

void ff_celt_free ( CeltFrame ** f)

Definition at line 530 of file dec_celt.c.

Referenced by ff_celt_init(), and opus_decode_close().

◆ ff_celt_flush()

void ff_celt_flush ( CeltFrame * f)

Definition at line 499 of file dec_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 323 of file dec_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 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 celt.c.

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