Bug 1247189 - part1 : should detach TBM after detaching it from demuxers. draft
authorAlastor Wu <alwu@mozilla.com>
Wed, 11 Oct 2017 10:49:05 +0800
changeset 678302 b2c1b804db5c4c3b99eb635b700d502ae70bf228
parent 673165 44643fce30b43a8981535c335aaccb45006e456b
child 678303 c39e6eba4a9fea6f5b316c0b98457cc220fd723d
push id83875
push useralwu@mozilla.com
push dateWed, 11 Oct 2017 03:02:08 +0000
bugs1247189
milestone58.0a1
Bug 1247189 - part1 : should detach TBM after detaching it from demuxers. After detaching TBM, we should not access it anymore. So we should finish all other related detaching process, before detaching TBM. MozReview-Commit-ID: 8bNzqXVHVyy
dom/media/mediasource/SourceBuffer.cpp
--- a/dom/media/mediasource/SourceBuffer.cpp
+++ b/dom/media/mediasource/SourceBuffer.cpp
@@ -275,19 +275,19 @@ SourceBuffer::Detach()
   MOZ_ASSERT(NS_IsMainThread());
   MSE_DEBUG("Detach");
   if (!mMediaSource) {
     MSE_DEBUG("Already detached");
     return;
   }
   AbortBufferAppend();
   if (mTrackBuffersManager) {
-    mTrackBuffersManager->Detach();
     mMediaSource->GetDecoder()->GetDemuxer()->DetachSourceBuffer(
       mTrackBuffersManager);
+    mTrackBuffersManager->Detach();
   }
   mTrackBuffersManager = nullptr;
   mMediaSource = nullptr;
 }
 
 void
 SourceBuffer::Ended()
 {