FFmpeg  4.0
Data Structures | Macros | Enumerations | Functions | Variables
vc1_parser.c File Reference

VC-1 and WMV3 parser. More...

#include "libavutil/attributes.h"
#include "parser.h"
#include "vc1.h"
#include "get_bits.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  VC1ParseContext
 

Macros

#define UNESCAPED_THRESHOLD   37
 The maximum number of bytes of a sequence, entry point or frame header whose values we pay any attention to. More...
 
#define UNESCAPED_LIMIT   144
 The maximum number of bytes of a sequence, entry point or frame header which must be valid memory (because they are used to update the bitstream cache in skip_bits() calls) More...
 

Enumerations

enum  VC1ParseSearchState { NO_MATCH, ONE_ZERO, TWO_ZEROS, ONE }
 

Functions

static void vc1_extract_header (AVCodecParserContext *s, AVCodecContext *avctx, const uint8_t *buf, int buf_size)
 
static int vc1_parse (AVCodecParserContext *s, AVCodecContext *avctx, const uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size)
 
static int vc1_split (AVCodecContext *avctx, const uint8_t *buf, int buf_size)
 
static av_cold int vc1_parse_init (AVCodecParserContext *s)
 

Variables

AVCodecParser ff_vc1_parser
 

Detailed Description

VC-1 and WMV3 parser.

Definition in file vc1_parser.c.

Macro Definition Documentation

◆ UNESCAPED_THRESHOLD

#define UNESCAPED_THRESHOLD   37

The maximum number of bytes of a sequence, entry point or frame header whose values we pay any attention to.

Definition at line 36 of file vc1_parser.c.

Referenced by vc1_parse().

◆ UNESCAPED_LIMIT

#define UNESCAPED_LIMIT   144

The maximum number of bytes of a sequence, entry point or frame header which must be valid memory (because they are used to update the bitstream cache in skip_bits() calls)

Definition at line 42 of file vc1_parser.c.

Enumeration Type Documentation

◆ VC1ParseSearchState

Enumerator
NO_MATCH 
ONE_ZERO 
TWO_ZEROS 
ONE 

Definition at line 44 of file vc1_parser.c.

Function Documentation

◆ vc1_extract_header()

static void vc1_extract_header ( AVCodecParserContext s,
AVCodecContext avctx,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 61 of file vc1_parser.c.

Referenced by vc1_parse().

◆ vc1_parse()

static int vc1_parse ( AVCodecParserContext s,
AVCodecContext avctx,
const uint8_t **  poutbuf,
int poutbuf_size,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 128 of file vc1_parser.c.

◆ vc1_split()

static int vc1_split ( AVCodecContext avctx,
const uint8_t buf,
int  buf_size 
)
static

Definition at line 259 of file vc1_parser.c.

◆ vc1_parse_init()

static av_cold int vc1_parse_init ( AVCodecParserContext s)
static

Definition at line 277 of file vc1_parser.c.

Variable Documentation

◆ ff_vc1_parser

AVCodecParser ff_vc1_parser
Initial value:
= {
.codec_ids = { AV_CODEC_ID_VC1 },
.priv_data_size = sizeof(VC1ParseContext),
.parser_init = vc1_parse_init,
.parser_parse = vc1_parse,
.parser_close = ff_parse_close,
}
static char * split(char *message, char delim)
Definition: af_channelmap.c:81
void ff_parse_close(AVCodecParserContext *s)
Definition: parser.c:397
static int vc1_split(AVCodecContext *avctx, const uint8_t *buf, int buf_size)
Definition: vc1_parser.c:259
static int vc1_parse(AVCodecParserContext *s, AVCodecContext *avctx, const uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size)
Definition: vc1_parser.c:128
static av_cold int vc1_parse_init(AVCodecParserContext *s)
Definition: vc1_parser.c:277

Definition at line 289 of file vc1_parser.c.