OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h" | 5 #include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/aligned_memory.h" | 8 #include "base/memory/aligned_memory.h" |
9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
10 #include "content/renderer/media/webrtc/webrtc_video_frame_adapter.h" | 10 #include "content/renderer/media/webrtc/webrtc_video_frame_adapter.h" |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 if (video_frame->natural_size() == video_frame->visible_rect().size()) { | 91 if (video_frame->natural_size() == video_frame->visible_rect().size()) { |
92 return new cricket::WebRtcVideoFrame( | 92 return new cricket::WebRtcVideoFrame( |
93 new rtc::RefCountedObject<WebRtcVideoFrameAdapter>(video_frame), | 93 new rtc::RefCountedObject<WebRtcVideoFrameAdapter>(video_frame), |
94 captured_frame_.elapsed_time, timestamp_ns); | 94 captured_frame_.elapsed_time, timestamp_ns); |
95 } | 95 } |
96 | 96 |
97 // We need to scale the frame before we hand it over to cricket. | 97 // We need to scale the frame before we hand it over to cricket. |
98 scoped_refptr<media::VideoFrame> scaled_frame = | 98 scoped_refptr<media::VideoFrame> scaled_frame = |
99 scaled_frame_pool_.CreateFrame(media::VideoFrame::I420, output_size, | 99 scaled_frame_pool_.CreateFrame(media::VideoFrame::I420, output_size, |
100 gfx::Rect(output_size), output_size, | 100 gfx::Rect(output_size), output_size, |
101 frame_->timestamp()); | 101 frame_->timestamp(), false); |
102 libyuv::I420Scale(video_frame->visible_data(media::VideoFrame::kYPlane), | 102 libyuv::I420Scale(video_frame->visible_data(media::VideoFrame::kYPlane), |
103 video_frame->stride(media::VideoFrame::kYPlane), | 103 video_frame->stride(media::VideoFrame::kYPlane), |
104 video_frame->visible_data(media::VideoFrame::kUPlane), | 104 video_frame->visible_data(media::VideoFrame::kUPlane), |
105 video_frame->stride(media::VideoFrame::kUPlane), | 105 video_frame->stride(media::VideoFrame::kUPlane), |
106 video_frame->visible_data(media::VideoFrame::kVPlane), | 106 video_frame->visible_data(media::VideoFrame::kVPlane), |
107 video_frame->stride(media::VideoFrame::kVPlane), | 107 video_frame->stride(media::VideoFrame::kVPlane), |
108 video_frame->visible_rect().width(), | 108 video_frame->visible_rect().width(), |
109 video_frame->visible_rect().height(), | 109 video_frame->visible_rect().height(), |
110 scaled_frame->data(media::VideoFrame::kYPlane), | 110 scaled_frame->data(media::VideoFrame::kYPlane), |
111 scaled_frame->stride(media::VideoFrame::kYPlane), | 111 scaled_frame->stride(media::VideoFrame::kYPlane), |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 DCHECK(frame_factory_ == frame_factory()); | 228 DCHECK(frame_factory_ == frame_factory()); |
229 frame_factory_->SetFrame(frame, elapsed_time); | 229 frame_factory_->SetFrame(frame, elapsed_time); |
230 | 230 |
231 // This signals to libJingle that a new VideoFrame is available. | 231 // This signals to libJingle that a new VideoFrame is available. |
232 SignalFrameCaptured(this, frame_factory_->GetCapturedFrame()); | 232 SignalFrameCaptured(this, frame_factory_->GetCapturedFrame()); |
233 | 233 |
234 frame_factory_->ReleaseFrame(); // Release the frame ASAP. | 234 frame_factory_->ReleaseFrame(); // Release the frame ASAP. |
235 } | 235 } |
236 | 236 |
237 } // namespace content | 237 } // namespace content |
OLD | NEW |