mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavd/sdl: reset context variables after destroy
SDL device reports double free or hangs when quiting. Reseting variables solves the issue. The issue is caused by double call of write_trailer callback. It is called for the first time in write_packet when quit flag is set. Second call comes from ffmpeg.c or may come from other client application. Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com> Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
18c3313e65
commit
20fe316e47
@ -71,12 +71,16 @@ static int sdl_write_trailer(AVFormatContext *s)
|
||||
|
||||
if (sdl->overlay)
|
||||
SDL_FreeYUVOverlay(sdl->overlay);
|
||||
sdl->overlay = NULL;
|
||||
if (sdl->event_thread)
|
||||
SDL_WaitThread(sdl->event_thread, NULL);
|
||||
sdl->event_thread = NULL;
|
||||
if (sdl->mutex)
|
||||
SDL_DestroyMutex(sdl->mutex);
|
||||
sdl->mutex = NULL;
|
||||
if (sdl->init_cond)
|
||||
SDL_DestroyCond(sdl->init_cond);
|
||||
sdl->init_cond = NULL;
|
||||
|
||||
if (!sdl->sdl_was_already_inited)
|
||||
SDL_Quit();
|
||||
|
Loading…
Reference in New Issue
Block a user