FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
oggdec.c File Reference
#include <stdio.h>
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
#include "oggdec.h"
#include "avformat.h"
#include "internal.h"
#include "vorbiscomment.h"

Go to the source code of this file.

Macros

#define MAX_PAGE_SIZE   65307
 
#define DECODER_BUFFER_SIZE   MAX_PAGE_SIZE
 

Functions

static int64_t ogg_calc_pts (AVFormatContext *s, int idx, int64_t *dts)
 
static int ogg_new_stream (AVFormatContext *s, uint32_t serial)
 
static int ogg_save (AVFormatContext *s)
 
static int ogg_restore (AVFormatContext *s, int discard)
 
static int ogg_reset (AVFormatContext *s)
 
static struct ogg_codecogg_find_codec (uint8_t *buf, int size)
 
static int ogg_replace_stream (AVFormatContext *s, uint32_t serial, int nsegs)
 Replace the current stream with a new one.
 
static int ogg_new_buf (struct ogg *ogg, int idx)
 
static int data_packets_seen (const struct ogg *ogg)
 
static int ogg_read_page (AVFormatContext *s, int *sid)
 
static int ogg_packet (AVFormatContext *s, int *sid, int *dstart, int *dsize, int64_t *fpos)
 find the next Ogg packet
 
static int ogg_get_length (AVFormatContext *s)
 
static int ogg_read_close (AVFormatContext *s)
 
static int ogg_read_header (AVFormatContext *s)
 
static void ogg_validate_keyframe (AVFormatContext *s, int idx, int pstart, int psize)
 
static int ogg_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int64_t ogg_read_timestamp (AVFormatContext *s, int stream_index, int64_t *pos_arg, int64_t pos_limit)
 
static int ogg_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 
static int ogg_probe (AVProbeData *p)
 

Variables

static struct ogg_codec *const ogg_codecs []
 
AVInputFormat ff_ogg_demuxer
 

Macro Definition Documentation

#define MAX_PAGE_SIZE   65307

Definition at line 39 of file oggdec.c.

Referenced by ogg_get_length(), and ogg_read_page().

#define DECODER_BUFFER_SIZE   MAX_PAGE_SIZE

Definition at line 40 of file oggdec.c.

Referenced by ogg_new_stream().

Function Documentation

static int64_t ogg_calc_pts ( AVFormatContext s,
int  idx,
int64_t *  dts 
)
static

Definition at line 696 of file oggdec.c.

Referenced by ogg_get_length(), ogg_read_packet(), and ogg_read_timestamp().

static int ogg_new_stream ( AVFormatContext s,
uint32_t  serial 
)
static

Definition at line 231 of file oggdec.c.

Referenced by ogg_read_page(), and ogg_replace_stream().

static int ogg_save ( AVFormatContext s)
static

Definition at line 65 of file oggdec.c.

Referenced by ogg_get_length().

static int ogg_restore ( AVFormatContext s,
int  discard 
)
static

Definition at line 90 of file oggdec.c.

Referenced by ogg_get_length().

static int ogg_reset ( AVFormatContext s)
static

Definition at line 125 of file oggdec.c.

Referenced by ogg_get_length(), ogg_read_packet(), ogg_read_seek(), and ogg_read_timestamp().

static struct ogg_codec* ogg_find_codec ( uint8_t buf,
int  size 
)
staticread

Definition at line 159 of file oggdec.c.

Referenced by ogg_packet(), and ogg_replace_stream().

static int ogg_replace_stream ( AVFormatContext s,
uint32_t  serial,
int  nsegs 
)
static

Replace the current stream with a new one.

This is a typical webradio situation where a new audio stream spawn (identified with a new serial) and must replace the previous one (track switch).

Definition at line 176 of file oggdec.c.

Referenced by ogg_read_page().

static int ogg_new_buf ( struct ogg ogg,
int  idx 
)
static

Definition at line 273 of file oggdec.c.

Referenced by ogg_read_page().

static int data_packets_seen ( const struct ogg ogg)
static

Definition at line 291 of file oggdec.c.

Referenced by ogg_read_page().

static int ogg_read_page ( AVFormatContext s,
int *  sid 
)
static

Definition at line 301 of file oggdec.c.

Referenced by ogg_get_length(), and ogg_packet().

static int ogg_packet ( AVFormatContext s,
int *  sid,
int *  dstart,
int *  dsize,
int64_t *  fpos 
)
static

find the next Ogg packet

Parameters
*sidis set to the stream for the packet or -1 if there is no matching stream, in that case assume all other return values to be uninitialized.
Returns
negative value on error or EOF.

Definition at line 439 of file oggdec.c.

Referenced by encode_frame(), encode_init(), libvorbis_encode_frame(), libvorbis_encode_init(), ogg_get_length(), ogg_read_header(), ogg_read_packet(), ogg_read_timestamp(), and oggvorbis_decode_frame().

static int ogg_get_length ( AVFormatContext s)
static

Definition at line 574 of file oggdec.c.

Referenced by ogg_read_header().

static int ogg_read_close ( AVFormatContext s)
static

Definition at line 636 of file oggdec.c.

Referenced by ogg_read_header().

static int ogg_read_header ( AVFormatContext s)
static

Definition at line 654 of file oggdec.c.

static void ogg_validate_keyframe ( AVFormatContext s,
int  idx,
int  pstart,
int  psize 
)
static

Definition at line 726 of file oggdec.c.

Referenced by ogg_read_packet(), and ogg_read_timestamp().

static int ogg_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 747 of file oggdec.c.

static int64_t ogg_read_timestamp ( AVFormatContext s,
int  stream_index,
int64_t *  pos_arg,
int64_t  pos_limit 
)
static

Definition at line 817 of file oggdec.c.

static int ogg_read_seek ( AVFormatContext s,
int  stream_index,
int64_t  timestamp,
int  flags 
)
static

Definition at line 858 of file oggdec.c.

static int ogg_probe ( AVProbeData p)
static

Definition at line 883 of file oggdec.c.

Variable Documentation

struct ogg_codec* const ogg_codecs[]
static
AVInputFormat ff_ogg_demuxer
Initial value:
= {
.name = "ogg",
.long_name = NULL_IF_CONFIG_SMALL("Ogg"),
.priv_data_size = sizeof(struct ogg),
.read_header = ogg_read_header,
.read_packet = ogg_read_packet,
.read_close = ogg_read_close,
.read_seek = ogg_read_seek,
.read_timestamp = ogg_read_timestamp,
.extensions = "ogg",
}

Definition at line 890 of file oggdec.c.