On Sun, Sep 27, 2015 at 9:35 PM, Ganesh Ajjanagadde <gajjanaga...@gmail.com> wrote: > SDL_CreateMutex and SDL_CreateCond can fail: > https://wiki.libsdl.org/SDL_CreateMutex. > This patch makes handling more robust in one instance. > > Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> > --- > ffplay.c | 23 +++++++++++++++++------ > 1 file changed, 17 insertions(+), 6 deletions(-) > > diff --git a/ffplay.c b/ffplay.c > index 10887e1..27af336 100644 > --- a/ffplay.c > +++ b/ffplay.c > @@ -451,12 +451,21 @@ static int packet_queue_put_nullpacket(PacketQueue *q, > int stream_index) > } > > /* packet queue handling */ > -static void packet_queue_init(PacketQueue *q) > +static int packet_queue_init(PacketQueue *q) > { > memset(q, 0, sizeof(PacketQueue)); > q->mutex = SDL_CreateMutex(); > + if (!q->mutex) { > + av_log(q, AV_LOG_FATAL, "SDL_CreateMutex(): %s\n", SDL_GetError()); > + return AVERROR(EINVAL); > + } > q->cond = SDL_CreateCond(); > + if (!q->cond) { > + av_log(q, AV_LOG_FATAL, "SDL_CreateCond(): %s\n", SDL_GetError()); > + return AVERROR(EINVAL); > + } > q->abort_request = 1; > + return 0; > } > > static void packet_queue_flush(PacketQueue *q) > @@ -479,8 +488,10 @@ static void packet_queue_flush(PacketQueue *q) > static void packet_queue_destroy(PacketQueue *q) > { > packet_queue_flush(q); > - SDL_DestroyMutex(q->mutex); > - SDL_DestroyCond(q->cond); > + if (q->mutex) > + SDL_DestroyMutex(q->mutex); > + if (q->cond) > + SDL_DestroyCond(q->cond); > } > > static void packet_queue_abort(PacketQueue *q) > @@ -3136,9 +3147,9 @@ static VideoState *stream_open(const char *filename, > AVInputFormat *iformat) > if (frame_queue_init(&is->sampq, &is->audioq, SAMPLE_QUEUE_SIZE, 1) < 0) > goto fail; > > - packet_queue_init(&is->videoq); > - packet_queue_init(&is->audioq); > - packet_queue_init(&is->subtitleq); > + if (!packet_queue_init(&is->videoq) || !packet_queue_init(&is->audioq) > + || packet_queue_init(&is->subtitleq)) > + goto fail; > > is->continue_read_thread = SDL_CreateCond(); > > -- > 2.5.3 >
please ignore this - wrong patch. Apologies. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel