Libav
Functions | Variables
vp9block.c File Reference
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "get_bits.h"
#include "internal.h"
#include "videodsp.h"
#include "vp56.h"
#include "vp9.h"
#include "vp9data.h"

Go to the source code of this file.

Functions

static void decode_mode (VP9Context *s, VP9Block *const b)
 
static int decode_block_coeffs (VP56RangeCoder *c, int16_t *coef, int n_coeffs, enum TxfmMode tx, unsigned(*cnt)[6][3], unsigned(*eob)[6][2], uint8_t(*p)[6][11], int nnz, const int16_t *scan, const int16_t(*nb)[2], const int16_t *band_counts, const int16_t *qmul)
 
static int decode_coeffs (AVCodecContext *avctx)
 
static av_always_inline int check_intra_mode (VP9Context *s, int mode, uint8_t **a, uint8_t *dst_edge, ptrdiff_t stride_edge, uint8_t *dst_inner, ptrdiff_t stride_inner, uint8_t *l, int col, int x, int w, int row, int y, enum TxfmMode tx, int p)
 
static void intra_recon (AVCodecContext *avctx, ptrdiff_t y_off, ptrdiff_t uv_off)
 
static av_always_inline void mc_luma_dir (VP9Context *s, vp9_mc_func(*mc)[2], uint8_t *dst, ptrdiff_t dst_stride, const uint8_t *ref, ptrdiff_t ref_stride, ptrdiff_t y, ptrdiff_t x, const VP56mv *mv, int bw, int bh, int w, int h)
 
static av_always_inline void mc_chroma_dir (VP9Context *s, vp9_mc_func(*mc)[2], uint8_t *dst_u, uint8_t *dst_v, ptrdiff_t dst_stride, const uint8_t *ref_u, ptrdiff_t src_stride_u, const uint8_t *ref_v, ptrdiff_t src_stride_v, ptrdiff_t y, ptrdiff_t x, const VP56mv *mv, int bw, int bh, int w, int h)
 
static int inter_recon (AVCodecContext *avctx)
 
static av_always_inline void mask_edges (VP9Filter *lflvl, int is_uv, int row_and_7, int col_and_7, int w, int h, int col_end, int row_end, enum TxfmMode tx, int skip_inter)
 
int ff_vp9_decode_block (AVCodecContext *avctx, int row, int col, VP9Filter *lflvl, ptrdiff_t yoff, ptrdiff_t uvoff, enum BlockLevel bl, enum BlockPartition bp)
 

Variables

static const uint8_t bwh_tab [2][N_BS_SIZES][2]
 

Function Documentation

§ decode_mode()

static void decode_mode ( VP9Context s,
VP9Block *const  b 
)
static

Definition at line 45 of file vp9block.c.

Referenced by ff_vp9_decode_block().

§ decode_block_coeffs()

static int decode_block_coeffs ( VP56RangeCoder c,
int16_t *  coef,
int  n_coeffs,
enum TxfmMode  tx,
unsigned(*)  cnt[6][3],
unsigned(*)  eob[6][2],
uint8_t(*)  p[6][11],
int  nnz,
const int16_t *  scan,
const int16_t(*)  nb[2],
const int16_t *  band_counts,
const int16_t *  qmul 
)
static

Definition at line 711 of file vp9block.c.

Referenced by decode_coeffs().

§ decode_coeffs()

static int decode_coeffs ( AVCodecContext avctx)
static

Definition at line 819 of file vp9block.c.

Referenced by ff_vp9_decode_block().

§ check_intra_mode()

static av_always_inline int check_intra_mode ( VP9Context s,
int  mode,
uint8_t **  a,
uint8_t dst_edge,
ptrdiff_t  stride_edge,
uint8_t dst_inner,
ptrdiff_t  stride_inner,
uint8_t l,
int  col,
int  x,
int  w,
int  row,
int  y,
enum TxfmMode  tx,
int  p 
)
static

Definition at line 927 of file vp9block.c.

Referenced by intra_recon().

§ intra_recon()

static void intra_recon ( AVCodecContext avctx,
ptrdiff_t  y_off,
ptrdiff_t  uv_off 
)
static

Definition at line 1070 of file vp9block.c.

Referenced by ff_vp9_decode_block().

§ mc_luma_dir()

static av_always_inline void mc_luma_dir ( VP9Context s,
vp9_mc_func(*)  mc[2],
uint8_t dst,
ptrdiff_t  dst_stride,
const uint8_t ref,
ptrdiff_t  ref_stride,
ptrdiff_t  y,
ptrdiff_t  x,
const VP56mv mv,
int  bw,
int  bh,
int  w,
int  h 
)
static

Definition at line 1143 of file vp9block.c.

Referenced by inter_recon().

§ mc_chroma_dir()

static av_always_inline void mc_chroma_dir ( VP9Context s,
vp9_mc_func(*)  mc[2],
uint8_t dst_u,
uint8_t dst_v,
ptrdiff_t  dst_stride,
const uint8_t ref_u,
ptrdiff_t  src_stride_u,
const uint8_t ref_v,
ptrdiff_t  src_stride_v,
ptrdiff_t  y,
ptrdiff_t  x,
const VP56mv mv,
int  bw,
int  bh,
int  w,
int  h 
)
static

Definition at line 1173 of file vp9block.c.

Referenced by inter_recon().

§ inter_recon()

static int inter_recon ( AVCodecContext avctx)
static

Definition at line 1218 of file vp9block.c.

Referenced by ff_vp9_decode_block().

§ mask_edges()

static av_always_inline void mask_edges ( VP9Filter lflvl,
int  is_uv,
int  row_and_7,
int  col_and_7,
int  w,
int  h,
int  col_end,
int  row_end,
enum TxfmMode  tx,
int  skip_inter 
)
static

Definition at line 1411 of file vp9block.c.

Referenced by ff_vp9_decode_block().

§ ff_vp9_decode_block()

int ff_vp9_decode_block ( AVCodecContext avctx,
int  row,
int  col,
VP9Filter lflvl,
ptrdiff_t  yoff,
ptrdiff_t  uvoff,
enum BlockLevel  bl,
enum BlockPartition  bp 
)

Definition at line 1544 of file vp9block.c.

Referenced by decode_subblock().

Variable Documentation

§ bwh_tab

const uint8_t bwh_tab[2][N_BS_SIZES][2]
static
Initial value:
= {
{
{ 16, 16 }, { 16, 8 }, { 8, 16 }, { 8, 8 }, { 8, 4 }, { 4, 8 },
{ 4, 4 }, { 4, 2 }, { 2, 4 }, { 2, 2 }, { 2, 1 }, { 1, 2 }, { 1, 1 },
}, {
{ 8, 8 }, { 8, 4 }, { 4, 8 }, { 4, 4 }, { 4, 2 }, { 2, 4 },
{ 2, 2 }, { 2, 1 }, { 1, 2 }, { 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 1 },
}
}

Definition at line 34 of file vp9block.c.

Referenced by decode_coeffs(), decode_mode(), ff_vp9_decode_block(), inter_recon(), and intra_recon().