From 193a6f0e4734b35e2bcff4867e894ee3c9b1ff7d Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 1 Mar 2019 23:43:02 +0100 Subject: [PATCH] Revert "Revert "try fix to call container_ffmpeg_stop on file EOF"" This reverts commit d7295b8630994d72424c87e6a491181bf3774a53. Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/3ff8f3f26c1dbb28e37ecbc860dffa20ae83f4e4 Author: vanhofen Date: 2019-03-01 (Fri, 01 Mar 2019) ------------------ This commit was generated by Migit --- libeplayer3-arm/container/container_ffmpeg.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libeplayer3-arm/container/container_ffmpeg.c b/libeplayer3-arm/container/container_ffmpeg.c index 074155c..4692b4e 100644 --- a/libeplayer3-arm/container/container_ffmpeg.c +++ b/libeplayer3-arm/container/container_ffmpeg.c @@ -126,6 +126,7 @@ static int32_t container_ffmpeg_seek(Context_t *context, int64_t sec, uint8_t ab static int32_t container_ffmpeg_get_length(Context_t *context, int64_t *length); static int64_t calcPts(uint32_t avContextIdx, AVStream *stream, int64_t pts); static int64_t doCalcPts(int64_t start_time, const AVRational time_base, int64_t pts); +static int32_t container_ffmpeg_stop(Context_t *context); /* Progressive playback means that we play local file * but this local file can grows up, for example @@ -1352,6 +1353,11 @@ static void FFMPEGThread(Context_t *context) do_seek_target_seconds = 0; PlaybackDieNow(1); + if(context && context->playback) + { + container_ffmpeg_stop(context); + } + ffmpeg_printf(10, "terminating\n"); } @@ -1533,8 +1539,7 @@ 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)); + custom_io_tab[AVIdx] = malloc(sizeof(CustomIOCtx_t)); memset(custom_io_tab[AVIdx], 0x00, sizeof(CustomIOCtx_t));