/*! *********************************************************************** * \brief * Free the Image structure * \par Input: * Image Parameters VideoParameters *p_Vid *********************************************************************** */ static void free_img( VideoParameters *p_Vid) { int i; if (p_Vid != NULL) { if ( p_Vid->p_Inp->FileFormat == PAR_OF_ANNEXB ) { free_annex_b (&p_Vid->annex_b); } #if (ENABLE_OUTPUT_TONEMAPPING) if (p_Vid->seiToneMapping != NULL) { free (p_Vid->seiToneMapping); p_Vid->seiToneMapping = NULL; } #endif // Free new dpb layers for (i = 0; i < MAX_NUM_DPB_LAYERS; i++) { if (p_Vid->p_Dpb_layer[i] != NULL) { free (p_Vid->p_Dpb_layer[i]); p_Vid->p_Dpb_layer[i] = NULL; } if(p_Vid->p_EncodePar[i]) { free(p_Vid->p_EncodePar[i]); p_Vid->p_EncodePar[i] = NULL; } if(p_Vid->p_LayerPar[i]) { free(p_Vid->p_LayerPar[i]); p_Vid->p_LayerPar[i] = NULL; } } if (p_Vid->snr != NULL) { free (p_Vid->snr); p_Vid->snr = NULL; } if (p_Vid->old_slice != NULL) { free (p_Vid->old_slice); p_Vid->old_slice = NULL; } if(p_Vid->pNextSlice) { free_slice(p_Vid->pNextSlice); p_Vid->pNextSlice=NULL; } if(p_Vid->ppSliceList) { int i; for(i=0; i<p_Vid->iNumOfSlicesAllocated; i++) if(p_Vid->ppSliceList[i]) free_slice(p_Vid->ppSliceList[i]); free(p_Vid->ppSliceList); } if(p_Vid->nalu) { FreeNALU(p_Vid->nalu); p_Vid->nalu=NULL; } //free memory; FreeDecPicList(p_Vid->pDecOuputPic); if(p_Vid->pNextPPS) { FreePPS(p_Vid->pNextPPS); p_Vid->pNextPPS = NULL; } // clear decoder statistics #if ENABLE_DEC_STATS delete_dec_stats(p_Vid->dec_stats); free (p_Vid->dec_stats); #endif free (p_Vid); p_Vid = NULL; } }
/*! *********************************************************************** * \brief * Free the Image structure * \par Input: * Image Parameters VideoParameters *p_Vid *********************************************************************** */ static void free_img( VideoParameters *p_Vid) { //free_mem3Dint(p_Vid->fcf ); if (p_Vid != NULL) { free_annex_b (p_Vid); #if (ENABLE_OUTPUT_TONEMAPPING) if (p_Vid->seiToneMapping != NULL) { free (p_Vid->seiToneMapping); p_Vid->seiToneMapping = NULL; } #endif if (p_Vid->bitsfile != NULL) { free (p_Vid->bitsfile); p_Vid->bitsfile = NULL; } if (p_Vid->p_Dpb != NULL) { free (p_Vid->p_Dpb); p_Vid->p_Dpb = NULL; } if (p_Vid->snr != NULL) { free (p_Vid->snr); p_Vid->snr = NULL; } if (p_Vid->old_slice != NULL) { free (p_Vid->old_slice); p_Vid->old_slice = NULL; } if(p_Vid->pNextSlice) { free_slice(p_Vid->pNextSlice); p_Vid->pNextSlice=NULL; } if(p_Vid->ppSliceList) { int i; for(i=0; i<p_Vid->iNumOfSlicesAllocated; i++) if(p_Vid->ppSliceList[i]) free_slice(p_Vid->ppSliceList[i]); free(p_Vid->ppSliceList); } if(p_Vid->nalu) { FreeNALU(p_Vid->nalu); p_Vid->nalu=NULL; } //free memory; FreeDecPicList(p_Vid->pDecOuputPic); if(p_Vid->pNextPPS) { FreePPS(p_Vid->pNextPPS); p_Vid->pNextPPS = NULL; } free (p_Vid); p_Vid = NULL; } }