134     const int bitplane_index = n / 2;
   135     const int ff_bp_index = y * stride + 
x;
   138         v = ff_bp[0][ff_bp_index];
   140         v |= ff_bp[1][ff_bp_index] << 1;
   142         v |= ff_bp[2][ff_bp_index] << 2;
   143     bitplane[bitplane_index] = (bitplane[bitplane_index] << 4) | v;
   151     VAPictureParameterBufferVC1 *pic_param;
   153     av_dlog(avctx, 
"vaapi_vc1_start_frame()\n");
   161     pic_param->forward_reference_picture                            = VA_INVALID_ID;
   162     pic_param->backward_reference_picture                           = VA_INVALID_ID;
   163     pic_param->inloop_decoded_picture                               = VA_INVALID_ID;
   164     pic_param->sequence_fields.value                                = 0; 
   165     pic_param->sequence_fields.bits.pulldown                        = v->
broadcast;
   166     pic_param->sequence_fields.bits.interlace                       = v->
interlace;
   167     pic_param->sequence_fields.bits.tfcntrflag                      = v->
tfcntrflag;
   168     pic_param->sequence_fields.bits.finterpflag                     = v->
finterpflag;
   169     pic_param->sequence_fields.bits.psf                             = v->
psf;
   170     pic_param->sequence_fields.bits.multires                        = v->
multires;
   171     pic_param->sequence_fields.bits.overlap                         = v->
overlap;
   172     pic_param->sequence_fields.bits.syncmarker                      = s->
resync_marker;
   173     pic_param->sequence_fields.bits.rangered                        = v->
rangered;
   175 #if VA_CHECK_VERSION(0,32,0)   176     pic_param->sequence_fields.bits.profile                         = v->
profile;
   180     pic_param->entrypoint_fields.value                              = 0; 
   181     pic_param->entrypoint_fields.bits.broken_link                   = v->
broken_link;
   182     pic_param->entrypoint_fields.bits.closed_entry                  = v->
closed_entry;
   183     pic_param->entrypoint_fields.bits.panscan_flag                  = v->
panscanflag;
   184     pic_param->entrypoint_fields.bits.loopfilter                    = s->
loop_filter;
   185     pic_param->conditional_overlap_flag                             = v->
condover;
   186     pic_param->fast_uvmc_flag                                       = v->
fastuvmc;
   187     pic_param->range_mapping_fields.value                           = 0; 
   189     pic_param->range_mapping_fields.bits.luma                       = v->
range_mapy;
   191     pic_param->range_mapping_fields.bits.chroma                     = v->
range_mapuv;
   194     pic_param->mb_mode_table                                        = 0; 
   196     pic_param->rounding_control                                     = v->
rnd;
   197     pic_param->post_processing                                      = v->
postproc;
   198     pic_param->picture_resolution_index                             = v->
respic;
   199     pic_param->luma_scale                                           = v->
lumscale;
   200     pic_param->luma_shift                                           = v->
lumshift;
   201     pic_param->picture_fields.value                                 = 0; 
   202     pic_param->picture_fields.bits.picture_type                     = 
vc1_get_PTYPE(v);
   203     pic_param->picture_fields.bits.frame_coding_mode                = v->
fcm;
   204     pic_param->picture_fields.bits.top_field_first                  = v->
tff;
   205     pic_param->picture_fields.bits.is_first_field                   = v->
fcm == 0; 
   207     pic_param->raw_coding.value                                     = 0; 
   209     pic_param->raw_coding.flags.direct_mb                           = v->
dmb_is_raw;
   210     pic_param->raw_coding.flags.skip_mb                             = v->
skip_is_raw;
   211     pic_param->raw_coding.flags.field_tx                            = 0; 
   212     pic_param->raw_coding.flags.forward_mb                          = 0; 
   215     pic_param->bitplane_present.value                               = 0; 
   219     pic_param->bitplane_present.flags.bp_field_tx                   = 0; 
   220     pic_param->bitplane_present.flags.bp_forward_mb                 = 0; 
   223     pic_param->reference_fields.value                               = 0; 
   224     pic_param->reference_fields.bits.reference_distance_flag        = v->
refdist_flag;
   225     pic_param->reference_fields.bits.reference_distance             = 0; 
   226     pic_param->reference_fields.bits.num_reference_pictures         = 0; 
   227     pic_param->reference_fields.bits.reference_field_pic_indicator  = 0; 
   228     pic_param->mv_fields.value                                      = 0; 
   232     pic_param->mv_fields.bits.two_mv_block_pattern_table            = 0; 
   233     pic_param->mv_fields.bits.four_mv_switch                        = 0; 
   234     pic_param->mv_fields.bits.four_mv_block_pattern_table           = 0; 
   235     pic_param->mv_fields.bits.extended_mv_flag                      = v->
extended_mv;
   236     pic_param->mv_fields.bits.extended_mv_range                     = v->
