/*! *********************************************************************** * \brief * Free Q matrix arrays *********************************************************************** */ void free_QMatrix () { free(qp_rem_matrix); free(qp_per_matrix); free_mem4Dint(LevelScale4x4Luma, 2, 6); free_mem5Dint(LevelScale4x4Chroma, 2, 2, 6); free_mem4Dint(LevelScale8x8Luma, 2, 6); free_mem4Dint(InvLevelScale4x4Luma, 2, 6); free_mem5Dint(InvLevelScale4x4Chroma, 2, 2, 6); free_mem4Dint(InvLevelScale8x8Luma, 2, 6); }
/*! *********************************************************************** * \brief * Free Q matrix arrays *********************************************************************** */ void free_QOffsets () { int max_qp_per_luma = (3 + 6*(input->BitDepthLuma) - MIN_QP)/6 + 1; int max_qp_per_cr = (3 + 6*(input->BitDepthChroma) - MIN_QP)/6 + 1; int max_qp_per = imax(max_qp_per_luma,max_qp_per_cr); free_mem4Dint(LevelOffset4x4Luma, 2, max_qp_per); free_mem5Dint(LevelOffset4x4Chroma, 2, 2, max_qp_per); free_mem4Dint(LevelOffset8x8Luma, 2, max_qp_per); free_mem2Dshort(OffsetList8x8); free_mem2Dshort(OffsetList4x4); free_mem2Dshort(OffsetList8x8input); free_mem2Dshort(OffsetList4x4input); }
/*! ************************************************************************ * \brief * Free allocated memory of frame size related global buffers * buffers are defined in global.h, allocated memory is allocated in * int init_global_buffers() * * \par Input: * Input Parameters struct inp_par *inp, Image Parameters struct img_par *img * * \par Output: * none * ************************************************************************ */ void free_global_buffers(struct inp_par *inp, struct img_par *img) { free_mem2D (imgY_ref); free_mem3D (imgUV_ref,2); #ifndef STATIC_ALLOC // CAVLC free mem free_mem3Dint(img->nz_coeff, img->FrameSizeInMbs); free_mem2Dint(img->siblock); // free mem, allocated for structure img if (img->mb_data != NULL) free(img->mb_data); free (img->intra_block); free_mem2Dint (img->ipredmode); #endif free_mem2Dint(img->field_anchor); free_mem3Dint(img->wp_weight, 2); free_mem3Dint(img->wp_offset, 2); free_mem4Dint(img->wbp_weight, 2, MAX_REFERENCE_PICTURES); global_init_done = 0; }
/*! ************************************************************************ * \brief * Free allocated memory of frame size related global buffers * buffers are defined in global.h, allocated memory is allocated in * int init_global_buffers() * * \par Input: * Input Parameters struct inp_par *inp, Image Parameters struct img_par *img * * \par Output: * none * ************************************************************************ */ void free_global_buffers() { free_mem2D (imgY_ref); free_mem3D (imgUV_ref,2); // CAVLC free mem free_mem3Dint(img->nz_coeff, img->oldFrameSizeInMbs); free_mem2Dint(img->siblock); // free mem, allocated for structure img if (img->mb_data != NULL) free(img->mb_data); free (img->intra_block); free_mem2Dint (img->ipredmode); free_mem2Dint(img->field_anchor); free_mem3Dint(img->wp_weight, 2); free_mem3Dint(img->wp_offset, 6); free_mem4Dint(img->wbp_weight, 6, MAX_REFERENCE_PICTURES); global_init_done = 0; }
/*! ************************************************************************ * \brief * Free allocated memory of frame size related global buffers * buffers are defined in global.h, allocated memory is allocated in * int init_global_buffers() * * \par Input: * Input Parameters struct inp_par *inp, Image Parameters struct img_par *img * * \par Output: * none * *----------------------------------------------------------------------- * Function Argument List Changed [Removing Global Variables] * Input parameters added are * - h264_decoder* dec_params * * <*****@*****.**> ************************************************************************ */ void free_global_buffers_baseline( h264_decoder* dec_params ) { ImageParameters* img = dec_params->img; // h264_free (dec_params->img->nz_coeff); h264_free (dec_params->img->nz_coeff1); // free mem, allocated for structure img // if (img->mb_data != NULL) // h264_free(img->mb_data); // faisal h264_free(img->slice_nr); h264_free(img->ei_flag); /////////////////////////////////////////////////////////////////////////////////// // memory deallocation for the new mb_data structure in the ImageParam structure // /////////////////////////////////////////////////////////////////////////////////// h264_free(img->mb_data1.cbp_blk); h264_free(img->mb_data1.LFAlphaC0Offset); h264_free(img->mb_data1.LFBetaOffset); h264_free(img->mb_data1.LFDisableIdc); h264_free(img->mb_data1.mb_type); h264_free(img->mb_data1.partition); h264_free(img->mb_data1.mbAvailA); h264_free(img->mb_data1.mbAvailB); h264_free(img->mb_data1.NoMbPartLessThan8x8Flag); h264_free(img->mb_data1.qp); /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// h264_free (dec_params->img->intra_block); free_mem2D ( (byte **) dec_params->img->ipredmode); free_mem3Dint(dec_params->img->wp_weight, 2); free_mem3Dint(dec_params->img->wp_offset, 6); free_mem4Dint(dec_params->img->wbp_weight, 6, MAX_REFERENCE_PICTURES); /* End of Change*/ // h264_free (dec_params->img->quad); delete_contexts_MotionInfo(dec_params->mot_ctx); delete_contexts_TextureInfo(dec_params->tex_ctx); dec_params->global_init_done = 0; }
/*! ************************************************************************ * \brief * Free allocated memory of frame size related global buffers * buffers are defined in global.h, allocated memory is allocated in * int init_global_buffers() * * \par Input: * Input Parameters struct inp_par *inp, Image Parameters struct img_par *img * * \par Output: * none * ************************************************************************ */ void free_global_buffers() { free_mem2Dpel (imgY_ref); if (imgUV_ref) free_mem3Dpel (imgUV_ref,2); // CAVLC free mem free_mem3Dint(img->nz_coeff, img->oldFrameSizeInMbs); free_mem2Dint(img->siblock); // free mem, allocated for structure img if (img->mb_data != NULL) free(img->mb_data); free (img->intra_block); free_mem2Dint (img->ipredmode); free_mem2Dint(img->field_anchor); free_mem3Dint(img->wp_weight, 2); free_mem3Dint(img->wp_offset, 6); free_mem4Dint(img->wbp_weight, 6, MAX_REFERENCE_PICTURES); free (img->quad); #ifdef ADAPTIVE_FILTER free_mem2Ddouble (tmp_coef); #endif #ifdef ADAPTIVE_LOOP_FILTER FreeALFGlobalBurrers(); #endif global_init_done = 0; }