23 #define UNCHECKED_BITSTREAM_READER 1
47 for (i = 0; i < buf_size; i++) {
48 state = (state << 8) | buf[i];
61 for (; i < buf_size; i++) {
62 state = (state << 8) | buf[i];
63 if ((state & 0xFFFFFF00) == 0x100) {
110 s1->pict_type =
s->pict_type;
111 pc->first_picture = 0;
130 const uint8_t **poutbuf,
int *poutbuf_size,
150 *poutbuf_size = buf_size;
int coded_width
Bitstream width / height, may be different from width/height e.g.
#define AV_LOG_WARNING
Something somehow does not look correct.
int ff_set_dimensions(AVCodecContext *s, int width, int height)
Check that the provided frame dimensions are valid and set them on the codec context.
int ff_mpeg4video_split(AVCodecContext *avctx, const uint8_t *buf, int buf_size)
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
int64_t time
time of current frame
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
Picture current_picture
copy of the current picture structure.
static int mpeg4video_parse(AVCodecParserContext *s, AVCodecContext *avctx, const uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size)
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
Rescale a 64-bit integer by 2 rational numbers.
int slice_context_count
number of used thread_contexts
AVCodecParser ff_mpeg4video_parser
int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_size)
Combine the (truncated) bitstream to a complete frame.
#define PARSER_FLAG_COMPLETE_FRAMES
#define PARSER_FLAG_USE_CODEC_TS
void ff_mpeg4videodec_static_init(void)
void ff_parse_close(AVCodecParserContext *s)
#define av_assert1(cond)
assert() equivalent, that does not lie in speed critical code.
static int mpeg4_decode_header(AVCodecParserContext *s1, AVCodecContext *avctx, const uint8_t *buf, int buf_size)
int width
picture width / height.
Picture * current_picture_ptr
pointer to the current picture
int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb)
Decode mpeg4 headers.
static av_cold int mpeg4video_parse_init(AVCodecParserContext *s)
main external API structure.
int height
picture size. must be a multiple of 16
uint32_t state
contains the last few bytes in MSB order
int showed_packed_warning
flag for having shown the warning about invalid Divx B-frames
rational number numerator/denominator
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext.
struct AVCodecContext * avctx
common internal api header.
static AVCodecContext * dec_ctx
int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size)
Find the end of the current frame in the bitstream.
#define AV_NOPTS_VALUE
Undefined timestamp value.