FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
mp3dec.c File Reference
#include "libavutil/opt.h"
#include "libavutil/avstring.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "libavutil/mathematics.h"
#include "avformat.h"
#include "internal.h"
#include "id3v2.h"
#include "id3v1.h"
#include "libavcodec/mpegaudiodecheader.h"

Go to the source code of this file.

Data Structures

struct  MP3DecContext
 

Macros

#define XING_FLAG_FRAMES   0x01
 
#define XING_FLAG_SIZE   0x02
 
#define XING_FLAG_TOC   0x04
 
#define XING_TOC_COUNT   100
 
#define MP3_PACKET_SIZE   1024
 
#define MIN_VALID   3
 

Functions

static int mp3_read_probe (AVProbeData *p)
 
static void read_xing_toc (AVFormatContext *s, int64_t filesize, int64_t duration)
 
static int mp3_parse_vbr_tags (AVFormatContext *s, AVStream *st, int64_t base)
 Try to find Xing/Info/VBRI tags and compute duration from info therein.
 
static int mp3_read_header (AVFormatContext *s)
 
static int mp3_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int check (AVFormatContext *s, int64_t pos)
 
static int mp3_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 

Variables

static const AVOption options []
 
static const AVClass demuxer_class
 
AVInputFormat ff_mp3_demuxer
 

Macro Definition Documentation

#define XING_FLAG_FRAMES   0x01

Definition at line 33 of file mp3dec.c.

Referenced by mp3_parse_vbr_tags().

#define XING_FLAG_SIZE   0x02

Definition at line 34 of file mp3dec.c.

Referenced by mp3_parse_vbr_tags().

#define XING_FLAG_TOC   0x04

Definition at line 35 of file mp3dec.c.

Referenced by mp3_parse_vbr_tags().

#define XING_TOC_COUNT   100

Definition at line 37 of file mp3dec.c.

Referenced by read_xing_toc().

#define MP3_PACKET_SIZE   1024

Definition at line 241 of file mp3dec.c.

Referenced by mp3_read_packet().

#define MIN_VALID   3

Referenced by mp3_seek().

Function Documentation

static int mp3_read_probe ( AVProbeData p)
static

Definition at line 52 of file mp3dec.c.

static void read_xing_toc ( AVFormatContext s,
int64_t  filesize,
int64_t  duration 
)
static

Definition at line 96 of file mp3dec.c.

Referenced by mp3_parse_vbr_tags().

static int mp3_parse_vbr_tags ( AVFormatContext s,
AVStream st,
int64_t  base 
)
static

Try to find Xing/Info/VBRI tags and compute duration from info therein.

Definition at line 123 of file mp3dec.c.

Referenced by mp3_read_header().

static int mp3_read_header ( AVFormatContext s)
static

Definition at line 207 of file mp3dec.c.

static int mp3_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 243 of file mp3dec.c.

static int check ( AVFormatContext s,
int64_t  pos 
)
static

Definition at line 274 of file mp3dec.c.

Referenced by mp3_seek().

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

Definition at line 289 of file mp3dec.c.

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "usetoc", "use table of contents", 0x42, AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, AV_OPT_FLAG_DECODING_PARAM},
{ NULL },
}

Definition at line 350 of file mp3dec.c.

const AVClass demuxer_class
static
Initial value:
= {
.class_name = "mp3",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 355 of file mp3dec.c.

AVInputFormat ff_mp3_demuxer
Initial value:
= {
.name = "mp3",
.long_name = NULL_IF_CONFIG_SMALL("MP2/3 (MPEG audio layer 2/3)"),
.read_probe = mp3_read_probe,
.read_header = mp3_read_header,
.read_packet = mp3_read_packet,
.read_seek = mp3_seek,
.priv_data_size = sizeof(MP3DecContext),
.extensions = "mp2,mp3,m2a,mpa",
.priv_class = &demuxer_class,
}

Definition at line 363 of file mp3dec.c.