Bug 1208371 - Move FindTrack from SourceMediaStream to MediaStream. r?roc
MozReview-Commit-ID: 2BzGdGdbpy0
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -1908,16 +1908,22 @@ MediaStream::GraphTimeToStreamTimeWithBl
void
MediaStream::FinishOnGraphThread()
{
GraphImpl()->FinishStream(this);
}
StreamBuffer::Track*
+MediaStream::FindTrack(TrackID aID)
+{
+ return mBuffer.FindTrack(aID);
+}
+
+StreamBuffer::Track*
MediaStream::EnsureTrack(TrackID aTrackId)
{
StreamBuffer::Track* track = mBuffer.FindTrack(aTrackId);
if (!track) {
nsAutoPtr<MediaSegment> segment(new AudioSegment());
for (uint32_t j = 0; j < mListeners.Length(); ++j) {
MediaStreamListener* l = mListeners[j];
l->NotifyQueuedTrackChanges(Graph(), aTrackId, 0,
@@ -2537,22 +2543,16 @@ SourceMediaStream::FinishAddTracks()
{
MutexAutoLock lock(mMutex);
mUpdateTracks.AppendElements(Move(mPendingTracks));
if (GraphImpl()) {
GraphImpl()->EnsureNextIteration();
}
}
-StreamBuffer::Track*
-SourceMediaStream::FindTrack(TrackID aID)
-{
- return mBuffer.FindTrack(aID);
-}
-
void
SourceMediaStream::ResampleAudioToGraphSampleRate(TrackData* aTrackData, MediaSegment* aSegment)
{
if (aSegment->GetType() != MediaSegment::AUDIO ||
aTrackData->mInputRate == GraphImpl()->GraphRate()) {
return;
}
AudioSegment* segment = static_cast<AudioSegment*>(aSegment);
--- a/dom/media/MediaStreamGraph.h
+++ b/dom/media/MediaStreamGraph.h
@@ -753,16 +753,21 @@ public:
*/
GraphTime StreamTimeToGraphTime(StreamTime aTime);
bool IsFinishedOnGraphThread() { return mFinished; }
void FinishOnGraphThread();
bool HasCurrentData() { return mHasCurrentData; }
+ /**
+ * Find track by track id.
+ */
+ StreamBuffer::Track* FindTrack(TrackID aID);
+
StreamBuffer::Track* EnsureTrack(TrackID aTrack);
virtual void ApplyTrackDisabling(TrackID aTrackID, MediaSegment* aSegment, MediaSegment* aRawSegment = nullptr);
DOMMediaStream* GetWrapper()
{
NS_ASSERTION(NS_IsMainThread(), "Only use DOMMediaStream on main thread");
return mWrapper;
@@ -996,21 +1001,16 @@ public:
/**
* Call after a series of AddTrack or AddAudioTrack calls to implement
* any pending track adds.
*/
void FinishAddTracks();
/**
- * Find track by track id.
- */
- StreamBuffer::Track* FindTrack(TrackID aID);
-
- /**
* Append media data to a track. Ownership of aSegment remains with the caller,
* but aSegment is emptied.
* Returns false if the data was not appended because no such track exists
* or the stream was already finished.
*/
bool AppendToTrack(TrackID aID, MediaSegment* aSegment, MediaSegment *aRawSegment = nullptr);
/**
* Get the stream time of the end of the data that has been appended so far.