try fix to call container_ffmpeg_stop on file EOF

This commit is contained in:
Jacek Jendrzej
2019-02-22 21:32:23 +01:00
parent 167c259649
commit f5c1a7c9a3

View File

@@ -147,6 +147,7 @@ static int32_t container_ffmpeg_seek(Context_t *context, int64_t sec, uint8_t ab
//static int32_t container_ffmpeg_seek_rel(Context_t *context, off_t pos, int64_t pts, int64_t sec);
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 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
@@ -1357,6 +1358,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");
}
@@ -1538,8 +1544,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));