FFmpeg
Loading...
Searching...
No Matches
vp56.h File Reference

VP5 and VP6 compatible video decoder (common features) More...

#include "libavutil/mem_internal.h"
#include "avcodec.h"
#include "get_bits.h"
#include "hpeldsp.h"
#include "h264chroma.h"
#include "videodsp.h"
#include "vp3dsp.h"
#include "vp56dsp.h"
#include "vpx_rac.h"

Go to the source code of this file.

Data Structures

struct  VP56Tree
 
struct  VP56mv
 
struct  VP56RefDc
 
struct  VP56Macroblock
 
struct  VP56Model
 
struct  VP56Context
 

Macros

#define VP56_SIZE_CHANGE   1
 

Typedefs

typedef void(* VP56ParseVectorAdjustment) (VP56Context *s, VP56mv *vect)
 
typedef void(* VP56Filter) (VP56Context *s, uint8_t *dst, uint8_t *src, int offset1, int offset2, ptrdiff_t stride, VP56mv mv, int mask, int select, int luma)
 
typedef int(* VP56ParseCoeff) (VP56Context *s)
 
typedef void(* VP56DefaultModelsInit) (VP56Context *s)
 
typedef void(* VP56ParseVectorModels) (VP56Context *s)
 
typedef int(* VP56ParseCoeffModels) (VP56Context *s)
 
typedef int(* VP56ParseHeader) (VP56Context *s, const uint8_t *buf, int buf_size)
 

Enumerations

enum  VP56Frame { VP56_FRAME_NONE =-1 , VP56_FRAME_CURRENT = 0 , VP56_FRAME_PREVIOUS = 1 , VP56_FRAME_GOLDEN = 2 }
 
enum  VP56mb {
  VP56_MB_INTER_NOVEC_PF = 0 , VP56_MB_INTRA = 1 , VP56_MB_INTER_DELTA_PF = 2 , VP56_MB_INTER_V1_PF = 3 ,
  VP56_MB_INTER_V2_PF = 4 , VP56_MB_INTER_NOVEC_GF = 5 , VP56_MB_INTER_DELTA_GF = 6 , VP56_MB_INTER_4V = 7 ,
  VP56_MB_INTER_V1_GF = 8 , VP56_MB_INTER_V2_GF = 9
}
 

Functions

int ff_vp56_init_context (AVCodecContext *avctx, VP56Context *s, int flip, int has_alpha)
 Initializes an VP56Context.
 
int ff_vp56_free_context (VP56Context *s)
 
void ff_vp56_init_dequant (VP56Context *s, int quantizer)
 
int ff_vp56_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt)
 
static int vp56_rac_gets (VPXRangeCoder *c, int bits)
 vp56 specific range coder implementation
 
static av_unused int vp56_rac_gets_nn (VPXRangeCoder *c, int bits)
 
static av_always_inline int vp56_rac_get_tree (VPXRangeCoder *c, const VP56Tree *tree, const uint8_t *probs)
 

Detailed Description

VP5 and VP6 compatible video decoder (common features)

Definition in file vp56.h.

Macro Definition Documentation

◆ VP56_SIZE_CHANGE

#define VP56_SIZE_CHANGE   1

Definition at line 72 of file vp56.h.

Referenced by ff_vp56_decode_frame(), vp5_parse_header(), and vp6_parse_header().

Typedef Documentation

◆ VP56ParseVectorAdjustment

typedef void(* VP56ParseVectorAdjustment) (VP56Context *s, VP56mv *vect)

Definition at line 74 of file vp56.h.

◆ VP56Filter

typedef void(* VP56Filter) (VP56Context *s, uint8_t *dst, uint8_t *src, int offset1, int offset2, ptrdiff_t stride, VP56mv mv, int mask, int select, int luma)

Definition at line 76 of file vp56.h.

◆ VP56ParseCoeff

typedef int(* VP56ParseCoeff) (VP56Context *s)

Definition at line 79 of file vp56.h.

◆ VP56DefaultModelsInit

typedef void(* VP56DefaultModelsInit) (VP56Context *s)

Definition at line 80 of file vp56.h.

◆ VP56ParseVectorModels

typedef void(* VP56ParseVectorModels) (VP56Context *s)

Definition at line 81 of file vp56.h.

◆ VP56ParseCoeffModels

typedef int(* VP56ParseCoeffModels) (VP56Context *s)

Definition at line 82 of file vp56.h.

◆ VP56ParseHeader

typedef int(* VP56ParseHeader) (VP56Context *s, const uint8_t *buf, int buf_size)

Definition at line 83 of file vp56.h.

Enumeration Type Documentation

◆ VP56Frame

enum VP56Frame
Enumerator
VP56_FRAME_NONE 
VP56_FRAME_CURRENT 
VP56_FRAME_PREVIOUS 
VP56_FRAME_GOLDEN 

Definition at line 42 of file vp56.h.

◆ VP56mb

enum VP56mb
Enumerator
VP56_MB_INTER_NOVEC_PF 

Inter MB, no vector, from previous frame.

VP56_MB_INTRA 

Intra MB.

VP56_MB_INTER_DELTA_PF 

Inter MB, above/left vector + delta, from previous frame.

VP56_MB_INTER_V1_PF 

Inter MB, first vector, from previous frame.

VP56_MB_INTER_V2_PF 

Inter MB, second vector, from previous frame.

VP56_MB_INTER_NOVEC_GF 

Inter MB, no vector, from golden frame.

VP56_MB_INTER_DELTA_GF 

Inter MB, above/left vector + delta, from golden frame.

VP56_MB_INTER_4V 

Inter MB, 4 vectors, from previous frame.

VP56_MB_INTER_V1_GF 

Inter MB, first vector, from golden frame.

VP56_MB_INTER_V2_GF 

Inter MB, second vector, from golden frame.

Definition at line 49 of file vp56.h.

Function Documentation

◆ ff_vp56_init_context()

int ff_vp56_init_context ( AVCodecContext * avctx,
VP56Context * s,
int flip,
int has_alpha )

Initializes an VP56Context.

Expects its caller to clean up in case of error.

Definition at line 819 of file vp56.c.

Referenced by vp5_decode_init(), and vp6_decode_init_context().

◆ ff_vp56_free_context()

int ff_vp56_free_context ( VP56Context * s)

Definition at line 870 of file vp56.c.

Referenced by vp56_free(), and vp6_decode_free_context().

◆ ff_vp56_init_dequant()

void ff_vp56_init_dequant ( VP56Context * s,
int quantizer )

Definition at line 36 of file vp56.c.

Referenced by vp5_parse_header(), and vp6_parse_header().

◆ ff_vp56_decode_frame()

int ff_vp56_decode_frame ( AVCodecContext * avctx,
AVFrame * frame,
int * got_frame,
AVPacket * avpkt )

Definition at line 607 of file vp56.c.

◆ vp56_rac_gets()

static int vp56_rac_gets ( VPXRangeCoder * c,
int bits )
static

vp56 specific range coder implementation

Definition at line 233 of file vp56.h.

Referenced by ff_vp56_decode_mbs(), vp56_decode_4mv(), vp56_parse_mb_type_models(), vp56_rac_gets_nn(), vp5_parse_header(), vp6_parse_coeff_models(), and vp6_parse_header().

◆ vp56_rac_gets_nn()

static av_unused int vp56_rac_gets_nn ( VPXRangeCoder * c,
int bits )
static

◆ vp56_rac_get_tree()

static av_always_inline int vp56_rac_get_tree ( VPXRangeCoder * c,
const VP56Tree * tree,
const uint8_t * probs )
static