author | Paul Adenot <paul@paul.cx> |
Tue, 18 Sep 2012 11:27:32 -0700 | |
changeset 107800 | 7a4caceea493961b47cac3c568ee4278e878348f |
parent 107799 | 935b18138954228f73d94e7e393b3cc135616bb4 |
child 107801 | c500f57ba29682e76f381c8147198d3f96ceec6e |
push id | 23509 |
push user | ryanvm@gmail.com |
push date | Sat, 22 Sep 2012 12:28:38 +0000 |
treeherder | mozilla-central@b461a7cd250e [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | kinetik |
bugs | 791344 |
milestone | 18.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/content/media/nsBuiltinDecoderStateMachine.cpp +++ b/content/media/nsBuiltinDecoderStateMachine.cpp @@ -2212,22 +2212,31 @@ void nsBuiltinDecoderStateMachine::Advan } } // Skip frames up to the frame at the playback position, and figure out // the time remaining until it's time to display the next frame. int64_t remainingTime = AUDIO_DURATION_USECS; NS_ASSERTION(clock_time >= mStartTime, "Should have positive clock time."); nsAutoPtr<VideoData> currentFrame; +#ifdef PR_LOGGING + int32_t droppedFrames = 0; +#endif if (mReader->VideoQueue().GetSize() > 0) { VideoData* frame = mReader->VideoQueue().PeekFront(); while (mRealTime || clock_time >= frame->mTime) { mVideoFrameEndTime = frame->mEndTime; currentFrame = frame; LOG(PR_LOG_DEBUG, ("%p Decoder discarding video frame %lld", mDecoder.get(), frame->mTime)); +#ifdef PR_LOGGING + if (droppedFrames++) { + LOG(PR_LOG_DEBUG, ("%p Decoder discarding video frame %lld (%d so far)", + mDecoder.get(), frame->mTime, droppedFrames - 1)); + } +#endif mReader->VideoQueue().PopFront(); // Notify the decode thread that the video queue's buffers may have // free'd up space for more frames. mDecoder->GetReentrantMonitor().NotifyAll(); mDecoder->UpdatePlaybackOffset(frame->mOffset); if (mReader->VideoQueue().GetSize() == 0) break; frame = mReader->VideoQueue().PeekFront();