diff --git a/libeplayer3-arm/container/container_ffmpeg.c b/libeplayer3-arm/container/container_ffmpeg.c index 143d68f..5a66ead 100644 --- a/libeplayer3-arm/container/container_ffmpeg.c +++ b/libeplayer3-arm/container/container_ffmpeg.c @@ -2509,6 +2509,10 @@ int32_t container_ffmpeg_update_tracks(Context_t *context, char *filename, int32 ffmpeg_printf(1, "cAVIdx[%d]: MANAGER_ADD track AUDIO\n"); if (context->manager->audio->Command(context, MANAGER_ADD, &track) < 0) { + if(track.aacbuf){ + free(track.aacbuf); + track.aacbuf = NULL; + } /* konfetti: fixme: is this a reason to return with error? */ ffmpeg_err("failed to add track %d\n", n); } diff --git a/libeplayer3-arm/manager/audio.c b/libeplayer3-arm/manager/audio.c index 9e029e8..540d432 100644 --- a/libeplayer3-arm/manager/audio.c +++ b/libeplayer3-arm/manager/audio.c @@ -107,6 +107,10 @@ static int ManagerAdd(Context_t *context, Track_t track) if (Tracks[i].Id == track.Id) { Tracks[i].pending = 0; + if(track.aacbuf){ + free(track.aacbuf); + track.aacbuf = NULL; + } return cERR_AUDIO_MGR_NO_ERROR; } }