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

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

#include "libavutil/mem.h"
#include "avcodec.h"
#include "bytestream.h"
#include "decode.h"
#include "h264chroma.h"
#include "vp56.h"
#include "vp56data.h"
#include "vpx_rac.h"

Go to the source code of this file.

Macros

#define TRANSPOSE(x)
 

Functions

void ff_vp56_init_dequant (VP56Context *s, int quantizer)
 
static int vp56_get_vectors_predictors (VP56Context *s, int row, int col, VP56Frame ref_frame)
 
static void vp56_parse_mb_type_models (VP56Context *s)
 
static VP56mb vp56_parse_mb_type (VP56Context *s, VP56mb prev_type, int ctx)
 
static void vp56_decode_4mv (VP56Context *s, int row, int col)
 
static VP56mb vp56_decode_mv (VP56Context *s, int row, int col)
 
static VP56mb vp56_conceal_mv (VP56Context *s, int row, int col)
 
static void vp56_add_predictors_dc (VP56Context *s, VP56Frame ref_frame)
 
static void vp56_deblock_filter (VP56Context *s, uint8_t *yuv, ptrdiff_t stride, int dx, int dy)
 
static void vp56_mc (VP56Context *s, int b, int plane, uint8_t *src, ptrdiff_t stride, int x, int y, ptrdiff_t ref_stride)
 
static void vp56_idct_put (VP56Context *s, uint8_t *dest, ptrdiff_t stride, int16_t *block, int selector)
 
static void vp56_idct_add (VP56Context *s, uint8_t *dest, ptrdiff_t stride, int16_t *block, int selector)
 
static av_always_inline void vp56_render_mb (VP56Context *s, int row, int col, int is_alpha, VP56mb mb_type)
 
static int vp56_decode_mb (VP56Context *s, int row, int col, int is_alpha)
 
static int vp56_conceal_mb (VP56Context *s, int row, int col, int is_alpha)
 
static int vp56_size_changed (VP56Context *s)
 
static int ff_vp56_decode_mbs (AVCodecContext *avctx, void *, int, int)
 
int ff_vp56_decode_frame (AVCodecContext *avctx, AVFrame *rframe, int *got_frame, AVPacket *avpkt)
 
av_cold int ff_vp56_init_context (AVCodecContext *avctx, VP56Context *s, int flip, int has_alpha)
 Initializes an VP56Context.
 
av_cold int ff_vp56_free_context (VP56Context *s)
 

Detailed Description

VP5 and VP6 compatible video decoder (common features)

Definition in file vp56.c.

Macro Definition Documentation

◆ TRANSPOSE

#define TRANSPOSE ( x)
Value:
(((x) >> 3) | (((x) & 7) << 3))

Referenced by ff_vp56_init_context().

Function Documentation

◆ 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().

◆ vp56_get_vectors_predictors()

static int vp56_get_vectors_predictors ( VP56Context * s,
int row,
int col,
VP56Frame ref_frame )
static

Definition at line 45 of file vp56.c.

Referenced by vp56_decode_mv().

◆ vp56_parse_mb_type_models()

static void vp56_parse_mb_type_models ( VP56Context * s)
static

Definition at line 83 of file vp56.c.

Referenced by ff_vp56_decode_mbs().

◆ vp56_parse_mb_type()

static VP56mb vp56_parse_mb_type ( VP56Context * s,
VP56mb prev_type,
int ctx )
static

Definition at line 154 of file vp56.c.

Referenced by vp56_decode_mv().

◆ vp56_decode_4mv()

static void vp56_decode_4mv ( VP56Context * s,
int row,
int col )
static

Definition at line 166 of file vp56.c.

Referenced by vp56_decode_mv().

◆ vp56_decode_mv()

static VP56mb vp56_decode_mv ( VP56Context * s,
int row,
int col )
static

Definition at line 207 of file vp56.c.

Referenced by vp56_decode_mb().

◆ vp56_conceal_mv()

static VP56mb vp56_conceal_mv ( VP56Context * s,
int row,
int col )
static

Definition at line 264 of file vp56.c.

Referenced by vp56_conceal_mb().

◆ vp56_add_predictors_dc()

static void vp56_add_predictors_dc ( VP56Context * s,
VP56Frame ref_frame )
static

Definition at line 283 of file vp56.c.

Referenced by vp56_render_mb().

◆ vp56_deblock_filter()

static void vp56_deblock_filter ( VP56Context * s,
uint8_t * yuv,
ptrdiff_t stride,
int dx,
int dy )
static

Definition at line 324 of file vp56.c.

Referenced by vp56_mc().

◆ vp56_mc()

static void vp56_mc ( VP56Context * s,
int b,
int plane,
uint8_t * src,
ptrdiff_t stride,
int x,
int y,
ptrdiff_t ref_stride )
static

Definition at line 340 of file vp56.c.

Referenced by vp56_render_mb().

◆ vp56_idct_put()

static void vp56_idct_put ( VP56Context * s,
uint8_t * dest,
ptrdiff_t stride,
int16_t * block,
int selector )
static

Definition at line 421 of file vp56.c.

Referenced by vp56_render_mb().

◆ vp56_idct_add()

static void vp56_idct_add ( VP56Context * s,
uint8_t * dest,
ptrdiff_t stride,
int16_t * block,
int selector )
static

Definition at line 429 of file vp56.c.

Referenced by vp56_render_mb().

◆ vp56_render_mb()

static av_always_inline void vp56_render_mb ( VP56Context * s,
int row,
int col,
int is_alpha,
VP56mb mb_type )
static

Definition at line 439 of file vp56.c.

Referenced by vp56_conceal_mb(), and vp56_decode_mb().

◆ vp56_decode_mb()

static int vp56_decode_mb ( VP56Context * s,
int row,
int col,
int is_alpha )
static

Definition at line 516 of file vp56.c.

Referenced by ff_vp56_decode_mbs().

◆ vp56_conceal_mb()

static int vp56_conceal_mb ( VP56Context * s,
int row,
int col,
int is_alpha )
static

Definition at line 548 of file vp56.c.

Referenced by ff_vp56_decode_mbs().

◆ vp56_size_changed()

static int vp56_size_changed ( VP56Context * s)
static

Definition at line 562 of file vp56.c.

Referenced by ff_vp56_decode_frame(), and vp56_size_changed().

◆ ff_vp56_decode_mbs()

static int ff_vp56_decode_mbs ( AVCodecContext * avctx,
void * data,
int jobnr,
int threadnr )
static

Definition at line 698 of file vp56.c.

Referenced by ff_vp56_decode_frame().

◆ ff_vp56_decode_frame()

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

Definition at line 607 of file vp56.c.

◆ ff_vp56_init_context()

av_cold 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()

av_cold int ff_vp56_free_context ( VP56Context * s)

Definition at line 870 of file vp56.c.

Referenced by vp56_free(), and vp6_decode_free_context().