Community
cancel
Showing results for 
Search instead for 
Did you mean: 
m3driver
Beginner
92 Views

Bug in mp3enc_api_fp.c

The memory for state->pMDCTSpec36 & state->pMDCTSpec12 is allocated using ippsMDCTFwdInitAlloc_32f() and should be freed in mp3encClose_layer3() using ippsMDCTFwdFree_32f() not ippsFree()

This was found in 5.3.4.087

0 Kudos
3 Replies
Vladimir_Dudnik
Employee
92 Views

Thanks, I'll let development team to know about your report. By the way, did you check IPP 6.0 beta where this issue might be already solved?
Regards,
Vladimir

m3driver
Beginner
92 Views

Quoting - vdudnik
Thanks, I'll let development team to know about your report. By the way, did you check IPP 6.0 beta where this issue might be already solved?
Regards,
Vladimir

No, the beta is considerably different in structure. Is it safe to swictch the beta yet? If not, when is release anticipated?

m3driver
Beginner
92 Views

I compiled the 6.0 beta and found it has a different memory leak - the psychoacoustic_block.IIRfilterState is not being free'd. mp3encClose() needs to change to:
[cpp]MP3Status mp3encClose(MP3Enc *state)
{
  if (NULL == state){
    return MP3_OK;
  }

  switch(state->com.header.layer) {
      case 1:
        break;
      case 2:
        break;
      case 3:
	{
	   int i;
	  mp3encClose_layer3(state);
	  for (i=0; i<4; i++)
	  {
	     ippsIIRFree_32f(state->psychoacoustic_block.IIRfilterState);
	  }
	}
       break;
      default:
        break;
  }

  return MP3_OK;
}[/cpp]

Reply