30 #define DEFAULT_PACKET_SIZE 1024 31 #define OVERREAD_SIZE 3 77 for (; p < end - 3; p += 4) {
80 if (x & (~(x+0x01010101)) & 0x80808080) {
83 }
else if (p[1] == 0xff) {
85 }
else if (p[2] == 0xff) {
87 }
else if (p[3] == 0xff) {
93 for (; p <
end; ++p) {
94 if (*p == 0xff)
return p;
104 unsigned int soi_pos;
109 if (current_pos > current_pos + cache_size)
113 current_pos + cache_size +
136 uint8_t *startmarker_ptr, *
end, *search_end, marker;
155 if (startmarker_ptr >= search_end - 1 ||
156 *(startmarker_ptr + 1) !=
EOI)
break;
159 if (startmarker_ptr != search_end) {
160 marker = *(startmarker_ptr + 1);
165 mxg->
soi_ptr = startmarker_ptr;
166 }
else if (marker ==
EOI) {
191 }
else if ( (
SOF0 <= marker && marker <=
SOF15) ||
192 (
SOS <= marker && marker <=
COM) ) {
211 if (marker ==
APP13 && size >= 16) {
215 memcpy(pkt->
data, startmarker_ptr + 16, size - 14);
229 }
else if (marker ==
COM && size >= 18 &&
230 !strncmp(startmarker_ptr + 4,
"MXF", 3)) {
#define AV_LOG_WARNING
Something somehow does not look correct.
static uint8_t * mxg_find_startmarker(uint8_t *p, uint8_t *end)
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
MJPEG encoder and decoder.
static av_cold int end(AVCodecContext *avctx)
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file.
#define AVERROR_EOF
End of file.
static av_cold int read_close(AVFormatContext *ctx)
uint64_t channel_layout
Audio only.
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
enum AVMediaType codec_type
General type of the encoded data.
static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt)
common internal API header
int block_align
Audio only.
audio channel layout utility functions
#define DEFAULT_PACKET_SIZE
AVInputFormat ff_mxg_demuxer
void * av_fast_realloc(void *ptr, unsigned int *size, size_t min_size)
Reallocate the given buffer if it is not large enough, otherwise do nothing.
static int mxg_update_cache(AVFormatContext *s, unsigned int cache_size)
static int read_header(FFV1Context *f)
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
AVIOContext * pb
I/O context.
int error
contains the error code or 0 if no error happened
int sample_rate
Audio only.
static int mxg_close(struct AVFormatContext *s)
#define AV_INPUT_BUFFER_PADDING_SIZE
Required number of additionally allocated bytes at the end of the input bitstream for decoding...
void * priv_data
Format private data.
int bits_per_coded_sample
The number of bits per sample in the codedwords.
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed...
AVCodecParameters * codecpar
Codec parameters associated with this stream.
int avio_feof(AVIOContext *s)
feof() equivalent for AVIOContext.
#define AV_CH_LAYOUT_MONO
This structure stores compressed data.
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
#define AV_NOPTS_VALUE
Undefined timestamp value.
static int mxg_read_header(AVFormatContext *s)