FFmpeg
Functions | Variables
opus_parse.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/channel_layout.h"
#include "libavutil/error.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "internal.h"
#include "mathops.h"
#include "opus.h"
#include "opus_parse.h"
#include "vorbis_data.h"

Go to the source code of this file.

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, OpusParseContext *s)
 

Variables

static const uint16_t opus_frame_duration [32]
 

Detailed Description

Opus decoder/parser shared code

Definition in file opus_parse.c.

Function Documentation

◆ xiph_lacing_16bit()

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 56 of file opus_parse.c.

Referenced by ff_opus_parse_packet().

◆ xiph_lacing_full()

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 74 of file opus_parse.c.

Referenced by ff_opus_parse_packet().

◆ 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 95 of file opus_parse.c.

Referenced by opus_decode_packet(), and opus_find_frame_end().

◆ channel_reorder_vorbis()

static int channel_reorder_vorbis ( int  nb_channels,
int  channel_idx 
)
static

Definition at line 286 of file opus_parse.c.

Referenced by ff_opus_parse_extradata().

◆ channel_reorder_unknown()

static int channel_reorder_unknown ( int  nb_channels,
int  channel_idx 
)
static

Definition at line 291 of file opus_parse.c.

Referenced by ff_opus_parse_extradata().

◆ ff_opus_parse_extradata()

av_cold int ff_opus_parse_extradata ( AVCodecContext avctx,
OpusParseContext s 
)

Definition at line 296 of file opus_parse.c.

Referenced by opus_decode_init(), and opus_find_frame_end().

Variable Documentation

◆ opus_frame_duration

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 41 of file opus_parse.c.

Referenced by ff_opus_parse_packet().