Bug 1346498 part 7 - connect the VideoDecodeMode canonical-mirror pair; r?jwwang draft
authorKaku Kuo <kaku@mozilla.com>
Sat, 11 Mar 2017 15:15:07 +0800
changeset 497046 406238e695a7c3b064c5a3db6bc61073b7af1dae
parent 497045 a0e2e2e24d59e6a433d8a0dbdce5f6dbfbf13490
child 497047 96b86a4b76ee703abfbd8708b7bddf2473490b2c
push id48791
push userbmo:kaku@mozilla.com
push dateSat, 11 Mar 2017 13:09:57 +0000
reviewersjwwang
bugs1346498
milestone55.0a1
Bug 1346498 part 7 - connect the VideoDecodeMode canonical-mirror pair; r?jwwang MozReview-Commit-ID: bpbcfwkgyt
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -2542,16 +2542,17 @@ ShutdownState::Enter()
   master->mNextPlayState.DisconnectIfConnected();
   master->mVolume.DisconnectIfConnected();
   master->mPreservesPitch.DisconnectIfConnected();
   master->mSameOriginMedia.DisconnectIfConnected();
   master->mMediaPrincipalHandle.DisconnectIfConnected();
   master->mPlaybackBytesPerSecond.DisconnectIfConnected();
   master->mPlaybackRateReliable.DisconnectIfConnected();
   master->mDecoderPosition.DisconnectIfConnected();
+  master->mVideoDecodeMode.DisconnectIfConnected();
 
   master->mDuration.DisconnectAll();
   master->mIsShutdown.DisconnectAll();
   master->mNextFrameStatus.DisconnectAll();
   master->mCurrentPosition.DisconnectAll();
   master->mPlaybackOffset.DisconnectAll();
   master->mIsAudioDataAudible.DisconnectAll();
 
@@ -2679,16 +2680,17 @@ MediaDecoderStateMachine::Initialization
                       &MediaDecoderStateMachine::RecomputeDuration);
   mWatchManager.Watch(mExplicitDuration,
                       &MediaDecoderStateMachine::RecomputeDuration);
   mWatchManager.Watch(mObservedDuration,
                       &MediaDecoderStateMachine::RecomputeDuration);
   mWatchManager.Watch(mPlayState, &MediaDecoderStateMachine::PlayStateChanged);
 
   if (MediaPrefs::MDSMSuspendBackgroundVideoEnabled()) {
+    mVideoDecodeMode.Connect(aDecoder->CanonicalVideoDecodeMode());
     mWatchManager.Watch(mVideoDecodeMode,
                         &MediaDecoderStateMachine::VideoDecodeModeChanged);
   }
 
   MOZ_ASSERT(!mStateObj);
   auto* s = new DecodeMetadataState(this);
   mStateObj.reset(s);
   s->Enter();