From: Xiang, Haihao Date: Tue, 16 Nov 2010 02:15:56 +0000 (+0800) Subject: i965_drv_video: fix mpeg2 decoding on Sandybridge X-Git-Tag: libva-1.0.7~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F82%2F682%2F1;p=profile%2Fivi%2Flibva.git i965_drv_video: fix mpeg2 decoding on Sandybridge Signed-off-by: Xiang, Haihao --- diff --git a/i965_drv_video/gen6_mfd.c b/i965_drv_video/gen6_mfd.c index c6fab96..71d9944 100644 --- a/i965_drv_video/gen6_mfd.c +++ b/i965_drv_video/gen6_mfd.c @@ -1181,12 +1181,19 @@ gen6_mfd_mpeg2_decode_init(VADriverContextP ctx, struct decode_state *decode_sta } /* reference picture */ - gen6_mfd_context->reference_surface[0].surface_id = pic_param->forward_reference_picture; + obj_surface = SURFACE(pic_param->forward_reference_picture); - if (pic_param->backward_reference_picture == VA_INVALID_ID) - gen6_mfd_context->reference_surface[1].surface_id = pic_param->forward_reference_picture; + if (obj_surface && obj_surface->bo) + gen6_mfd_context->reference_surface[0].surface_id = pic_param->forward_reference_picture; else + gen6_mfd_context->reference_surface[0].surface_id = VA_INVALID_ID; + + obj_surface = SURFACE(pic_param->backward_reference_picture); + + if (obj_surface && obj_surface->bo) gen6_mfd_context->reference_surface[1].surface_id = pic_param->backward_reference_picture; + else + gen6_mfd_context->reference_surface[1].surface_id = pic_param->forward_reference_picture; /* must do so !!! */ for (i = 2; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface); i++)