From 142c9c044e7f39b5963c6f8c4b8dd1c50fbeae4e Mon Sep 17 00:00:00 2001 From: martii Date: Wed, 10 Apr 2013 20:41:44 +0200 Subject: [PATCH] libeplayer3: fix segv Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/5025a6e645f5ad9c67da87d957e9577820c6b91b Author: martii Date: 2013-04-10 (Wed, 10 Apr 2013) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3/container/container_ffmpeg.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libeplayer3/container/container_ffmpeg.c b/libeplayer3/container/container_ffmpeg.c index 10241e8..eea190c 100644 --- a/libeplayer3/container/container_ffmpeg.c +++ b/libeplayer3/container/container_ffmpeg.c @@ -1530,6 +1530,7 @@ static void ffmpeg_buf_free() /* Container part for ffmpeg */ /* **************************** */ #ifdef MARTII +static int terminating = 0; static int interrupt_cb(void *ctx) { PlaybackHandler_t *p = (PlaybackHandler_t *)ctx; @@ -1681,11 +1682,17 @@ int container_ffmpeg_init(Context_t *context, char * filename) //for buffered io (end) #endif #ifdef MARTII + terminating = 0; + latestPts = 0; + isContainerRunning = 1; return container_ffmpeg_update_tracks(context, filename); } int container_ffmpeg_update_tracks(Context_t *context, char *filename) { + if (terminating) + return cERR_CONTAINER_FFMPEG_NO_ERROR; + int n; if (context->manager->audio) @@ -2109,9 +2116,11 @@ int container_ffmpeg_update_tracks(Context_t *context, char *filename) } /* for */ +#ifndef MARTII /* init */ latestPts = 0; isContainerRunning = 1; +#endif releaseMutex(FILENAME, __FUNCTION__,__LINE__); @@ -2211,6 +2220,9 @@ static int container_ffmpeg_stop(Context_t *context) { } hasPlayThreadStarted = 0; +#ifdef MARTII + terminating = 1; +#endif getMutex(FILENAME, __FUNCTION__,__LINE__);