FFmpeg
Macros | Functions | Variables
vp9.c File Reference
#include "config_components.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "decode.h"
#include "get_bits.h"
#include "hwconfig.h"
#include "profiles.h"
#include "thread.h"
#include "threadframe.h"
#include "pthread_internal.h"
#include "videodsp.h"
#include "vp89_rac.h"
#include "vp9.h"
#include "vp9data.h"
#include "vp9dec.h"
#include "vpx_rac.h"
#include "libavutil/avassert.h"
#include "libavutil/pixdesc.h"
#include "libavutil/video_enc_params.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 int vp9_alloc_entries (AVCodecContext *avctx, int n)
 
static void vp9_tile_data_free (VP9TileData *td)
 
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 (VPXRangeCoder *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_export_enc_params (VP9Context *s, VP9Frame *frame)
 
static int vp9_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *pkt)
 
static void vp9_decode_flush (AVCodecContext *avctx)
 
static av_cold int vp9_decode_init (AVCodecContext *avctx)
 

Variables

const FFCodec ff_vp9_decoder
 

Macro Definition Documentation

◆ VP9_SYNCCODE

#define VP9_SYNCCODE   0x498342

Definition at line 46 of file vp9.c.

◆ HWACCEL_MAX

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

◆ assign

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

Function Documentation

◆ vp9_alloc_entries()

static int vp9_alloc_entries ( AVCodecContext avctx,
int  n 
)
static

Definition at line 88 of file vp9.c.

Referenced by decode_frame_header().

◆ vp9_tile_data_free()

static void vp9_tile_data_free ( VP9TileData td)
static

Definition at line 91 of file vp9.c.

Referenced by decode_frame_header(), free_buffers(), update_block_buffers(), and update_size().

◆ 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 107 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 153 of file vp9.c.

Referenced by vp9_decode_frame().

◆ update_size()

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

Definition at line 183 of file vp9.c.

Referenced by decode_frame_header().

◆ update_block_buffers()

static int update_block_buffers ( AVCodecContext avctx)
static

Definition at line 313 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 374 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 380 of file vp9.c.

Referenced by update_prob().

◆ update_prob()

static int update_prob ( VPXRangeCoder c,
int  p 
)
static

Definition at line 390 of file vp9.c.

Referenced by decode_frame_header().

◆ read_colorspace_details()

static int read_colorspace_details ( AVCodecContext avctx)
static

Definition at line 448 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 510 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 1095 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 1174 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 1223 of file vp9.c.

Referenced by decode_tiles().

◆ free_buffers()

static void free_buffers ( VP9Context s)
static

Definition at line 1231 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 1240 of file vp9.c.

◆ decode_tiles()

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

Definition at line 1266 of file vp9.c.

Referenced by vp9_decode_frame().

◆ vp9_export_enc_params()

static int vp9_export_enc_params ( VP9Context s,
VP9Frame frame 
)
static

Definition at line 1505 of file vp9.c.

Referenced by vp9_decode_frame().

◆ vp9_decode_frame()

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

Definition at line 1557 of file vp9.c.

◆ vp9_decode_flush()

static void vp9_decode_flush ( AVCodecContext avctx)
static

Definition at line 1785 of file vp9.c.

◆ vp9_decode_init()

static av_cold int vp9_decode_init ( AVCodecContext avctx)
static

Definition at line 1796 of file vp9.c.

Variable Documentation

◆ ff_vp9_decoder

const FFCodec ff_vp9_decoder

Definition at line 1873 of file vp9.c.