Bug 1432779 - P3. Properly set channel map layout after seeking. r?padenot draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Fri, 09 Mar 2018 15:36:55 +0100
changeset 768200 dcdd1003dfd64afc6ec1b5085db6938bd1fc85b3
parent 768199 5d908eb5101c4d03ad142ca242693e18ea8434dc
child 768201 ab1eda0c7fd63f06b754f34bd1fd3b2e4d8e759b
push id102819
push userbmo:jyavenard@mozilla.com
push dateThu, 15 Mar 2018 19:46:59 +0000
reviewerspadenot
bugs1432779
milestone61.0a1
Bug 1432779 - P3. Properly set channel map layout after seeking. r?padenot MozReview-Commit-ID: 5FY9hdaijhf
dom/media/MediaData.cpp
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaData.cpp
+++ b/dom/media/MediaData.cpp
@@ -93,17 +93,18 @@ AudioData::TransferAndUpdateTimestampAnd
 {
   NS_ENSURE_TRUE(aOther, nullptr);
   RefPtr<AudioData> v = new AudioData(aOther->mOffset,
                                       aTimestamp,
                                       aDuration,
                                       aOther->mFrames,
                                       Move(aOther->mAudioData),
                                       aOther->mChannels,
-                                      aOther->mRate);
+                                      aOther->mRate,
+                                      aOther->mChannelMap);
   return v.forget();
 }
 
 static bool
 ValidatePlane(const VideoData::YCbCrBuffer::Plane& aPlane)
 {
   return aPlane.mWidth <= PlanarYCbCrImage::MAX_DIMENSION &&
          aPlane.mHeight <= PlanarYCbCrImage::MAX_DIMENSION &&
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1236,17 +1236,17 @@ protected:
            frames * channels * sizeof(AudioDataValue));
     auto duration = FramesToTimeUnit(frames, Info().mAudio.mRate);
     if (!duration.IsValid()) {
       return NS_ERROR_DOM_MEDIA_OVERFLOW_ERR;
     }
     RefPtr<AudioData> data(new AudioData(
       aAudio->mOffset, mSeekJob.mTarget->GetTime(),
       duration, frames, Move(audioData), channels,
-      aAudio->mRate));
+      aAudio->mRate, aAudio->mChannelMap));
     MOZ_ASSERT(AudioQueue().GetSize() == 0,
                "Should be the 1st sample after seeking");
     mMaster->PushAudio(data);
     mDoneAudioSeeking = true;
 
     return NS_OK;
   }