Merge branch 'master' into vaapi-ext
authorXiang, Haihao <haihao.xiang@intel.com>
Tue, 14 Feb 2012 05:56:05 +0000 (13:56 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Tue, 14 Feb 2012 05:56:05 +0000 (13:56 +0800)
Conflicts:
src/gen6_mfc.c
src/gen7_mfd.c
src/gen7_mfd.h
src/i965_drv_video.c
src/i965_drv_video.h
src/i965_encoder.c
src/i965_post_processing.c

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
1  2 
src/Makefile.am
src/gen6_mfc.c
src/gen6_mfd.c
src/gen7_mfd.c
src/i965_drv_video.c

diff --cc src/Makefile.am
@@@ -55,9 -54,9 +55,10 @@@ source_c = 
        i965_avc_bsd.c          \
        i965_avc_hw_scoreboard.c\
        i965_avc_ildb.c         \
+       i965_decoder_utils.c    \
        i965_drv_video.c        \
        i965_encoder.c          \
 +      i965_encoder_utils.c    \
        i965_media.c            \
        i965_media_h264.c       \
        i965_media_mpeg2.c      \
diff --cc src/gen6_mfc.c
@@@ -978,49 -838,20 +978,50 @@@ gen6_mfc_hrd_context_update(struct enco
  
  static VAStatus gen6_mfc_avc_prepare(VADriverContextP ctx, 
                                       struct encode_state *encode_state,
 -                                     struct gen6_encoder_context *gen6_encoder_context)
 +                                     struct intel_encoder_context *encoder_context)
  {
      struct i965_driver_data *i965 = i965_driver_data(ctx);
 -    struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context;
 +    struct gen6_mfc_context *mfc_context = encoder_context->mfc_context;
      struct object_surface *obj_surface;       
      struct object_buffer *obj_buffer;
 +    struct gen6_mfc_avc_surface_aux* gen6_avc_surface;
      dri_bo *bo;
 -    VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer;
 +    VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param_ext->buffer;
 +    VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param_ext->buffer;
 +    int rate_control_mode = pSequenceParameter->rate_control_method;   
      VAStatus vaStatus = VA_STATUS_SUCCESS;
 +    int i;
  
      /*Setup all the input&output object*/
 -    obj_surface = SURFACE(pPicParameter->reconstructed_picture);
 +
 +    /* Setup current frame and current direct mv buffer*/
 +    obj_surface = SURFACE(pPicParameter->CurrPic.picture_id);
      assert(obj_surface);
      i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420);
++
 +    if ( obj_surface->private_data == NULL) {
 +        gen6_avc_surface = calloc(sizeof(struct gen6_mfc_avc_surface_aux), 1);
 +        gen6_avc_surface->dmv_top = 
 +            dri_bo_alloc(i965->intel.bufmgr,
 +                         "Buffer",
 +                         68*8192, 
 +                         64);
 +        gen6_avc_surface->dmv_bottom = 
 +            dri_bo_alloc(i965->intel.bufmgr,
 +                         "Buffer",
 +                         68*8192, 
 +                         64);
 +        assert(gen6_avc_surface->dmv_top);
 +        assert(gen6_avc_surface->dmv_bottom);
 +        obj_surface->private_data = (void *)gen6_avc_surface;
 +        obj_surface->free_private_data = (void *)gen6_mfc_free_avc_surface; 
 +    }
 +    gen6_avc_surface = (struct gen6_mfc_avc_surface_aux*) obj_surface->private_data;
 +    mfc_context->direct_mv_buffers[NUM_MFC_DMV_BUFFERS - 2].bo = gen6_avc_surface->dmv_top;
 +    mfc_context->direct_mv_buffers[NUM_MFC_DMV_BUFFERS - 1].bo = gen6_avc_surface->dmv_bottom;
 +    dri_bo_reference(gen6_avc_surface->dmv_top);
 +    dri_bo_reference(gen6_avc_surface->dmv_bottom);
 +
      mfc_context->post_deblocking_output.bo = obj_surface->bo;
      dri_bo_reference(mfc_context->post_deblocking_output.bo);
  
diff --cc src/gen6_mfd.c
Simple merge
diff --cc src/gen7_mfd.c
Simple merge
Simple merge