FFmpeg
Data Structures | Functions | Variables
oggparsevorbis.c File Reference
#include <stdlib.h>
#include "libavutil/avstring.h"
#include "libavutil/base64.h"
#include "libavutil/bswap.h"
#include "libavutil/dict.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/vorbis_parser.h"
#include "avformat.h"
#include "flac_picture.h"
#include "internal.h"
#include "oggdec.h"
#include "vorbiscomment.h"
#include "replaygain.h"

Go to the source code of this file.

Data Structures

struct  oggvorbis_private
 

Functions

static int ogm_chapter (AVFormatContext *as, const uint8_t *key, const uint8_t *val)
 
int ff_vorbis_stream_comment (AVFormatContext *as, AVStream *st, const uint8_t *buf, int size)
 Parse Vorbis comments and add metadata to an AVStream. More...
 
static int vorbis_parse_single_comment (AVFormatContext *as, AVDictionary **m, const uint8_t *buf, uint32_t size, int *updates, int parse_picture)
 This function temporarily modifies the (const qualified) input buffer and reverts its changes before return. More...
 
int ff_vorbis_comment (AVFormatContext *as, AVDictionary **m, const uint8_t *buf, int size, int parse_picture)
 Parse Vorbis comments. More...
 
static int fixup_vorbis_headers (AVFormatContext *as, struct oggvorbis_private *priv, uint8_t **buf)
 
static void vorbis_cleanup (AVFormatContext *s, int idx)
 
static int vorbis_update_metadata (AVFormatContext *s, int idx)
 
static int vorbis_header (AVFormatContext *s, int idx)
 
static int vorbis_packet (AVFormatContext *s, int idx)
 

Variables

const struct ogg_codec ff_vorbis_codec
 

Function Documentation

◆ ogm_chapter()

static int ogm_chapter ( AVFormatContext as,
const uint8_t *  key,
const uint8_t *  val 
)
static

Definition at line 42 of file oggparsevorbis.c.

Referenced by vorbis_parse_single_comment().

◆ ff_vorbis_stream_comment()

int ff_vorbis_stream_comment ( AVFormatContext as,
AVStream st,
const uint8_t *  buf,
int  size 
)

Parse Vorbis comments and add metadata to an AVStream.

Note
The buffer will be temporarily modifed by this function, so it needs to be writable. Furthermore it must be padded by a single byte (not counted in size). All changes will have been reverted upon return.

Definition at line 73 of file oggparsevorbis.c.

Referenced by celt_header(), flac_header(), ogm_header(), opus_header(), speex_header(), theora_header(), vorbis_update_metadata(), and vp8_header().

◆ vorbis_parse_single_comment()

static int vorbis_parse_single_comment ( AVFormatContext as,
AVDictionary **  m,
const uint8_t *  buf,
uint32_t  size,
int updates,
int  parse_picture 
)
static

This function temporarily modifies the (const qualified) input buffer and reverts its changes before return.

The input buffer needs to have at least one byte of padding.

Definition at line 90 of file oggparsevorbis.c.

Referenced by ff_vorbis_comment().

◆ ff_vorbis_comment()

int ff_vorbis_comment ( AVFormatContext ms,
AVDictionary **  m,
const uint8_t *  buf,
int  size,
int  parse_picture 
)

Parse Vorbis comments.

Note
The buffer will be temporarily modifed by this function, so it needs to be writable. Furthermore it must be padded by a single byte (not counted in size). All changes will have been reverted upon return.

Definition at line 148 of file oggparsevorbis.c.

Referenced by ff_vorbis_stream_comment(), and flac_read_header().

◆ fixup_vorbis_headers()

static int fixup_vorbis_headers ( AVFormatContext as,
struct oggvorbis_private priv,
uint8_t **  buf 
)
static

Definition at line 219 of file oggparsevorbis.c.

Referenced by vorbis_header().

◆ vorbis_cleanup()

static void vorbis_cleanup ( AVFormatContext s,
int  idx 
)
static

Definition at line 252 of file oggparsevorbis.c.

◆ vorbis_update_metadata()

static int vorbis_update_metadata ( AVFormatContext s,
int  idx 
)
static

Definition at line 265 of file oggparsevorbis.c.

Referenced by vorbis_header(), and vorbis_packet().

◆ vorbis_header()

static int vorbis_header ( AVFormatContext s,
int  idx 
)
static

Definition at line 295 of file oggparsevorbis.c.

◆ vorbis_packet()

static int vorbis_packet ( AVFormatContext s,
int  idx 
)
static

Definition at line 409 of file oggparsevorbis.c.

Variable Documentation

◆ ff_vorbis_codec

const struct ogg_codec ff_vorbis_codec
Initial value:
= {
.magic = "\001vorbis",
.magicsize = 7,
.header = vorbis_header,
.packet = vorbis_packet,
.cleanup = vorbis_cleanup,
.nb_header = 3,
}

Definition at line 505 of file oggparsevorbis.c.

vorbis_cleanup
static void vorbis_cleanup(AVFormatContext *s, int idx)
Definition: oggparsevorbis.c:252
vorbis_header
static int vorbis_header(AVFormatContext *s, int idx)
Definition: oggparsevorbis.c:295
vorbis_packet
static int vorbis_packet(AVFormatContext *s, int idx)
Definition: oggparsevorbis.c:409