Bug 1368837 - WaveTrackDemuxer should copy the MediaResource* instead of a whole MediaResourceIndex - r=cpearce draft
authorGerald Squelart <gsquelart@mozilla.com>
Tue, 30 May 2017 21:42:22 +1200
changeset 587481 2032c9bea9667127fd013b05cdf318a891ea3dbf
parent 587480 b768370a1e5c32eea947cc427c047961349541ee
child 587482 f319e0b48b62f05c063f89f0ac9dbf947e753c48
push id61722
push usergsquelart@mozilla.com
push dateThu, 01 Jun 2017 04:10:47 +0000
reviewerscpearce
bugs1368837
milestone55.0a1
Bug 1368837 - WaveTrackDemuxer should copy the MediaResource* instead of a whole MediaResourceIndex - r=cpearce When the WaveTrackDemuxer is given a MediaResourceIndex, it's only really interested in the MediaResource pointer, so we should just pass that, and WaveTrackDemuxer can construct its own MediaResourceIndex from it. Also, MediaResourceIndex will become non-copyable soon. MozReview-Commit-ID: H0VGSxpAGkP
dom/media/wave/WaveDemuxer.cpp
dom/media/wave/WaveDemuxer.h
--- a/dom/media/wave/WaveDemuxer.cpp
+++ b/dom/media/wave/WaveDemuxer.cpp
@@ -28,17 +28,17 @@ WAVDemuxer::WAVDemuxer(MediaResource* aS
   : mSource(aSource)
 {
 }
 
 bool
 WAVDemuxer::InitInternal()
 {
   if (!mTrackDemuxer) {
-    mTrackDemuxer = new WAVTrackDemuxer(mSource);
+    mTrackDemuxer = new WAVTrackDemuxer(mSource.GetResource());
   }
   return mTrackDemuxer->Init();
 }
 
 RefPtr<WAVDemuxer::InitPromise>
 WAVDemuxer::Init()
 {
   if (!InitInternal()) {
@@ -72,17 +72,17 @@ WAVDemuxer::GetTrackDemuxer(TrackInfo::T
 bool
 WAVDemuxer::IsSeekable() const
 {
   return true;
 }
 
 // WAVTrackDemuxer
 
-WAVTrackDemuxer::WAVTrackDemuxer(MediaResourceIndex aSource)
+WAVTrackDemuxer::WAVTrackDemuxer(MediaResource* aSource)
   : mSource(aSource)
   , mOffset(0)
   , mFirstChunkOffset(0)
   , mNumParsedChunks(0)
   , mChunkIndex(0)
   , mTotalChunkLen(0)
   , mSamplesPerChunk(0)
   , mSamplesPerSecond(0)
--- a/dom/media/wave/WaveDemuxer.h
+++ b/dom/media/wave/WaveDemuxer.h
@@ -179,17 +179,17 @@ private:
   };
 
   DataChunk mChunk;
 };
 
 class WAVTrackDemuxer : public MediaTrackDemuxer
 {
 public:
-  explicit WAVTrackDemuxer(MediaResourceIndex aSource);
+  explicit WAVTrackDemuxer(MediaResource* aSource);
 
   bool Init();
 
   int64_t StreamLength() const;
 
   media::TimeUnit Duration() const;
   media::TimeUnit Duration(int64_t aNumDataChunks) const;
   media::TimeUnit DurationFromBytes(uint32_t aNumBytes) const;