diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2010-11-15 15:05:29 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2010-12-06 12:50:05 +0800 |
commit | 3630d4dfcf1e023c9d749be63a9392db6c7dda02 (patch) | |
tree | 8c45cf9e9e53daba689ba14924eee98c4ce4d7e9 | |
parent | 9d9cd9adc3812a251839db571113189d65d8a4d9 (diff) | |
download | libva-3630d4dfcf1e023c9d749be63a9392db6c7dda02.tar.gz |
i965_drv_video: release mfd context
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-rw-r--r-- | i965_drv_video/gen6_mfd.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/i965_drv_video/gen6_mfd.c b/i965_drv_video/gen6_mfd.c index 9da9e6d..c6fab96 100644 --- a/i965_drv_video/gen6_mfd.c +++ b/i965_drv_video/gen6_mfd.c @@ -1425,27 +1425,32 @@ gen6_mfd_terminate(VADriverContextP ctx) struct i965_media_state *media_state = &i965->media_state; struct gen6_mfd_context *gen6_mfd_context = media_state->private_context; - dri_bo_unreference(gen6_mfd_context->post_deblocking_output.bo); - gen6_mfd_context->post_deblocking_output.bo = NULL; + if (gen6_mfd_context) { + dri_bo_unreference(gen6_mfd_context->post_deblocking_output.bo); + gen6_mfd_context->post_deblocking_output.bo = NULL; - dri_bo_unreference(gen6_mfd_context->pre_deblocking_output.bo); - gen6_mfd_context->pre_deblocking_output.bo = NULL; + dri_bo_unreference(gen6_mfd_context->pre_deblocking_output.bo); + gen6_mfd_context->pre_deblocking_output.bo = NULL; - dri_bo_unreference(gen6_mfd_context->intra_row_store_scratch_buffer.bo); - gen6_mfd_context->intra_row_store_scratch_buffer.bo = NULL; + dri_bo_unreference(gen6_mfd_context->intra_row_store_scratch_buffer.bo); + gen6_mfd_context->intra_row_store_scratch_buffer.bo = NULL; - dri_bo_unreference(gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); - gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; + dri_bo_unreference(gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); + gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; - dri_bo_unreference(gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); - gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; + dri_bo_unreference(gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); + gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; - dri_bo_unreference(gen6_mfd_context->mpr_row_store_scratch_buffer.bo); - gen6_mfd_context->mpr_row_store_scratch_buffer.bo = NULL; + dri_bo_unreference(gen6_mfd_context->mpr_row_store_scratch_buffer.bo); + gen6_mfd_context->mpr_row_store_scratch_buffer.bo = NULL; - dri_bo_unreference(gen6_mfd_context->bitplane_read_buffer.bo); - gen6_mfd_context->bitplane_read_buffer.bo = NULL; + dri_bo_unreference(gen6_mfd_context->bitplane_read_buffer.bo); + gen6_mfd_context->bitplane_read_buffer.bo = NULL; + + free(gen6_mfd_context); + } + media_state->private_context = NULL; return True; } |