mvrange;
   237     pic_param->mv_fields.bits.extended_dmv_flag                     = v->
extended_dmv;
   238     pic_param->mv_fields.bits.extended_dmv_range                    = 0; 
   239     pic_param->pic_quantizer_fields.value                           = 0; 
   240     pic_param->pic_quantizer_fields.bits.dquant                     = v->
dquant;
   241     pic_param->pic_quantizer_fields.bits.quantizer                  = v->
quantizer_mode;
   242     pic_param->pic_quantizer_fields.bits.half_qp                    = v->
halfpq;
   243     pic_param->pic_quantizer_fields.bits.pic_quantizer_scale        = v->
pq;
   244     pic_param->pic_quantizer_fields.bits.pic_quantizer_type         = v->
pquantizer;
   245     pic_param->pic_quantizer_fields.bits.dq_frame                   = v->
dquantfrm;
   246     pic_param->pic_quantizer_fields.bits.dq_profile                 = v->
dqprofile;
   249     pic_param->pic_quantizer_fields.bits.dq_binary_level            = v->
dqbilevel;
   250     pic_param->pic_quantizer_fields.bits.alt_pic_quantizer          = v->
altpq;
   251     pic_param->transform_fields.value                               = 0; 
   252     pic_param->transform_fields.bits.variable_sized_transform_flag  = v->
vstransform;
   253     pic_param->transform_fields.bits.mb_level_transform_type_flag   = v->
ttmbf;
   254     pic_param->transform_fields.bits.frame_level_transform_type     = 
vc1_get_TTFRM(v);
   255     pic_param->transform_fields.bits.transform_ac_codingset_idx1    = v->
c_ac_table_index;
   256     pic_param->transform_fields.bits.transform_ac_codingset_idx2    = v->
y_ac_table_index;
   257     pic_param->transform_fields.bits.intra_transform_dc_table       = v->
