FFmpeg
Macros | Functions | Variables
vp9.c File Reference
#include "avcodec.h"
#include "get_bits.h"
#include "hwaccel.h"
#include "internal.h"
#include "profiles.h"
#include "thread.h"
#include "videodsp.h"
#include "vp56.h"
#include "vp9.h"
#include "vp9data.h"
#include "vp9dec.h"
#include "libavutil/avassert.h"
#include "libavutil/pixdesc.h"

Go to the source code of this file.

Macros

#define VP9_SYNCCODE   0x498342
 
#define HWACCEL_MAX
 
#define assign(var, type, n)   var = (type) p; p += s->sb_cols * (n) * sizeof(*var)
 

Functions

static void vp9_free_entries (AVCodecContext *avctx)
 
static int vp9_alloc_entries (AVCodecContext *avctx, int n)
 
static void vp9_frame_unref (AVCodecContext *avctx, VP9Frame *f)
 
static int vp9_frame_alloc (AVCodecContext *avctx, VP9Frame *f)
 
static int vp9_frame_ref (AVCodecContext *avctx, VP9Frame *dst, VP9Frame *src)
 
static int update_size (AVCodecContext *avctx, int w, int h)
 
static int update_block_buffers (AVCodecContext *avctx)
 
static av_always_inline int get_sbits_inv (GetBitContext *gb, int n)
 
static av_always_inline int inv_recenter_nonneg (int v, int m)
 
static int update_prob (VP56RangeCoder *c, int p)
 
static int read_colorspace_details (AVCodecContext *avctx)
 
static int decode_frame_header (AVCodecContext *avctx, const uint8_t *data, int size, int *ref)
 
static void decode_sb (VP9TileData *td, int row, int col, VP9Filter *lflvl, ptrdiff_t yoff, ptrdiff_t uvoff, enum BlockLevel bl)
 
static void decode_sb_mem (VP9TileData *td, int row, int col, VP9Filter *lflvl, ptrdiff_t yoff, ptrdiff_t uvoff, enum BlockLevel bl)
 
static void set_tile_offset (int *start, int *end, int idx, int log2_n, int n)
 
static void free_buffers (VP9Context *s)
 
static av_cold int vp9_decode_free (AVCodecContext *avctx)
 
static int decode_tiles (AVCodecContext *avctx, const uint8_t *data, int size)
 
static int vp9_decode_frame (AVCodecContext *avctx, void *frame, int *got_frame, AVPacket *pkt)
 
static void vp9_decode_flush (AVCodecContext *avctx)
 
static int init_frames (AVCodecContext *avctx)
 
static av_cold int vp9_decode_init (AVCodecContext *avctx)
 

Variables

AVCodec ff_vp9_decoder
 

Macro Definition Documentation

#define VP9_SYNCCODE   0x498342

Definition at line 38 of file vp9.c.

Referenced by decode_frame_header().

#define HWACCEL_MAX
Value:
(CONFIG_VP9_DXVA2_HWACCEL + \
CONFIG_VP9_D3D11VA_HWACCEL * 2 + \
CONFIG_VP9_NVDEC_HWACCEL + \
CONFIG_VP9_VAAPI_HWACCEL)

Referenced by update_size().

#define assign (   var,
  type,
  n 
)    var = (type) p; p += s->sb_cols * (n) * sizeof(*var)

Referenced by update_size().

Function Documentation

static void vp9_free_entries ( AVCodecContext avctx)
static

Definition at line 92 of file vp9.c.

Referenced by decode_frame_header(), and vp9_decode_free().

static int vp9_alloc_entries ( AVCodecContext avctx,
int  n 
)
static

Definition at line 93 of file vp9.c.

Referenced by decode_frame_header().

static void vp9_frame_unref ( AVCodecContext avctx,
VP9Frame f 
)
static
static int vp9_frame_alloc ( AVCodecContext avctx,
VP9Frame f 
)
static

Definition at line 105 of file vp9.c.

Referenced by vp9_decode_frame().

static int vp9_frame_ref ( AVCodecContext avctx,
VP9Frame dst,
VP9Frame src 
)
static

Definition at line 141 of file vp9.c.

Referenced by vp9_decode_frame(), and vp9_decode_init().

static int update_size ( AVCodecContext avctx,
int  w,
int  h 
)
static

Definition at line 171 of file vp9.c.

Referenced by decode_frame_header().

static int update_block_buffers ( AVCodecContext avctx)
static

Definition at line 285 of file vp9.c.

Referenced by vp9_decode_frame().

static av_always_inline int get_sbits_inv ( GetBitContext gb,
int  n 
)
static

Definition at line 338 of file vp9.c.

Referenced by decode_frame_header().

static av_always_inline int inv_recenter_nonneg ( int  v,
int  m 
)
static

Definition at line 344 of file vp9.c.

Referenced by update_prob().

static int update_prob ( VP56RangeCoder c,
int  p 
)
static

Definition at line 354 of file vp9.c.

Referenced by decode_frame_header().

static int read_colorspace_details ( AVCodecContext avctx)
static

Definition at line 412 of file vp9.c.

Referenced by decode_frame_header().

static int decode_frame_header ( AVCodecContext avctx,
const uint8_t data,
int  size,
int ref 
)
static

Definition at line 474 of file vp9.c.

Referenced by vp9_decode_frame().

static void decode_sb ( VP9TileData td,
int  row,
int  col,
VP9Filter lflvl,
ptrdiff_t  yoff,
ptrdiff_t  uvoff,
enum BlockLevel  bl 
)
static

Definition at line 1052 of file vp9.c.

Referenced by decode_tiles().

static void decode_sb_mem ( VP9TileData td,
int  row,
int  col,
VP9Filter lflvl,
ptrdiff_t  yoff,
ptrdiff_t  uvoff,
enum BlockLevel  bl 
)
static

Definition at line 1131 of file vp9.c.

Referenced by decode_tiles().

static void set_tile_offset ( int start,
int end,
int  idx,
int  log2_n,
int  n 
)
static

Definition at line 1180 of file vp9.c.

Referenced by decode_tiles().

static void free_buffers ( VP9Context s)
static

Definition at line 1188 of file vp9.c.

Referenced by vp9_decode_free().

static av_cold int vp9_decode_free ( AVCodecContext avctx)
static

Definition at line 1199 of file vp9.c.

Referenced by init_frames().

static int decode_tiles ( AVCodecContext avctx,
const uint8_t data,
int  size 
)
static

Definition at line 1224 of file vp9.c.

Referenced by vp9_decode_frame().

static int vp9_decode_frame ( AVCodecContext avctx,
void frame,
int got_frame,
AVPacket pkt 
)
static

Definition at line 1467 of file vp9.c.

static void vp9_decode_flush ( AVCodecContext avctx)
static

Definition at line 1688 of file vp9.c.

static int init_frames ( AVCodecContext avctx)
static

Definition at line 1699 of file vp9.c.

Referenced by vp9_decode_init().

static av_cold int vp9_decode_init ( AVCodecContext avctx)
static

Definition at line 1725 of file vp9.c.

Variable Documentation

AVCodec ff_vp9_decoder

Definition at line 1788 of file vp9.c.