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

Vorbis audio parser. More...

#include "libavutil/log.h"
#include "get_bits.h"
#include "parser.h"
#include "xiph.h"
#include "vorbis_parser_internal.h"

Go to the source code of this file.

Functions

static int parse_id_header (AVVorbisParseContext *s, const uint8_t *buf, int buf_size)
 
static int parse_setup_header (AVVorbisParseContext *s, const uint8_t *buf, int buf_size)
 
static int vorbis_parse_init (AVVorbisParseContext *s, const uint8_t *extradata, int extradata_size)
 
int av_vorbis_parse_frame_flags (AVVorbisParseContext *s, const uint8_t *buf, int buf_size, int *flags)
 Get the duration for a Vorbis packet.
 
int av_vorbis_parse_frame (AVVorbisParseContext *s, const uint8_t *buf, int buf_size)
 Get the duration for a Vorbis packet.
 
void av_vorbis_parse_reset (AVVorbisParseContext *s)
 
void av_vorbis_parse_free (AVVorbisParseContext **s)
 Free the parser and everything associated with it.
 
AVVorbisParseContextav_vorbis_parse_init (const uint8_t *extradata, int extradata_size)
 Allocate and initialize the Vorbis parser using headers in the extradata.
 
int avpriv_vorbis_parse_extradata (AVCodecContext *avctx, AVVorbisParseContext *s)
 Initialize the Vorbis parser using headers in the extradata.
 
void avpriv_vorbis_parse_reset (AVVorbisParseContext *s)
 
int avpriv_vorbis_parse_frame (AVVorbisParseContext *s, const uint8_t *buf, int buf_size)
 Get the duration for a Vorbis packet.
 
int avpriv_vorbis_parse_frame_flags (AVVorbisParseContext *s, const uint8_t *buf, int buf_size, int *flags)
 Get the duration for a Vorbis packet.
 

Variables

static const AVClass vorbis_parser_class
 

Detailed Description

Vorbis audio parser.

Determines the duration for each packet.

Definition in file vorbis_parser.c.

Function Documentation

static int parse_id_header ( AVVorbisParseContext s,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 41 of file vorbis_parser.c.

Referenced by vorbis_parse_init().

static int parse_setup_header ( AVVorbisParseContext s,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 73 of file vorbis_parser.c.

Referenced by vorbis_parse_init().

static int vorbis_parse_init ( AVVorbisParseContext s,
const uint8_t extradata,
int  extradata_size 
)
static

Definition at line 184 of file vorbis_parser.c.

Referenced by av_vorbis_parse_init(), and avpriv_vorbis_parse_extradata().

int av_vorbis_parse_frame_flags ( AVVorbisParseContext s,
const uint8_t buf,
int  buf_size,
int *  flags 
)

Get the duration for a Vorbis packet.

If flags is NULL, special frames are considered invalid.

Parameters
sVorbis parser context
bufbuffer containing a Vorbis frame
buf_sizesize of the buffer
flagsflags for special frames

Definition at line 213 of file vorbis_parser.c.

Referenced by av_vorbis_parse_frame(), avpriv_vorbis_parse_frame_flags(), and vorbis_packet().

int av_vorbis_parse_frame ( AVVorbisParseContext s,
const uint8_t buf,
int  buf_size 
)

Get the duration for a Vorbis packet.

Parameters
sVorbis parser context
bufbuffer containing a Vorbis frame
buf_sizesize of the buffer

Definition at line 264 of file vorbis_parser.c.

Referenced by avpriv_vorbis_parse_frame(), and libvorbis_encode_frame().

void av_vorbis_parse_reset ( AVVorbisParseContext s)

Definition at line 270 of file vorbis_parser.c.

Referenced by avpriv_vorbis_parse_reset(), and vorbis_packet().

void av_vorbis_parse_free ( AVVorbisParseContext **  s)

Free the parser and everything associated with it.

Definition at line 276 of file vorbis_parser.c.

Referenced by av_vorbis_parse_init(), libvorbis_encode_close(), and vorbis_cleanup().

AVVorbisParseContext* av_vorbis_parse_init ( const uint8_t extradata,
int  extradata_size 
)

Allocate and initialize the Vorbis parser using headers in the extradata.

Parameters
avctxcodec context
sVorbis parser context

Definition at line 281 of file vorbis_parser.c.

Referenced by libvorbis_encode_init(), and vorbis_header().

int avpriv_vorbis_parse_extradata ( AVCodecContext avctx,
AVVorbisParseContext s 
)

Initialize the Vorbis parser using headers in the extradata.

Parameters
avctxcodec context
sVorbis parser context

Definition at line 300 of file vorbis_parser.c.

void avpriv_vorbis_parse_reset ( AVVorbisParseContext s)

Definition at line 304 of file vorbis_parser.c.

int avpriv_vorbis_parse_frame ( AVVorbisParseContext s,
const uint8_t buf,
int  buf_size 
)

Get the duration for a Vorbis packet.

avpriv_vorbis_parse_extradata() must have been successfully called prior to this in order for a correct duration to be returned.

Parameters
sVorbis parser context
bufbuffer containing a Vorbis frame
buf_sizesize of the buffer

Definition at line 308 of file vorbis_parser.c.

int avpriv_vorbis_parse_frame_flags ( AVVorbisParseContext s,
const uint8_t buf,
int  buf_size,
int *  flags 
)

Get the duration for a Vorbis packet.

avpriv_vorbis_parse_extradata() must have been successfully called prior to this in order for a correct duration to be returned. If flags is NULL, special frames are considered invalid.

Parameters
sVorbis parser context
bufbuffer containing a Vorbis frame
buf_sizesize of the buffer
flagsflags for special frames

Definition at line 313 of file vorbis_parser.c.

Variable Documentation

const AVClass vorbis_parser_class
static
Initial value:
= {
.class_name = "Vorbis parser",
.item_name = av_default_item_name,
}

Definition at line 35 of file vorbis_parser.c.

Referenced by vorbis_parse_init().