36 #define UNESCAPED_THRESHOLD 37
42 #define UNESCAPED_LIMIT 144
120 if (avctx->width && avctx->height) {
121 s->width = avctx->width;
122 s->height = avctx->height;
123 s->coded_width =
FFALIGN(avctx->coded_width, 16);
124 s->coded_height =
FFALIGN(avctx->coded_height, 16);
130 const uint8_t **poutbuf,
int *poutbuf_size,
141 int start_code_found = 0;
145 if (pic_found && buf_size == 0) {
151 while (i < buf_size) {
153 start_code_found = 0;
156 unesc_buffer[unesc_index++] =
b;
158 search_state = b ?
NO_MATCH : search_state + 1;
171 start_code_found = 1;
186 while (i < buf_size) {
203 start_code_found = 1;
209 if (start_code_found) {
255 *poutbuf_size = buf_size;
271 return ptr - 4 -
buf;
#define UNESCAPED_LIMIT
The maximum number of bytes of a sequence, entry point or frame header which must be valid memory (be...
AVCodecParser ff_vc1_parser
int broadcast
TFF/RFF present.
enum AVFieldOrder field_order
int(* startcode_find_candidate)(const uint8_t *buf, int size)
Search buf from the start for up to size bytes.
Macro definitions for various function/variable attributes.
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
int first_pic_header_flag
av_cold int ff_vc1_init_common(VC1Context *v)
Init VC-1 specific tables and VC1Context members.
static av_cold int end(AVCodecContext *avctx)
int interlace
Progressive/interlaced (RPTFTM syntax element)
int profile
Sequence header data for all Profiles TODO: choose between ints, uint8_ts and monobit flags...
bitstream reader API header.
int ff_vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
Decode Simple/Main Profiles sequence header.
const uint8_t * avpriv_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state)
int psf
Progressive Segmented Frame.
int slice_context_count
number of used thread_contexts
int ff_combine_frame(ParseContext *pc, int next, const uint8_t **buf, int *buf_size)
Combine the (truncated) bitstream to a complete frame.
static char * split(char *message, char delim)
static void vc1_extract_header(AVCodecParserContext *s, AVCodecContext *avctx, const uint8_t *buf, int buf_size)
int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext *gb)
void ff_parse_close(AVCodecParserContext *s)
#define UNESCAPED_THRESHOLD
The maximum number of bytes of a sequence, entry point or frame header whose values we pay any attent...
int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext *gb)
int ticks_per_frame
For some codecs, the time base is closer to the field rate than the frame rate.
static int vc1_split(AVCodecContext *avctx, const uint8_t *buf, int buf_size)
VC1ParseSearchState search_state
main external API structure.
Rational number (pair of numerator and denominator).
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext.
static int vc1_parse(AVCodecParserContext *s, AVCodecContext *avctx, const uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size)
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ...
static av_always_inline AVRational av_inv_q(AVRational q)
Invert a rational.
struct AVCodecContext * avctx
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
common internal api header.
static av_cold int vc1_parse_init(AVCodecParserContext *s)
#define PARSER_FLAG_COMPLETE_FRAMES
int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
int parse_only
Context is used within parser.
AVRational av_mul_q(AVRational b, AVRational c)
Multiply two rationals.
int repeat_pict
This field is used for proper frame duration computation in lavf.
uint8_t unesc_buffer[UNESCAPED_LIMIT]