34         return VA_INVALID_SURFACE;
 
   43     VADecPictureParameterBufferVP9 pic_param;
 
   49     pic_param = (VADecPictureParameterBufferVP9) {
 
   50         .frame_width                      = avctx->
width,
 
   51         .frame_height                     = avctx->
height,
 
   71             .last_ref_frame                = h->
h.
refidx[0],
 
   72             .last_ref_frame_sign_bias      = h->
h.
signbias[0],
 
   73             .golden_ref_frame              = h->
h.
refidx[1],
 
   74             .golden_ref_frame_sign_bias    = h->
h.
signbias[1],
 
   75             .alt_ref_frame                 = h->
h.
refidx[2],
 
   76             .alt_ref_frame_sign_bias       = h->
h.
signbias[2],
 
   89         .bit_depth                         = h->
h.
bpp,
 
   92     for (i = 0; i < 7; i++)
 
   96         for (i = 0; i < 3; i++)
 
   99         memset(pic_param.segment_pred_probs, 255, 
sizeof(pic_param.segment_pred_probs));
 
  102     for (i = 0; i < 8; i++) {
 
  106             pic_param.reference_frames[i] = VA_INVALID_ID;
 
  110                                             VAPictureParameterBufferType,
 
  111                                             &pic_param, 
sizeof(pic_param));
 
  134     VASliceParameterBufferVP9 slice_param;
 
  137     slice_param = (VASliceParameterBufferVP9) {
 
  138         .slice_data_size   = 
size,
 
  139         .slice_data_offset = 0,
 
  140         .slice_data_flag   = VA_SLICE_DATA_FLAG_ALL,
 
  143     for (i = 0; i < 8; i++) {
 
  144         slice_param.seg_param[i] = (VASegmentParameterVP9) {
 
  145             .segment_flags.fields = {
 
  157         memcpy(slice_param.seg_param[i].filter_level, h->
h.
segmentation.
feat[i].lflvl, 
sizeof(slice_param.seg_param[i].filter_level));
 
  161                                             &slice_param, 
sizeof(slice_param),
 
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame. 
static av_cold int init(AVCodecContext *avctx)
int ff_vaapi_decode_make_param_buffer(AVCodecContext *avctx, VAAPIDecodePicture *pic, int type, const void *data, size_t size)
static VASurfaceID ff_vaapi_get_surface_id(AVFrame *pic)
uint8_t log2_chroma_w
Amount to shift the luma width right to find the chroma width. 
int ff_vaapi_decode_uninit(AVCodecContext *avctx)
static av_cold int uninit(AVCodecContext *avctx)
int ff_vaapi_decode_issue(AVCodecContext *avctx, VAAPIDecodePicture *pic)
uint8_t log2_chroma_h
Amount to shift the luma height right to find the chroma height. 
static VASurfaceID vaapi_vp9_surface_id(const VP9Frame *vf)
static int vaapi_vp9_end_frame(AVCodecContext *avctx)
void * hwaccel_picture_private
const char * name
Name of the hardware accelerated codec. 
int ff_vaapi_decode_init(AVCodecContext *avctx)
int width
picture width / height. 
VASurfaceID output_surface
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
main external API structure. 
int ff_vaapi_decode_cancel(AVCodecContext *avctx, VAAPIDecodePicture *pic)
AVHWAccel ff_vp9_vaapi_hwaccel
static int vaapi_vp9_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
#define HWACCEL_CAP_ASYNC_SAFE
int ff_vaapi_decode_make_slice_buffer(AVCodecContext *avctx, VAAPIDecodePicture *pic, const void *params_data, size_t params_size, const void *slice_data, size_t slice_size)
enum AVPixelFormat sw_pix_fmt
Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx. 
static int vaapi_vp9_start_frame(AVCodecContext *avctx, av_unused const uint8_t *buffer, av_unused uint32_t size)