24 #include <vdpau/vdpau.h> 
   42     rf->surface             = VDP_INVALID_HANDLE;
 
   43     rf->is_long_term        = VDP_FALSE;
 
   44     rf->top_is_reference    = VDP_FALSE;
 
   45     rf->bottom_is_reference = VDP_FALSE;
 
   46     rf->field_order_cnt[0]  = 0;
 
   47     rf->field_order_cnt[1]  = 0;
 
   56     if (pic_structure == 0)
 
   59     rf->surface             = surface;
 
   72     VdpPictureInfoH264 *info = &pic_ctx->info.h264;
 
   75     VdpReferenceFrameH264 *rf = &info->referenceFrames[0];
 
   76 #define H264_RF_COUNT FF_ARRAY_ELEMS(info->referenceFrames) 
   78     for (list = 0; list < 2; ++list) {
 
   82         for (i = 0; i < ls; ++i) {
 
   84             VdpReferenceFrameH264 *rf2;
 
   85             VdpVideoSurface surface_ref;
 
   93             rf2 = &info->referenceFrames[0];
 
   95                 if ((rf2->surface      == surface_ref)   &&
 
   96                     (rf2->is_long_term == pic->
long_ref) &&
 
   97                     (rf2->frame_idx    == pic_frame_idx))
 
  127     VdpPictureInfoH264 *info = &pic_ctx->info.h264;
 
  128 #ifdef VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE 
  129     VdpPictureInfoH264Predictive *info2 = &pic_ctx->info.h264_predictive;
 
  133     info->slice_count                            = 0;
 
  141     info->mb_adaptive_frame_field_flag           = sps->
mb_aff && !info->field_pic_flag;
 
  149     info->pic_init_qp_minus26                    = pps->
init_qp - 26;
 
  150     info->num_ref_idx_l0_active_minus1           = pps->
ref_count[0] - 1;
 
  151     info->num_ref_idx_l1_active_minus1           = pps->
ref_count[1] - 1;
 
  153     info->pic_order_cnt_type                     = sps->
poc_type;
 
  157 #ifdef VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE 
  161     info->entropy_coding_mode_flag               = pps->
cabac;
 
  167            sizeof(info->scaling_lists_4x4));
 
  169            sizeof(info->scaling_lists_8x8[0]));
 
  171            sizeof(info->scaling_lists_8x8[1]));
 
  196     pic_ctx->info.h264.slice_count++;
 
  223         profile = VDP_DECODER_PROFILE_H264_BASELINE;
 
  226 #ifdef VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE 
  227         profile = VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE;
 
  231         profile = VDP_DECODER_PROFILE_H264_MAIN;
 
  234         profile = VDP_DECODER_PROFILE_H264_HIGH;
 
  236 #ifdef VDP_DECODER_PROFILE_H264_EXTENDED 
  238         profile = VDP_DECODER_PROFILE_H264_EXTENDED;
 
  244         profile = VDP_DECODER_PROFILE_H264_HIGH;
 
  246 #ifdef VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE 
  250         profile = VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE;
 
  258         level = VDP_DECODER_LEVEL_H264_1b;
 
  264     .
name           = 
"h264_vdpau",
 
  271     .frame_priv_data_size = 
sizeof(
struct vdpau_picture_context),
 
#define FF_PROFILE_H264_MAIN
 
const char const char void * val
 
int long_ref
1->long term reference 0->short term reference 
 
#define FF_PROFILE_H264_CAVLC_444
 
int chroma_qp_index_offset[2]
 
int ff_vdpau_common_start_frame(struct vdpau_picture_context *pic_ctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
 
#define FF_PROFILE_H264_INTRA
 
unsigned int ref_count[2]
num_ref_idx_l0/1_active_minus1 + 1 
 
void ff_h264_draw_horiz_band(const H264Context *h, H264SliceContext *sl, int y, int height)
 
Public libavcodec VDPAU header. 
 
static void vdpau_h264_clear_rf(VdpReferenceFrameH264 *rf)
 
H264Picture * long_ref[32]
 
AVHWAccel ff_h264_vdpau_hwaccel
 
#define FF_PROFILE_H264_HIGH_444_PREDICTIVE
 
uint8_t scaling_matrix4[6][16]
 
int deblocking_filter_parameters_present
deblocking_filter_parameters_present_flag 
 
#define FF_PROFILE_H264_BASELINE
 
int ff_vdpau_common_uninit(AVCodecContext *avctx)
 
int cabac
entropy_coding_mode_flag 
 
#define PICT_BOTTOM_FIELD
 
int transform_bypass
qpprime_y_zero_transform_bypass_flag 
 
static int vdpau_h264_start_frame(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
 
int redundant_pic_cnt_present
redundant_pic_cnt_present_flag 
 
#define FF_PROFILE_H264_EXTENDED
 
static void vdpau_h264_set_rf(VdpReferenceFrameH264 *rf, H264Picture *pic, int pic_structure)
 
H.264 / AVC / MPEG-4 part10 codec. 
 
static int32_t h264_foc(int foc)
 
int mb_aff
mb_adaptive_frame_field_flag 
 
int ff_vdpau_common_init(AVCodecContext *avctx, VdpDecoderProfile profile, int level)
 
int poc_type
pic_order_cnt_type 
 
int constrained_intra_pred
constrained_intra_pred_flag 
 
void * hwaccel_picture_private
hardware accelerator private data 
 
#define FF_PROFILE_H264_HIGH_422
 
#define FF_PROFILE_H264_HIGH
 
int weighted_pred
weighted_pred_flag 
 
int frame_num
frame_num (raw frame_num from slice header) 
 
int residual_color_transform_flag
residual_colour_transform_flag 
 
int delta_pic_order_always_zero_flag
 
uint8_t scaling_matrix8[6][64]
 
int ref_frame_count
num_ref_frames 
 
const char * name
Name of the hardware accelerated codec. 
 
static int vdpau_h264_end_frame(AVCodecContext *avctx)
 
static int vdpau_h264_init(AVCodecContext *avctx)
 
static void vdpau_h264_set_reference_frames(AVCodecContext *avctx)
 
int init_qp
pic_init_qp_minus26 + 26 
 
H264SliceContext * slice_ctx
 
int direct_8x8_inference_flag
 
int pic_order_present
pic_order_present_flag 
 
Libavcodec external API header. 
 
static const uint8_t start_code_prefix[3]
 
H264Picture * short_ref[32]
 
int field_poc[2]
top/bottom POC 
 
main external API structure. 
 
HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface. 
 
H264Picture * cur_pic_ptr
 
int log2_max_poc_lsb
log2_max_pic_order_cnt_lsb_minus4 
 
int transform_8x8_mode
transform_8x8_mode_flag 
 
int pic_id
pic_num (short -> no wrap version of pic_num, pic_num & max_pic_num; long -> long_pic_num) ...
 
common internal api header. 
 
int ff_vdpau_add_buffer(struct vdpau_picture_context *pic_ctx, const uint8_t *buf, uint32_t size)
 
int log2_max_frame_num
log2_max_frame_num_minus4 + 4 
 
int ff_vdpau_common_end_frame(AVCodecContext *avctx, AVFrame *frame, struct vdpau_picture_context *pic_ctx)
 
static int vdpau_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
 
#define FF_PROFILE_H264_CONSTRAINED_BASELINE
 
#define FF_PROFILE_H264_HIGH_10
 
static uintptr_t ff_vdpau_get_surface_id(AVFrame *pic)
Extract VdpVideoSurface from an AVFrame. 
 
int short_ref_count
number of actual short term references