Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(826)

Unified Diff: third_party/WebKit/Source/modules/mediasource/MediaSource.cpp

Issue 1846863002: Remove SourceBuffer media tracks on detach from media element (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@blink-sb-tracks6
Patch Set: nits Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/mediasource/MediaSource.cpp
diff --git a/third_party/WebKit/Source/modules/mediasource/MediaSource.cpp b/third_party/WebKit/Source/modules/mediasource/MediaSource.cpp
index 8089d192192a7819bef165474418bb66f7797609..1b346c56f6e9e434f76aa483ef10f1175de74bd9 100644
--- a/third_party/WebKit/Source/modules/mediasource/MediaSource.cpp
+++ b/third_party/WebKit/Source/modules/mediasource/MediaSource.cpp
@@ -177,11 +177,8 @@ void MediaSource::removeSourceBuffer(SourceBuffer* buffer, ExceptionState& excep
return;
}
- // 2. If the sourceBuffer.updating attribute equals true, then run the following steps: ...
- buffer->abortIfUpdating();
-
- // Steps 3-8 are related to updating audioTracks, videoTracks, and textTracks which aren't implmented yet.
- // FIXME(91649): support track selection
+ // Steps 2-8 are implemented by SourceBuffer::removedFromMediaSource.
+ buffer->removedFromMediaSource();
// 9. If sourceBuffer is in activeSourceBuffers, then remove sourceBuffer from activeSourceBuffers ...
m_activeSourceBuffers->remove(buffer);
@@ -191,7 +188,7 @@ void MediaSource::removeSourceBuffer(SourceBuffer* buffer, ExceptionState& excep
m_sourceBuffers->remove(buffer);
// 11. Destroy all resources for sourceBuffer.
- buffer->removedFromMediaSource();
+ // This should have been done already by SourceBuffer::removedFromMediaSource (steps 2-8) above.
}
void MediaSource::onReadyStateChange(const AtomicString& oldState, const AtomicString& newState)
@@ -215,6 +212,8 @@ void MediaSource::onReadyStateChange(const AtomicString& oldState, const AtomicS
m_sourceBuffers->item(i)->removedFromMediaSource();
m_sourceBuffers->clear();
+ m_attachedElement.clear();
+
scheduleEvent(EventTypeNames::sourceclose);
}
@@ -450,7 +449,6 @@ void MediaSource::setReadyState(const AtomicString& state)
if (state == closedKeyword()) {
m_webMediaSource.clear();
- m_attachedElement.clear();
}
if (oldState == state)

Powered by Google App Engine
This is Rietveld 408576698