s.
dc_table_index;
   268     if (pic_param->bitplane_present.value) {
   276             ff_bp[1] = pic_param->bitplane_present.flags.bp_skip_mb    ? s->
mbskip_table       : 
NULL;
   282                 ff_bp[1] = pic_param->bitplane_present.flags.bp_skip_mb   ? s->
mbskip_table    : 
NULL;
   289             ff_bp[1] = pic_param->bitplane_present.flags.bp_ac_pred    ? v->
acpred_plane       : 
NULL;
   305             for (x = 0; x < s->
mb_width; x++, n++)
   317     VASliceParameterBufferVC1 *slice_param;
   319     av_dlog(avctx, 
"vaapi_vc1_decode_slice(): buffer %p, size %d\n", buffer, size);
   332     slice_param->slice_vertical_position = s->
mb_y;
   336 #if CONFIG_WMV3_VAAPI_HWACCEL   338     .
name           = 
"wmv3_vaapi",
 
uint8_t bfraction_lut_index
Index for BFRACTION value (see Table 40, reproduced into ff_vc1_bfraction_lut[]) 
int coded_width
Bitstream width / height, may be different from width/height e.g. 
int mv_type_is_raw
mv type mb plane is not coded 
int max_b_frames
maximum number of B-frames between non-B-frames Note: The output will be delayed by max_b_frames+1 re...
int extended_mv
Ext MV in P/B (not in Simple) 
int broadcast
TFF/RFF present. 
uint8_t rangeredfrm
Frame decoding info for S/M profiles only. 
HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the b...
av_dlog(ac->avr,"%d samples - audio_convert: %s to %s (%s)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt), use_generic?ac->func_descr_generic:ac->func_descr)
This structure is used to share data between the FFmpeg library and the client video application...
static int vc1_has_ACPRED_bitplane(VC1Context *v)
Check whether the ACPRED bitplane is present. 
MVModes
MV modes for P frames. 
int fastuvmc
Rounding of qpel vector to hpel ? (not in Simple) 
static int vc1_get_PTYPE(VC1Context *v)
Reconstruct bitstream PTYPE (7.1.1.4, index into Table-35) 
uint8_t * acpred_plane
AC prediction flags bitplane. 
void * hwaccel_context
Hardware accelerator context. 
int panscanflag
NUMPANSCANWIN, TOPLEFT{X,Y}, BOTRIGHT{X,Y} present. 
VLC ff_vc1_cbpcy_p_vlc[4]
int interlace
Progressive/interlaced (RPTFTM syntax element) 
int y_ac_table_index
Luma index from AC2FRM element. 
int c_ac_table_index
AC coding set indexes. 
int ttfrm
Transform type info present at frame level. 
int resync_marker
could this stream contain resync markers 
int profile
Sequence header data for all Profiles TODO: choose between ints, uint8_ts and monobit flags...
static int vc1_has_DIRECTMB_bitplane(VC1Context *v)
Check whether the DIRECTMB bitplane is present. 
static int get_bits_count(const GetBitContext *s)
int refdist_flag
REFDIST syntax element present in II, IP, PI or PP field picture headers. 
int mb_height
number of MBs horizontally & vertically 
uint8_t * over_flags_plane
Overflags bitplane. 
int psf
Progressive Segmented Frame. 
uint8_t ttmbf
Transform type flag. 
static int get_VAMvModeVC1(enum MVModes mv_mode)
Translate FFmpeg MV modes to VA API. 
int dmb_is_raw
direct mb plane is raw 
int overlap
overlapped transforms in use 
void * ff_vaapi_alloc_pic_param(struct vaapi_context *vactx, unsigned int size)
Allocate a new picture parameter buffer. 
static int vc1_has_OVERFLAGS_bitplane(VC1Context *v)
Check whether the OVERFLAGS bitplane is present. 
#define IS_MARKER(state, i, buf, buf_size)
uint8_t broken_link
Broken link flag (BROKEN_LINK syntax element) 
static int vaapi_vc1_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
const char * name
Name of the hardware accelerated codec. 
static int vc1_has_SKIPMB_bitplane(VC1Context *v)
Check whether the SKIPMB bitplane is present. 
int tfcntrflag
TFCNTR present. 
uint8_t * mbskip_table
used to avoid copy if macroblock skipped (for black regions for example) and used for b-frame encodin...
uint8_t mv_mode
Frame decoding info for all profiles. 
static int vc1_get_TTFRM(VC1Context *v)
Reconstruct bitstream TTFRM (7.1.1.41, Table-53) 
unsigned int slice_param_size
Size of a VASliceParameterBuffer element. 
uint8_t lumscale
Luma compensation parameters. 
static VAMvModeVC1 vc1_get_MVMODE2(VC1Context *v)
Reconstruct bitstream MVMODE2 (7.1.1.33) 
uint8_t closed_entry
Closed entry point flag (CLOSED_ENTRY syntax element) 
static VAMvModeVC1 vc1_get_MVMODE(VC1Context *v)
Reconstruct bitstream MVMODE (7.1.1.32) 
VLC * cbpcy_vlc
CBPCY VLC table. 
int rangered
RANGEREDFRM (range reduction) syntax element present at frame level. 
int finterpflag
INTERPFRM present. 
static int vc1_has_MVTYPEMB_bitplane(VC1Context *v)
Check whether the MVTYPEMB bitplane is present. 
int multires
frame-level RESPIC syntax element present 
main external API structure. 
VASliceParameterBufferBase * ff_vaapi_alloc_slice(struct vaapi_context *vactx, const uint8_t *buffer, uint32_t size)
Allocate a new slice descriptor for the input slice. 
int extended_dmv
Additional extended dmv range at P/B frame-level. 
uint8_t respic
Frame-level flag for resized images. 
int skip_is_raw
skip mb plane is not coded 
int quantizer_mode
2bits, quantizer mode used for sequence, see QUANT_* 
uint8_t * direct_mb_plane
bitplane for "direct" MBs 
uint8_t mvrange
Ranges:0 -> [-64n 63.f] x [-32, 31.f]1 -> [-128, 127.f] x [-64, 63.f]2 -> [-512, 511.f] x [-128, 127.f]3 -> [-1024, 1023.f] x [-256, 255.f]. 
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ... 
uint8_t * mv_type_mb_plane
bitplane for mv_type == (4MV) 
int vstransform
variable-size [48]x[48] transform type + info 
static void vc1_pack_bitplanes(uint8_t *bitplane, int n, const uint8_t *ff_bp[3], int x, int y, int stride)
Pack FFmpeg bitplanes into a VABitPlaneBuffer element. 
struct AVCodecContext * avctx
int mb_stride
mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11 ...
enum FrameCodingMode fcm
Frame decoding info for Advanced profile. 
Picture last_picture
copy of the previous picture structure. 
uint8_t dquantfrm
pquant parameters 
the buffer and buffer reference mechanism is intended to as much as expensive copies of that data while still allowing the filters to produce correct results The data is stored in buffers represented by AVFilterBuffer structures They must not be accessed but through references stored in AVFilterBufferRef structures Several references can point to the same buffer
static VASurfaceID ff_vaapi_get_surface_id(Picture *pic)
Extract VASurfaceID from a Picture. 
uint8_t pquantizer
Uniform (over sequence) quantizer in use. 
Picture next_picture
copy of the next picture structure. 
uint8_t * ff_vaapi_alloc_bitplane(struct vaapi_context *vactx, uint32_t size)
Allocate a new bit-plane buffer. 
AVHWAccel ff_vc1_vaapi_hwaccel
int ff_vaapi_mpeg_end_frame(AVCodecContext *avctx)
int dquant
How qscale varies with MBs, 2bits (not in Simple) 
uint8_t mv_mode2
Secondary MV coding mode (B frames) 
static int vaapi_vc1_start_frame(AVCodecContext *avctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
uint8_t halfpq
Uniform quant over image and qp+.5. 
uint8_t altpq
Current/alternate frame quantizer scale.