Go to the documentation of this file.
39 #define MM_PREAMBLE_SIZE 6
41 #define MM_TYPE_HEADER 0x0
42 #define MM_TYPE_INTER 0x5
43 #define MM_TYPE_INTRA 0x8
44 #define MM_TYPE_INTRA_HH 0xc
45 #define MM_TYPE_INTER_HH 0xd
46 #define MM_TYPE_INTRA_HHV 0xe
47 #define MM_TYPE_INTER_HHV 0xf
48 #define MM_TYPE_AUDIO 0x15
49 #define MM_TYPE_PALETTE 0x31
51 #define MM_HEADER_LEN_V 0x16
52 #define MM_HEADER_LEN_AV 0x18
54 #define MM_PALETTE_COUNT 128
55 #define MM_PALETTE_SIZE (MM_PALETTE_COUNT*3)
75 if (!fps || fps > 60 || !
w ||
w > 2048 || !
h ||
h > 2048)
91 unsigned int type, length;
143 unsigned int type, length;
153 length =
AV_RL16(&preamble[2]);
177 if (
s->nb_streams < 2)
const AVInputFormat ff_mm_demuxer
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later. That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another. Frame references ownership and permissions
enum AVMediaType codec_type
General type of the encoded data.
AVStream * avformat_new_stream(AVFormatContext *s, const struct AVCodec *c)
Add a new stream to a media file.
static int read_packet(AVFormatContext *s, AVPacket *pkt)
#define MM_TYPE_INTER_HHV
uint32_t codec_tag
Additional information about the codec (corresponds to the AVI FOURCC).
int buf_size
Size of buf except extra allocated bytes.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
unsigned int avio_rl16(AVIOContext *s)
#define MM_TYPE_INTRA_HHV
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
unsigned char * buf
Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_RL16
static int probe(const AVProbeData *p)
AVCodecParameters * codecpar
Codec parameters associated with this stream.
This structure contains the data a format has to probe a file.
AVChannelLayout ch_layout
Audio only.
int sample_rate
Audio only.
unsigned int avio_rl32(AVIOContext *s)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
An AVChannelLayout holds information about the channel layout of audio data.
#define AV_LOG_INFO
Standard information.
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
static int read_probe(const AVProbeData *p)
#define AV_CHANNEL_LAYOUT_MONO
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
This structure stores compressed data.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
static int read_header(AVFormatContext *s)