24 #include <vdpau/vdpau.h>
37 Picture *pic =
s->current_picture_ptr;
43 info->forward_reference = VDP_INVALID_HANDLE;
44 info->backward_reference = VDP_INVALID_HANDLE;
46 switch (
s->pict_type) {
48 if (
s->next_picture_ptr) {
50 assert(
ref != VDP_INVALID_HANDLE);
55 if (
s->last_picture_ptr) {
57 assert(
ref != VDP_INVALID_HANDLE);
62 info->slice_count = 0;
64 info->picture_type = 4;
66 info->picture_type =
s->pict_type - 1 +
s->pict_type / 3;
68 info->frame_coding_mode = v->
fcm ? (v->
fcm + 1) : 0;
105 Picture *pic =
s->current_picture_ptr;
113 pic_ctx->
info.
vc1.slice_count++;
123 profile = VDP_DECODER_PROFILE_VC1_SIMPLE;
126 profile = VDP_DECODER_PROFILE_VC1_MAIN;
129 profile = VDP_DECODER_PROFILE_VC1_ADVANCED;
138 #if CONFIG_WMV3_VDPAU_HWACCEL
static double val(void *priv, double ch)
Libavcodec external API header.
#define FF_PROFILE_VC1_MAIN
#define FF_PROFILE_VC1_SIMPLE
#define FF_PROFILE_VC1_ADVANCED
static av_cold int init(AVCodecContext *avctx)
int ff_vdpau_common_init(AVCodecContext *avctx, VdpDecoderProfile profile, int level)
int ff_vdpau_common_start_frame(struct vdpau_picture_context *pic_ctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
int ff_vdpau_common_uninit(AVCodecContext *avctx)
int ff_vdpau_add_buffer(struct vdpau_picture_context *pic_ctx, const uint8_t *buf, uint32_t size)
int ff_vdpau_common_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
@ AV_PICTURE_TYPE_P
Predicted.
@ AV_PICTURE_TYPE_B
Bi-dir predicted.
const AVHWAccel ff_wmv3_vdpau_hwaccel
#define HWACCEL_CAP_ASYNC_SAFE
@ AV_PIX_FMT_VDPAU
HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface.
main external API structure.
const char * name
Name of the hardware accelerated codec.
int max_b_frames
max number of B-frames for encoding
void * hwaccel_picture_private
Hardware accelerator private data.
int tfcntrflag
TFCNTR present.
int dquant
How qscale varies with MBs, 2 bits (not in Simple)
int multires
frame-level RESPIC syntax element present
int finterpflag
INTERPFRM present.
int extended_mv
Ext MV in P/B (not in Simple)
int extended_dmv
Additional extended dmv range at P/B-frame-level.
int panscanflag
NUMPANSCANWIN, TOPLEFT{X,Y}, BOTRIGHT{X,Y} present.
int psf
Progressive Segmented Frame.
uint8_t rangeredfrm
Frame decoding info for S/M profiles only.
int quantizer_mode
2 bits, quantizer mode used for sequence, see QUANT_*
int broadcast
TFF/RFF present.
int refdist_flag
REFDIST syntax element present in II, IP, PI or PP field picture headers.
int overlap
overlapped transforms in use
int postprocflag
Per-frame processing suggestion flag present.
enum FrameCodingMode fcm
Frame decoding info for Advanced profile.
int interlace
Progressive/interlaced (RPTFTM syntax element)
int resync_marker
could this stream contain resync markers
int fastuvmc
Rounding of qpel vector to hpel ? (not in Simple)
int rangered
RANGEREDFRM (range reduction) syntax element present at frame level.
int vstransform
variable-size [48]x[48] transform type + info
union VDPAUPictureInfo info
VDPAU picture information.
static int ref[MAX_W *MAX_W]
Public libavcodec VDPAU header.
int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx)
static uintptr_t ff_vdpau_get_surface_id(AVFrame *pic)
Extract VdpVideoSurface from an AVFrame.
static int vdpau_vc1_init(AVCodecContext *avctx)
static int vdpau_vc1_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
const AVHWAccel ff_vc1_vdpau_hwaccel
static int vdpau_vc1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)