workaround for double malloc if container_ffmpeg_stop is not called after file play to end

This commit is contained in:
Jacek Jendrzej
2019-02-21 19:46:27 +01:00
parent e9c53684e3
commit e51ad20c46

View File

@@ -1538,7 +1538,9 @@ int32_t container_ffmpeg_init_av_context(Context_t *context, char *filename, uin
0 == strncmp(filename, "file://", 7))
{
AVIOContext *avio_ctx = NULL;
if(custom_io_tab[AVIdx] == NULL)//workaround for double malloc if container_ffmpeg_stop is not called after file play to end
custom_io_tab[AVIdx] = malloc(sizeof(CustomIOCtx_t));
memset(custom_io_tab[AVIdx], 0x00, sizeof(CustomIOCtx_t));
custom_io_tab[AVIdx]->szFile = filename;
@@ -2727,7 +2729,11 @@ static int32_t container_ffmpeg_stop(Context_t *context)
fclose(io->pFile);
if (io->pMoovFile)
fclose(io->pMoovFile);
if(custom_io_tab[i] != NULL)
{
free(custom_io_tab[i]);
custom_io_tab[i] = NULL;
}
av_freep(&(avContextTab[i]->pb->buffer));
av_freep(&(avContextTab[i]->pb));
use_custom_io[i] = 0;