47 if (!(bytestream2_peek_byte(&p) & 1))
50 if (bytestream2_peek_byte(&p) == 1) {
53 if (bytestream2_peek_byte(&p) ==
'v'){
57 tag = bytestream2_get_le32(&p);
60 }
else if (bytestream2_peek_byte(&p) ==
't') {
71 cid = strtol(acid,
NULL, 16);
78 size = bytestream2_get_le32(&p);
80 time_unit = bytestream2_get_le64(&p);
81 spu = bytestream2_get_le64(&p);
82 if (!time_unit || !spu) {
111 }
else if (bytestream2_peek_byte(&p) == 3) {
147 }
else if(t == 0x05589f81){
172 lb = ((*p & 2) << 1) | ((*p >> 6) & 3);
183 .
magic =
"\001video",
187 .granule_is_start = 1,
192 .
magic =
"\001audio",
196 .granule_is_start = 1,
205 .granule_is_start = 1,
210 .
magic =
"\001Direct Show Samples embedded in Ogg",
214 .granule_is_start = 1,
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
const struct ogg_codec ff_ogm_old_codec
Copyright (C) 2005 Michael Ahlberg, Måns Rullgård.
static av_always_inline void bytestream2_init(GetByteContext *g, const uint8_t *buf, int buf_size)
static int ogm_header(AVFormatContext *s, int idx)
Copyright (C) 2005 Michael Ahlberg, Måns Rullgård.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_RL16
static int ogm_dshow_header(AVFormatContext *s, int idx)
#define av_assert0(cond)
assert() equivalent, that is always enabled.
const struct ogg_codec ff_ogm_text_codec
enum AVStreamParseType need_parsing
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
AVStream ** streams
A list of all streams in the file.
bitstream reader API header.
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static av_always_inline void bytestream2_skip(GetByteContext *g, unsigned int size)
int ff_vorbis_stream_comment(AVFormatContext *as, AVStream *st, const uint8_t *buf, int size)
static av_always_inline unsigned int bytestream2_get_buffer(GetByteContext *g, uint8_t *dst, unsigned int size)
static av_always_inline unsigned int bytestream2_get_bytes_left(GetByteContext *g)
simple assert() macros that are a bit more flexible than ISO C assert().
const AVCodecTag ff_codec_wav_tags[]
AVCodecContext * codec
Codec context associated with this stream.
#define FF_INPUT_BUFFER_PADDING_SIZE
Required number of additionally allocated bytes at the end of the input bitstream for decoding...
int bit_rate
the average bitrate
const AVCodecTag ff_codec_bmp_tags[]
int width
picture width / height.
internal header for RIFF based (de)muxers do NOT include this in end user applications ...
struct ogg_stream * streams
const struct ogg_codec ff_ogm_video_codec
enum AVMediaType codec_type
int sample_rate
samples per second
static int ogm_packet(AVFormatContext *s, int idx)
unsigned int codec_tag
fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
int channels
number of audio channels
void * priv_data
Format private data.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
const struct ogg_codec ff_ogm_audio_codec