bug 1081766 clear audio/video track/reader only once r=kinetik

Clearing tracks after Shutdown of TrackBuffers means they are cleared
after any more can be added.

--HG--
extra : rebase_source : afd6c4336f440f59da84465908e25b88619484de
extra : histedit_source : 9e2b5856642e9c2084fc14e6bf79195a67e7bff5
This commit is contained in:
Karl Tomlinson 2014-10-10 18:26:12 +13:00
parent b79a0595df
commit d8b43a4597

View File

@ -202,13 +202,13 @@ void
MediaSourceReader::Shutdown()
{
MediaDecoderReader::Shutdown();
for (uint32_t i = 0; i < mTrackBuffers.Length(); ++i) {
mTrackBuffers[i]->Shutdown();
}
mAudioTrack = nullptr;
mAudioReader = nullptr;
mVideoTrack = nullptr;
mVideoReader = nullptr;
for (uint32_t i = 0; i < mTrackBuffers.Length(); ++i) {
mTrackBuffers[i]->Shutdown();
}
mTrackBuffers.Clear();
}
@ -216,10 +216,13 @@ void
MediaSourceReader::BreakCycles()
{
MediaDecoderReader::BreakCycles();
mAudioTrack = nullptr;
mAudioReader = nullptr;
mVideoTrack = nullptr;
mVideoReader = nullptr;
// These were cleared in Shutdown().
MOZ_ASSERT(!mAudioTrack);
MOZ_ASSERT(!mAudioReader);
MOZ_ASSERT(!mVideoTrack);
MOZ_ASSERT(!mVideoReader);
for (uint32_t i = 0; i < mTrackBuffers.Length(); ++i) {
mTrackBuffers[i]->BreakCycles();
}