33#define ADTS_HEADER_SIZE 7
37 int max_frames = 0, first_frames = 0;
39 const uint8_t *buf0 = p->buf;
42 const uint8_t *end = buf0 + p->buf_size - 7;
46 for (; buf < end; buf = buf2 + 1) {
51 if ((
header & 0xFFF6) != 0xFFF0) {
72 if (first_frames >= 3)
74 else if (max_frames > 100)
76 else if (max_frames >= 3)
78 else if (first_frames >= 1)
94 if ((
state >> 4) != 0xFFF)
99 if (
s->pb->eof_reached)
101 if ((
state >> 4) != 0xFFF)
212 .p.extensions =
"aac",
213 .p.mime_type =
"audio/aac,audio/aacp,audio/x-aac",
int64_t ff_ape_parse_tag(AVFormatContext *s)
Read and parse an APE tag.
static int64_t fsize(FILE *f)
simple assert() macros that are a bit more flexible than ISO C assert().
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code.
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
#define AVIO_SEEKABLE_NORMAL
Seeking works like for a local file.
int avio_feof(AVIOContext *s)
Similar to feof() but also returns nonzero on read errors.
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
int avio_r8(AVIOContext *s)
void ffio_init_read_context(FFIOContext *s, const uint8_t *buffer, int buffer_size)
Wrap a buffer in an AVIOContext for reading.
static int FUNC metadata(CodedBitstreamContext *ctx, RWContext *rw, APVRawMetadata *current)
#define FF_INFMT_FLAG_ID3V2_AUTO
Automatically parse ID3v2 metadata.
static struct @346255127015250356166251341105367306144006377143 state
void av_packet_unref(AVPacket *pkt)
Wipe the packet.
AVStream * avformat_new_stream(AVFormatContext *s, const struct AVCodec *c)
Add a new stream to a media file.
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values.
int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags)
Copy entries from one AVDictionary struct into another.
int av_dict_count(const AVDictionary *m)
Get number of entries in dictionary.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define AVERROR_EOF
End of file.
void ff_id3v1_read(AVFormatContext *s)
Read an ID3v1 tag.
int ff_id3v2_tag_len(const uint8_t *buf)
Get the length of an ID3v2 tag.
int ff_id3v2_match(const uint8_t *buf, const char *magic)
Detect ID3v2 Header.
void ff_id3v2_free_extra_meta(ID3v2ExtraMeta **extra_meta)
Free memory allocated parsing special (non-text) metadata.
int ff_id3v2_parse_priv_dict(AVDictionary **metadata, ID3v2ExtraMeta *extra_meta)
Parse PRIV tags into a dictionary.
void ff_id3v2_read_dict(AVFormatContext *s, AVIOContext *pb, AVDictionary **metadata, const char *magic, ID3v2ExtraMeta **extra_meta)
Read an ID3v2 tag into specified dictionary and retrieve supported extra metadata.
#define ID3v2_DEFAULT_MAGIC
Default magic bytes for ID3v2 header: "ID3".
#define ID3v2_HEADER_SIZE
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
static uint8_t * append(uint8_t *buf, const uint8_t *src, int size)
static const uint8_t header[24]
enum AVMediaType codec_type
General type of the encoded data.
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
This structure stores compressed data.
This structure contains the data a format has to probe a file.
AVCodecParameters * codecpar
Codec parameters associated with this stream.
enum AVStreamParseType need_parsing
static void error(const char *err)