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
--- 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;