Bug 1173792: P2. Always seek audio to original seeking position. r=cpearce
authorJean-Yves Avenard <jyavenard@mozilla.com>
Thu, 18 Jun 2015 21:30:11 +1000
changeset 249701 c99d0c402d0016f28ce4b5fc92c25088f3cdb9d1
parent 249700 24a1a6c8cb855289ca4d5e4136218c3021063445
child 249702 185a9bd1dc62f0c8ed7492449998fdf3da77e1fd
push id61315
push userjyavenard@mozilla.com
push dateFri, 19 Jun 2015 06:53:18 +0000
treeherdermozilla-inbound@c99d0c402d00 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerscpearce
bugs1173792
milestone41.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
Bug 1173792: P2. Always seek audio to original seeking position. r=cpearce There's no guarantee that the audio stream will have the same buffered ranges as the video track; which could lead to a stall. It is up to the MediaDecoderStateMachine to ensure proper A/V sync following a sync
dom/media/MediaFormatReader.cpp
--- a/dom/media/MediaFormatReader.cpp
+++ b/dom/media/MediaFormatReader.cpp
@@ -1349,17 +1349,16 @@ void
 MediaFormatReader::OnVideoSeekCompleted(media::TimeUnit aTime)
 {
   MOZ_ASSERT(OnTaskQueue());
   LOGV("Video seeked to %lld", aTime.ToMicroseconds());
   mVideo.mSeekRequest.Complete();
 
   if (HasAudio()) {
     MOZ_ASSERT(mPendingSeekTime.isSome());
-    mPendingSeekTime.ref() = aTime;
     DoAudioSeek();
   } else {
     mPendingSeekTime.reset();
     mSeekPromise.Resolve(aTime.ToMicroseconds(), __func__);
   }
 }
 
 void