From bfa6b2d7a1be1832ac40ed90aece1834f720b5c6 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Fri, 20 Nov 2009 09:32:46 -0800 Subject: Squashed commit of the following: commit 1efc38dc3c33fef57b759002db3965ed07a28cb0 Author: Andreas Huber Date: Thu Nov 19 14:36:14 2009 -0800 Sending the SEEK-COMPLETE notification temporarily broke seeking backwards in time behaviour. This is now fixed. Also, get rid of the semi-random delay after posting buffers to surface flinger in favour of delaying the buffer release until the next frame is displayed. commit 51973062eb5ee63fd64b845d72bac517cc3369cf Author: Andreas Huber Date: Wed Nov 18 14:01:43 2009 -0800 Fix one more unit test, properly send seek-complete notification only after seek actually completed. commit cb22250b34b1fcfe1bf459723a761fd003950229 Author: Andreas Huber Date: Wed Nov 18 12:31:36 2009 -0800 Fix seek-while-paused in AwesomePlayer, revert to using FileSource if MmapSource fails. commit 25eb9241138ddf7bb27ce90657116c5f8a94d880 Author: Andreas Huber Date: Wed Nov 18 12:30:40 2009 -0800 Support seeking and duration in AMRExtractor, assuming all frames are the same size. commit 44192f2ebb7ea3bbd3ba5910025692dbc6a08faa Author: Andreas Huber Date: Wed Nov 18 10:21:44 2009 -0800 MediaPlayerImpl is dead, long live AwesomePlayer. commit c5b52d3c0674f5dc94db506afbce52401cceddac Author: Andreas Huber Date: Wed Nov 18 09:42:23 2009 -0800 New implementation of the stagefright mediaplayer. --- media/libstagefright/TimedEventQueue.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/TimedEventQueue.cpp') diff --git a/media/libstagefright/TimedEventQueue.cpp b/media/libstagefright/TimedEventQueue.cpp index fa68771..d079e70 100644 --- a/media/libstagefright/TimedEventQueue.cpp +++ b/media/libstagefright/TimedEventQueue.cpp @@ -135,7 +135,9 @@ static bool MatchesEventID( } bool TimedEventQueue::cancelEvent(event_id id) { - CHECK(id != 0); + if (id == 0) { + return false; + } cancelEvents(&MatchesEventID, &id, true /* stopAfterFirstMatch */); @@ -162,6 +164,7 @@ void TimedEventQueue::cancelEvents( mQueueHeadChangedCondition.signal(); } + (*it).event->setEventID(0); it = mQueue.erase(it); if (stopAfterFirstMatch) { @@ -228,7 +231,12 @@ void TimedEventQueue::threadEntry() { } } + if (mQueue.empty()) { + continue; + } + event = (*it).event; + event->setEventID(0); mQueue.erase(it); } -- cgit v1.1