|
FFmpeg
|
#include <string.h>#include "libavutil/opt.h"#include "libavutil/intreadwrite.h"#include "libavutil/dict.h"#include "libavutil/mathematics.h"#include "avformat.h"#include "internal.h"#include "avio_internal.h"#include "demux.h"#include "id3v2.h"#include "id3v1.h"#include "replaygain.h"#include "libavcodec/codec_id.h"#include "libavcodec/mpegaudio.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_FLAC_QSCALE 0x08 |
| #define | XING_TOC_COUNT 100 |
| #define | LAST_BITS(k, n) |
| #define | MIDDLE_BITS(k, m, n) |
| #define | MP3_PACKET_SIZE 1024 |
| #define | SEEK_WINDOW 4096 |
| #define | MIN_VALID 3 |
Enumerations | |
| enum | CheckRet { CHECK_WRONG_HEADER = -1 , CHECK_SEEK_FAILED = -2 } |
Functions | |
| static int | check (AVIOContext *pb, int64_t pos, uint32_t *header) |
| static int | mp3_read_probe (const AVProbeData *p) |
| static void | read_xing_toc (AVFormatContext *s, int64_t filesize, int64_t duration) |
| static void | mp3_parse_info_tag (AVFormatContext *s, AVStream *st, MPADecodeHeader *c, uint32_t spf) |
| static void | mp3_parse_vbri_tag (AVFormatContext *s, AVStream *st, int64_t base) |
| static const AVDictionaryEntry * | find_itunes_smpb (const AVDictionary *metadata) |
| Look the iTunSMPB tag up under every key it can land on. | |
| static void | mp3_parse_itunes_smpb (AVFormatContext *s, AVStream *st, const MPADecodeHeader *c, uint32_t spf) |
| Parse the gapless playback information Apple encoders store in an iTunSMPB comment instead of in the LAME extension of the Xing tag. | |
| 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 int64_t | mp3_sync (AVFormatContext *s, int64_t target_pos, int flags) |
| static int | mp3_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags) |
Variables | |
| static const AVOption | options [] |
| static const AVClass | demuxer_class |
| const FFInputFormat | ff_mp3_demuxer |
| #define XING_FLAG_FRAMES 0x01 |
Definition at line 40 of file mp3dec.c.
Referenced by mp3_parse_info_tag().
| #define XING_FLAG_SIZE 0x02 |
Definition at line 41 of file mp3dec.c.
Referenced by mp3_parse_info_tag().
| #define XING_FLAG_TOC 0x04 |
Definition at line 42 of file mp3dec.c.
Referenced by mp3_parse_info_tag().
| #define XING_FLAC_QSCALE 0x08 |
Definition at line 43 of file mp3dec.c.
Referenced by mp3_parse_info_tag().
| #define XING_TOC_COUNT 100 |
Definition at line 45 of file mp3dec.c.
Referenced by read_xing_toc().
| #define LAST_BITS | ( | k, | |
| n ) |
| #define MIDDLE_BITS | ( | k, | |
| m, | |||
| n ) |
Referenced by mp3_parse_info_tag().
| #define MP3_PACKET_SIZE 1024 |
Definition at line 519 of file mp3dec.c.
Referenced by mp3_read_packet().
| #define SEEK_WINDOW 4096 |
Definition at line 545 of file mp3dec.c.
Referenced by mp3_sync().
| #define MIN_VALID 3 |
Referenced by mp3_sync().
| enum CheckRet |
|
static |
|
static |
|
static |
Definition at line 135 of file mp3dec.c.
Referenced by mp3_parse_info_tag().
|
static |
Definition at line 161 of file mp3dec.c.
Referenced by mp3_parse_vbr_tags().
|
static |
Definition at line 297 of file mp3dec.c.
Referenced by mp3_parse_vbr_tags().
|
static |
Look the iTunSMPB tag up under every key it can land on.
A COMM frame keeps its language in the key, and while Apple writes eng, anything that retags the file is free to write its own, valid or not.
The bare key is for files remuxed by versions that exposed a COMM descriptor as a metadata key of its own: those wrote the tag back out as a TXXX frame, which carries no language and is keyed by its description alone.
Definition at line 325 of file mp3dec.c.
Referenced by mp3_parse_itunes_smpb().
|
static |
Parse the gapless playback information Apple encoders store in an iTunSMPB comment instead of in the LAME extension of the Xing tag.
Definition at line 345 of file mp3dec.c.
Referenced by mp3_parse_vbr_tags().
|
static |
Try to find Xing/Info/VBRI tags and compute duration from info therein.
Definition at line 383 of file mp3dec.c.
Referenced by mp3_read_header().
|
static |
|
static |
|
static |
Definition at line 572 of file mp3dec.c.
Referenced by mp3_seek().
|
static |
|
static |
|
static |
| const FFInputFormat ff_mp3_demuxer |