FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
opus.c File Reference

Opus decoder/parser shared code. More...

#include <stdint.h>
#include "libavutil/error.h"
#include "libavutil/ffmath.h"
#include "opus_celt.h"
#include "opustab.h"
#include "vorbis.h"

Go to the source code of this file.

Macros

#define NORMC(bits)   ((bits) << (f->channels - 1) << f->size >> 2)
 

Functions

static int xiph_lacing_16bit (const uint8_t **ptr, const uint8_t *end)
 Read a 1- or 2-byte frame length. More...
 
static int xiph_lacing_full (const uint8_t **ptr, const uint8_t *end)
 Read a multi-byte length (used for code 3 packet padding size) More...
 
int ff_opus_parse_packet (OpusPacket *pkt, const uint8_t *buf, int buf_size, int self_delimiting)
 Parse Opus packet info from raw packet data. More...
 
static int channel_reorder_vorbis (int nb_channels, int channel_idx)
 
static int channel_reorder_unknown (int nb_channels, int channel_idx)
 
av_cold int ff_opus_parse_extradata (AVCodecContext *avctx, OpusContext *s)
 
void ff_celt_quant_bands (CeltFrame *f, OpusRangeCoder *rc)
 
void ff_celt_bitalloc (CeltFrame *f, OpusRangeCoder *rc, int encode)
 

Variables

static const uint16_t opus_frame_duration [32]
 

Detailed Description

Opus decoder/parser shared code.

Definition in file opus.c.

Macro Definition Documentation

#define NORMC (   bits)    ((bits) << (f->channels - 1) << f->size >> 2)

Definition at line 550 of file opus.c.

Referenced by ff_celt_bitalloc().

Function Documentation

static int xiph_lacing_16bit ( const uint8_t **  ptr,
const uint8_t end 
)
inlinestatic

Read a 1- or 2-byte frame length.

Definition at line 51 of file opus.c.

Referenced by ff_opus_parse_packet().

static int xiph_lacing_full ( const uint8_t **  ptr,
const uint8_t end 
)
inlinestatic

Read a multi-byte length (used for code 3 packet padding size)

Definition at line 69 of file opus.c.

Referenced by ff_opus_parse_packet().

int ff_opus_parse_packet ( OpusPacket pkt,
const uint8_t buf,
int  buf_size,
int  self_delimiting 
)

Parse Opus packet info from raw packet data.

Definition at line 90 of file opus.c.

Referenced by opus_decode_packet(), and opus_find_frame_end().

static int channel_reorder_vorbis ( int  nb_channels,
int  channel_idx 
)
static

Definition at line 281 of file opus.c.

Referenced by ff_opus_parse_extradata().

static int channel_reorder_unknown ( int  nb_channels,
int  channel_idx 
)
static

Definition at line 286 of file opus.c.

Referenced by ff_opus_parse_extradata().

av_cold int ff_opus_parse_extradata ( AVCodecContext avctx,
OpusContext s 
)

Definition at line 291 of file opus.c.

Referenced by opus_decode_init(), and opus_find_frame_end().

void ff_celt_quant_bands ( CeltFrame f,
OpusRangeCoder rc 
)

Definition at line 443 of file opus.c.

Referenced by celt_encode_frame(), and ff_celt_decode_frame().

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

Definition at line 552 of file opus.c.

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

Variable Documentation

const uint16_t opus_frame_duration[32]
static
Initial value:
= {
480, 960, 1920, 2880,
480, 960, 1920, 2880,
480, 960, 1920, 2880,
480, 960,
480, 960,
120, 240, 480, 960,
120, 240, 480, 960,
120, 240, 480, 960,
120, 240, 480, 960,
}

Definition at line 36 of file opus.c.

Referenced by ff_opus_parse_packet().