23#include "config_components.h"
44 CUVIDPICPARAMS *pp = &
ctx->pic_params;
58 *pp = (CUVIDPICPARAMS) {
59 .PicWidthInMbs = (cur_frame->
width + 15) / 16,
60 .FrameHeightInMbs = (cur_frame->
height + 15) / 16,
61 .CurrPicIdx = cf->
idx,
63 .CodecSpecific.vp8 = {
64 .width = cur_frame->
width,
65 .height = cur_frame->
height,
67 .first_partition_size =
h->header_partition_size,
81 h->segmentation.enabled ?
82 h->segmentation.update_feature_data : 0,
99#if CONFIG_VP8_NVDEC_HWACCEL
107 .p.name =
"vp8_nvdec",
114 .frame_params = nvdec_vp8_cuda_frame_params,
121#if CONFIG_VP8_NVDEC_CUARRAY_HWACCEL
129 .p.name =
"vp8_nvdec_cuarray",
136 .frame_params = nvdec_vp8_cuarray_frame_params,
Libavcodec external API header.
const struct FFHWAccel ff_vp8_nvdec_cuarray_hwaccel
const struct FFHWAccel ff_vp8_nvdec_hwaccel
common internal api header.
int ff_nvdec_simple_end_frame(AVCodecContext *avctx)
int ff_nvdec_simple_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
int ff_nvdec_decode_init(AVCodecContext *avctx)
int ff_nvdec_get_ref_idx(AVFrame *frame)
int ff_nvdec_start_frame(AVCodecContext *avctx, AVFrame *frame)
int ff_nvdec_decode_uninit(AVCodecContext *avctx)
int ff_nvdec_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx, enum AVPixelFormat hw_format, int dpb_size, int supports_444)
static int nvdec_vp8_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx, enum AVPixelFormat hw_format)
static unsigned char safe_get_ref_idx(VP8Frame *frame)
static int nvdec_vp8_start_frame(AVCodecContext *avctx, const AVBufferRef *buffer_ref, const uint8_t *buffer, uint32_t size)
AVPixelFormat
Pixel format.
@ AV_PIX_FMT_CUDA
HW acceleration through CUDA.
@ AV_PIX_FMT_CUARRAY
hardware decoding through openharmony
A reference to a data buffer.
main external API structure.
struct AVCodecInternal * internal
Private context used for internal data.
void * hwaccel_priv_data
hwaccel-specific private data
This structure describes decoded (raw) audio or video data.
void * private_ref
RefStruct reference for internal use by a single libav* library.
This struct stores per-frame lavc-internal data and is attached to it via private_ref.
static AVFormatContext * ctx