[FFmpeg-cvslog] ffplay: fix a crash caused by aborting the video queue
Marton Balint
git at videolan.org
Fri Aug 26 17:56:31 CEST 2011
ffmpeg | branch: master | Marton Balint <cus at passwd.hu> | Thu Aug 25 22:06:40 2011 +0200| [0a1cf6621067c4a85b519c8cad5c345c29017f89] | committer: Michael Niedermayer
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 at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0a1cf6621067c4a85b519c8cad5c345c29017f89
---
ffplay.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/ffplay.c b/ffplay.c
index 8d22b48..27dda94 100644
--- a/ffplay.c
+++ b/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)
More information about the ffmpeg-cvslog
mailing list