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

Unified Diff: Source/modules/mediastream/MediaStream.cpp

Issue 827673002: Add MediaStream.active attribute (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « Source/modules/mediastream/MediaStream.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/mediastream/MediaStream.cpp
diff --git a/Source/modules/mediastream/MediaStream.cpp b/Source/modules/mediastream/MediaStream.cpp
index 7d5caddfc43eeb992c04365b18a6fafb8fda69d2..e62f9de2023942f095aca3c134168dfec9caf49a 100644
--- a/Source/modules/mediastream/MediaStream.cpp
+++ b/Source/modules/mediastream/MediaStream.cpp
@@ -117,6 +117,9 @@ MediaStream::MediaStream(ExecutionContext* context, PassRefPtr<MediaStreamDescri
newTrack->registerMediaStream(this);
m_videoTracks.append(newTrack);
}
+
+ if (emptyOrOnlyEndedTracks())
+ m_descriptor->setEnded();
}
MediaStream::MediaStream(ExecutionContext* context, const MediaStreamTrackVector& audioTracks, const MediaStreamTrackVector& videoTracks)
@@ -143,6 +146,8 @@ MediaStream::MediaStream(ExecutionContext* context, const MediaStreamTrackVector
m_audioTracks = audioTracks;
m_videoTracks = videoTracks;
+ if (emptyOrOnlyEndedTracks())
+ m_descriptor->setEnded();
}
MediaStream::~MediaStream()
@@ -150,6 +155,20 @@ MediaStream::~MediaStream()
m_descriptor->setClient(0);
}
+bool MediaStream::emptyOrOnlyEndedTracks()
+{
+ if (!m_audioTracks.size() && !m_videoTracks.size()) {
+ return true;
+ }
+ for (MediaStreamTrackVector::iterator iter = m_audioTracks.begin(); iter !=
perkj_chrome 2015/01/07 14:12:17 ?
+ if (!iter->get()->ended())
+ return false;
+ for (MediaStreamTrackVector::iterator iter = m_videoTracks.begin(); iter !=
+ if (!iter->get()->ended())
+ return false;
+ return true;
+}
+
bool MediaStream::ended() const
{
return m_stopped || m_descriptor->ended();
@@ -224,7 +243,7 @@ void MediaStream::removeTrack(MediaStreamTrack* track, ExceptionState& exception
track->unregisterMediaStream(this);
m_descriptor->removeComponent(track->component());
- if (!m_audioTracks.size() && !m_videoTracks.size())
+ if (emptyOrOnlyEndedTracks())
m_descriptor->setEnded();
MediaStreamCenter::instance().didRemoveMediaStreamTrack(m_descriptor.get(), track->component());
« no previous file with comments | « Source/modules/mediastream/MediaStream.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698