diff --git a/libmpcodecs/ad_hwac3.c b/libmpcodecs/ad_hwac3.c index 1ac2a5155e..dba0d98403 100644 --- a/libmpcodecs/ad_hwac3.c +++ b/libmpcodecs/ad_hwac3.c @@ -128,14 +128,17 @@ static int init(sh_audio_t *sh_audio) } if(ac3dts_fillbuff(sh_audio) < 0) { + a52_free(a52_state); mp_msg(MSGT_DECAUDIO, MSGL_ERR, "AC3/DTS sync failed\n"); return 0; } + sh_audio->context = a52_state; return 1; } static void uninit(sh_audio_t *sh) { + a52_free(sh->context); } static int control(sh_audio_t *sh,int cmd,void* arg, ...) diff --git a/libmpcodecs/ad_liba52.c b/libmpcodecs/ad_liba52.c index 604ed71c48..8c32c81319 100644 --- a/libmpcodecs/ad_liba52.c +++ b/libmpcodecs/ad_liba52.c @@ -253,6 +253,7 @@ while(sh_audio->channels>0){ static void uninit(sh_audio_t *sh) { + a52_free(a52_state); } static int control(sh_audio_t *sh,int cmd,void* arg, ...)