Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / renderer / media / webrtc / media_stream_remote_video_source.cc
index d2984f5..f912cd5 100644 (file)
@@ -71,8 +71,8 @@ RemoteVideoSourceDelegate::SetSize(int width, int height) {
 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) {
@@ -106,7 +106,7 @@ RemoteVideoSourceDelegate::RenderFrame(
   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(
@@ -120,7 +120,8 @@ RemoteVideoSourceDelegate::DoRenderFrameOnIOThread(
     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(
@@ -137,6 +138,7 @@ 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;
@@ -146,24 +148,24 @@ void MediaStreamRemoteVideoSource::GetCurrentSupportedFormats(
 }
 
 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() {