void MediaStreamSource::setEnabled(bool enabled) { if (!enabled) { // Don't disable the source unless all observers are disabled. for (auto observer = m_observers.begin(); observer != m_observers.end(); ++observer) { if ((*observer)->observerIsEnabled()) return; } } if (m_enabled == enabled) return; m_enabled = enabled; if (m_readyState == Ended) return; if (!enabled) stopProducingData(); else startProducingData(); for (auto observer = m_observers.begin(); observer != m_observers.end(); ++observer) (*observer)->sourceEnabledChanged(); }
void RealtimeMediaSource::stop(Observer* callingObserver) { if (stopped()) return; m_stopped = true; for (auto* observer : m_observers) { if (observer != callingObserver) observer->sourceStopped(); } stopProducingData(); }
void MediaStreamSource::setReadyState(ReadyState readyState) { if (m_readyState == Ended || m_readyState == readyState) return; m_readyState = readyState; for (auto observer = m_observers.begin(); observer != m_observers.end(); ++observer) (*observer)->sourceReadyStateChanged(); if (m_readyState == Live) { startProducingData(); return; } // There are no more consumers of this source's data, shut it down as appropriate. if (m_readyState == Ended) stopProducingData(); }
void MediaStreamTrack::stop() { stopProducingData(); }