32 #define MTV_ASUBCHUNK_DATA_SIZE 500 33 #define MTV_HEADER_SIZE 512 34 #define MTV_AUDIO_PADDING_SIZE 12 35 #define MTV_IMAGE_DEFAULT_BPP 16 36 #define MTV_AUDIO_SAMPLING_RATE 44100 63 if (*p->
buf !=
'A' || *(p->
buf + 1) !=
'M' || *(p->
buf + 2) !=
'V')
67 if (p->
buf[43] !=
'M' || p->
buf[44] !=
'P' || p->
buf[45] !=
'3')
106 unsigned int audio_subsegments;
140 av_log(s,
AV_LOG_ERROR,
"width or height or segment_size is invalid and I cannot calculate them from other information\n");
147 if (audio_subsegments == 0) {
#define MTV_ASUBCHUNK_DATA_SIZE
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define MTV_AUDIO_SAMPLING_RATE
#define AV_LOG_WARNING
Something somehow does not look correct.
int64_t pos
byte position in stream, -1 if unknown
static int mtv_probe(const AVProbeData *p)
unsigned int img_bpp
frame bits per pixel
#define avpriv_request_sample(...)
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
AVFormatInternal * internal
An opaque field for libavformat internal usage.
int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
unsigned int segments
number of 512 byte segments
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_RL16
unsigned int img_colorfmt
frame colorfmt rgb 565/555
AVInputFormat ff_mtv_demuxer
enum AVStreamParseType need_parsing
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file.
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
static int mtv_read_header(AVFormatContext *s)
unsigned int audio_identifier
'MP3' on all files I have seen
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
unsigned int file_size
filesize, not always right
int64_t bit_rate
The average bitrate of the encoded data (in bits per second).
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
unsigned int avio_rl32(AVIOContext *s)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
unsigned int full_segment_size
#define MTV_IMAGE_DEFAULT_BPP
preferred ID for decoding MPEG audio layer 1, 2 or 3
enum AVMediaType codec_type
General type of the encoded data.
int extradata_size
Size of the extradata content in bytes.
int avio_r8(AVIOContext *s)
int buf_size
Size of buf except extra allocated bytes.
unsigned char * buf
Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero.
#define MTV_AUDIO_PADDING_SIZE
static int read_header(FFV1Context *f)
#define AVERROR_PATCHWELCOME
Not yet implemented in FFmpeg, patches welcome.
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
char * av_strdup(const char *s)
Duplicate a string.
AVIOContext * pb
I/O context.
unsigned int img_segment_size
size of image segment
This structure contains the data a format has to probe a file.
unsigned int avio_rl16(AVIOContext *s)
unsigned int audio_br
bitrate of audio channel (mp3)
void * priv_data
Format private data.
uint8_t * extradata
Extra binary data needed for initializing the decoder, codec-dependent.
AVCodecParameters * codecpar
Codec parameters associated with this stream.
unsigned int avio_rl24(AVIOContext *s)
static int mtv_read_packet(AVFormatContext *s, AVPacket *pkt)
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
This structure stores compressed data.