ffplay: fix a crash caused by aborting the video queue
If the video queue is aborted, we have to pop the pending ALLOC event or wait for the allocation to complete, because the current code assumes that VideoState->pictq_windex does not change until the allocation is complete. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
8af9366e2f
commit
0a1cf66210
6
ffplay.c
6
ffplay.c
@ -1356,6 +1356,12 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_
|
||||
while (!vp->allocated && !is->videoq.abort_request) {
|
||||
SDL_CondWait(is->pictq_cond, is->pictq_mutex);
|
||||
}
|
||||
/* if the queue is aborted, we have to pop the pending ALLOC event or wait for the allocation to complete */
|
||||
if (is->videoq.abort_request && SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_EVENTMASK(FF_ALLOC_EVENT)) != 1) {
|
||||
while (!vp->allocated) {
|
||||
SDL_CondWait(is->pictq_cond, is->pictq_mutex);
|
||||
}
|
||||
}
|
||||
SDL_UnlockMutex(is->pictq_mutex);
|
||||
|
||||
if (is->videoq.abort_request)
|
||||
|
Loading…
x
Reference in New Issue
Block a user