void SourceBuffer::Detach() { Ended(); mDecoder = nullptr; mMediaSource = nullptr; }
void SourceBuffer::Detach() { Ended(); DiscardDecoder(); mMediaSource = nullptr; }
void MediaStreamTrack::Stop() { LOG(LogLevel::Info, ("MediaStreamTrack %p Stop()", this)); if (Ended()) { LOG(LogLevel::Warning, ("MediaStreamTrack %p Already ended", this)); return; } if (mRemote) { LOG(LogLevel::Warning, ("MediaStreamTrack %p is remote. Can't be stopped.", this)); return; } if (!mSource) { MOZ_ASSERT(false); return; } mSource->UnregisterSink(this); MOZ_ASSERT(mOwningStream, "Every MediaStreamTrack needs an owning DOMMediaStream"); DOMMediaStream::TrackPort* port = mOwningStream->FindOwnedTrackPort(*this); MOZ_ASSERT(port, "A MediaStreamTrack must exist in its owning DOMMediaStream"); RefPtr<Pledge<bool>> p = port->BlockSourceTrackId(mInputTrackID, BlockingMode::CREATION); Unused << p; mReadyState = MediaStreamTrackState::Ended; }
void SourceBuffer::Detach() { MOZ_ASSERT(NS_IsMainThread()); MSE_DEBUG("SourceBuffer(%p)::Detach", this); Ended(); DiscardDecoder(); mMediaSource = nullptr; }
void MediaStreamTrack::NotifyEnded() { MOZ_ASSERT(NS_IsMainThread()); if (Ended()) { return; } LOG(LogLevel::Info, ("MediaStreamTrack %p ended", this)); mReadyState = MediaStreamTrackState::Ended; DispatchTrustedEvent(NS_LITERAL_STRING("ended")); }