{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct object_surface *obj_surface;
- VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer;
+ VAEncPictureParameterBufferH264Ext *pPicParameter = (VAEncPictureParameterBufferH264Ext *)encode_state->pic_param->buffer;
/*Setup surfaces state*/
/* current picture for encoding */
gen7_vme_source_surface_state(ctx, 1, obj_surface, gen6_encoder_context);
gen7_vme_media_source_surface_state(ctx, 4, obj_surface, gen6_encoder_context);
- if ( ! is_intra ) {
+ if (!is_intra) {
/* reference 0 */
- obj_surface = SURFACE(pPicParameter->reference_picture);
+ obj_surface = SURFACE(pPicParameter->ReferenceFrames[0].picture_id);
+ assert(obj_surface);
+ if ( obj_surface->bo != NULL)
+ gen7_vme_source_surface_state(ctx, 2, obj_surface, gen6_encoder_context);
+
+ /* reference 1 */
+ obj_surface = SURFACE(pPicParameter->ReferenceFrames[1].picture_id);
assert(obj_surface);
- gen7_vme_source_surface_state(ctx, 2, obj_surface, gen6_encoder_context);
- /* reference 1, FIXME: */
- // obj_surface = SURFACE(pPicParameter->reference_picture);
- // assert(obj_surface);
- //gen7_vme_source_surface_state(ctx, 3, obj_surface);
+ if ( obj_surface->bo != NULL )
+ gen7_vme_source_surface_state(ctx, 3, obj_surface, gen6_encoder_context);
}
/* VME output */