void MediaStreamRemoteVideoSource::
RemoteVideoSourceDelegate::RenderFrame(
const cricket::VideoFrame* frame) {
- base::TimeDelta timestamp = base::TimeDelta::FromMilliseconds(
- frame->GetTimeStamp() / talk_base::kNumNanosecsPerMillisec);
+ base::TimeDelta timestamp = base::TimeDelta::FromMicroseconds(
+ frame->GetElapsedTime() / rtc::kNumNanosecsPerMicrosec);
scoped_refptr<media::VideoFrame> video_frame;
if (frame->GetNativeHandle() != NULL) {
media::VideoCaptureFormat format(
gfx::Size(video_frame->natural_size().width(),
video_frame->natural_size().height()),
- MediaStreamVideoSource::kDefaultFrameRate,
+ MediaStreamVideoSource::kUnknownFrameRate,
pixel_format);
io_message_loop_->PostTask(
scoped_refptr<media::VideoFrame> video_frame,
const media::VideoCaptureFormat& format) {
DCHECK(io_message_loop_->BelongsToCurrentThread());
- frame_callback_.Run(video_frame, format);
+ // TODO(hclam): Give the estimated capture time.
+ frame_callback_.Run(video_frame, format, base::TimeTicks());
}
MediaStreamRemoteVideoSource::MediaStreamRemoteVideoSource(
void MediaStreamRemoteVideoSource::GetCurrentSupportedFormats(
int max_requested_width,
int max_requested_height,
+ double max_requested_frame_rate,
const VideoCaptureDeviceFormatsCB& callback) {
DCHECK(thread_checker_.CalledOnValidThread());
media::VideoCaptureFormats formats;
}
void MediaStreamRemoteVideoSource::StartSourceImpl(
- const media::VideoCaptureParams& params,
+ const media::VideoCaptureFormat& format,
const VideoCaptureDeliverFrameCB& frame_callback) {
DCHECK(thread_checker_.CalledOnValidThread());
- DCHECK(!delegate_);
+ DCHECK(!delegate_.get());
delegate_ = new RemoteVideoSourceDelegate(io_message_loop(), frame_callback);
- remote_track_->AddRenderer(delegate_);
- OnStartDone(true);
+ remote_track_->AddRenderer(delegate_.get());
+ OnStartDone(MEDIA_DEVICE_OK);
}
void MediaStreamRemoteVideoSource::StopSourceImpl() {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(state() != MediaStreamVideoSource::ENDED);
- remote_track_->RemoveRenderer(delegate_);
+ remote_track_->RemoveRenderer(delegate_.get());
}
webrtc::VideoRendererInterface*
MediaStreamRemoteVideoSource::RenderInterfaceForTest() {
- return delegate_;
+ return delegate_.get();
}
void MediaStreamRemoteVideoSource::OnChanged() {