MediaStreamNote: Difference between revisions

Jump to navigation Jump to search
Line 217: Line 217:
     }
     }
   }
   }
  ...
}
}
void
MediaStreamGraphImpl::ExtractPendingInput(SourceMediaStream* aStream,
                                          GraphTime aDesiredUpToTime,
                                          bool* aEnsureNextIteration)
{
  ...
  for (uint32_t j = 0; j < aStream->mListeners.Length(); ++j) {
    MediaStreamListener* l = aStream->mListeners[j];
    {
      MutexAutoUnlock unlock(aStream->mMutex);
      // This will call to |void MediaEngineWebRTCVideoSource::NotifyPull|
      l->NotifyPull(this, t);
    }
  }
  ...
  for (int32_t i = aStream->mUpdateTracks.Length() - 1; i >= 0; --i) {
    SourceMediaStream::TrackData* data = &aStream->mUpdateTracks[i];
    aStream->ApplyTrackDisabling(data->mID, data->mData);
    for (uint32_t j = 0; j < aStream->mListeners.Length(); ++j) {
      MediaStreamListener* l = aStream->mListeners[j];
      TrackTicks offset = (data->mCommands & SourceMediaStream::TRACK_CREATE)
          ? data->mStart : aStream->mBuffer.FindTrack(data->mID)->GetSegment()->GetDuration();
      l->NotifyQueuedTrackChanges(this, data->mID, data->mOutputRate,
                                  offset, data->mCommands, *data->mData);
    }
    ...
  }
  ...
}
void
MediaStreamGraphImpl::PlayVideo(MediaStream* aStream)
{
  ...
  for (uint32_t i = 0; i < aStream->mVideoOutputs.Length(); ++i) {
    VideoFrameContainer* output = aStream->mVideoOutputs[i];
    ...
    output->SetCurrentFrame(frame->GetIntrinsicSize(), frame->GetImage(),
                              targetTime);
  }
  ...
}
</source>
</source>
Confirmed users
770

edits

Navigation menu