FFmpeg  4.0
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

◆ VP9_SYNCCODE

#define VP9_SYNCCODE   0x498342

Definition at line 38 of file vp9.c.

Referenced by decode_frame_header().

◆ HWACCEL_MAX

#define HWACCEL_MAX
Value:
CONFIG_VP9_D3D11VA_HWACCEL * 2 + \
CONFIG_VP9_NVDEC_HWACCEL + \
CONFIG_VP9_VAAPI_HWACCEL)
#define CONFIG_VP9_DXVA2_HWACCEL
Definition: config.h:1448

Referenced by update_size().

◆ assign

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

Referenced by update_size().

Function Documentation

◆ vp9_free_entries()

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

◆ vp9_alloc_entries()

static int vp9_alloc_entries ( AVCodecContext avctx,
int  n 
)
static

Definition at line 93 of file vp9.c.

Referenced by decode_frame_header().

◆ vp9_frame_unref()

static void vp9_frame_unref ( AVCodecContext avctx,
VP9Frame f 
)
static

◆ vp9_frame_alloc()

static int vp9_frame_alloc ( AVCodecContext avctx,
VP9Frame f 
)
static

Definition at line 105 of file vp9.c.

Referenced by vp9_decode_frame().

◆ vp9_frame_ref()

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

◆ update_size()

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

Definition at line 171 of file vp9.c.

Referenced by decode_frame_header().

◆ update_block_buffers()

static int update_block_buffers ( AVCodecContext avctx)
static

Definition at line 285 of file vp9.c.

Referenced by vp9_decode_frame().

◆ get_sbits_inv()

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

◆ inv_recenter_nonneg()

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

◆ update_prob()

static int update_prob ( VP56RangeCoder c,
int  p 
)
static

Definition at line 354 of file vp9.c.

Referenced by decode_frame_header().

◆ read_colorspace_details()

static int read_colorspace_details ( AVCodecContext avctx)
static

Definition at line 412 of file vp9.c.

Referenced by decode_frame_header().

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

◆ decode_sb()

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

◆ decode_sb_mem()

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

◆ set_tile_offset()

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

◆ free_buffers()

static void free_buffers ( VP9Context s)
static

Definition at line 1188 of file vp9.c.

Referenced by vp9_decode_free().

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

◆ decode_tiles()

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

◆ vp9_decode_frame()

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

Definition at line 1464 of file vp9.c.

◆ vp9_decode_flush()

static void vp9_decode_flush ( AVCodecContext avctx)
static

Definition at line 1685 of file vp9.c.

◆ init_frames()

static int init_frames ( AVCodecContext avctx)
static

Definition at line 1696 of file vp9.c.

Referenced by vp9_decode_init().

◆ vp9_decode_init()

static av_cold int vp9_decode_init ( AVCodecContext avctx)
static

Definition at line 1722 of file vp9.c.

Variable Documentation

◆ ff_vp9_decoder

AVCodec ff_vp9_decoder

Definition at line 1785 of file vp9.c.