[FFmpeg-devel] [PATCH] ffplay: fix a crash caused by aborting the video queue
Marton Balint
cus at passwd.hu
Thu Aug 25 22:06:40 CEST 2011
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.
---
ffplay.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/ffplay.c b/ffplay.c
index 80611e8..8a3e409 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1355,6 +1355,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)
--
1.7.3.4
More information about the ffmpeg-devel
mailing list