| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "remoting/protocol/webrtc_video_renderer_adapter.h" | 5 #include "remoting/protocol/webrtc_video_renderer_adapter.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 | 33 |
| 34 std::unique_ptr<webrtc::DesktopFrame> ConvertYuvToRgb( | 34 std::unique_ptr<webrtc::DesktopFrame> ConvertYuvToRgb( |
| 35 scoped_refptr<webrtc::VideoFrameBuffer> yuv_frame, | 35 scoped_refptr<webrtc::VideoFrameBuffer> yuv_frame, |
| 36 std::unique_ptr<webrtc::DesktopFrame> rgb_frame, | 36 std::unique_ptr<webrtc::DesktopFrame> rgb_frame, |
| 37 FrameConsumer::PixelFormat pixel_format) { | 37 FrameConsumer::PixelFormat pixel_format) { |
| 38 DCHECK(rgb_frame->size().equals( | 38 DCHECK(rgb_frame->size().equals( |
| 39 webrtc::DesktopSize(yuv_frame->width(), yuv_frame->height()))); | 39 webrtc::DesktopSize(yuv_frame->width(), yuv_frame->height()))); |
| 40 auto yuv_to_rgb_function = (pixel_format == FrameConsumer::FORMAT_BGRA) | 40 auto yuv_to_rgb_function = (pixel_format == FrameConsumer::FORMAT_BGRA) |
| 41 ? &libyuv::I420ToARGB | 41 ? &libyuv::I420ToARGB |
| 42 : &libyuv::I420ToABGR; | 42 : &libyuv::I420ToABGR; |
| 43 yuv_to_rgb_function(yuv_frame->DataY(), yuv_frame->StrideY(), | 43 rtc::scoped_refptr<const webrtc::I420BufferInterface> i420_frame = |
| 44 yuv_frame->DataU(), yuv_frame->StrideU(), | 44 yuv_frame->ToI420(); |
| 45 yuv_frame->DataV(), yuv_frame->StrideV(), | 45 yuv_to_rgb_function(i420_frame->DataY(), i420_frame->StrideY(), |
| 46 i420_frame->DataU(), i420_frame->StrideU(), |
| 47 i420_frame->DataV(), i420_frame->StrideV(), |
| 46 rgb_frame->data(), rgb_frame->stride(), | 48 rgb_frame->data(), rgb_frame->stride(), |
| 47 yuv_frame->width(), yuv_frame->height()); | 49 i420_frame->width(), i420_frame->height()); |
| 48 | 50 |
| 49 rgb_frame->mutable_updated_region()->AddRect( | 51 rgb_frame->mutable_updated_region()->AddRect( |
| 50 webrtc::DesktopRect::MakeSize(rgb_frame->size())); | 52 webrtc::DesktopRect::MakeSize(rgb_frame->size())); |
| 51 return rgb_frame; | 53 return rgb_frame; |
| 52 } | 54 } |
| 53 | 55 |
| 54 } // namespace | 56 } // namespace |
| 55 | 57 |
| 56 WebrtcVideoRendererAdapter::WebrtcVideoRendererAdapter( | 58 WebrtcVideoRendererAdapter::WebrtcVideoRendererAdapter( |
| 57 const std::string& label, | 59 const std::string& label, |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 frame_stats.client_stats = *client_stats; | 240 frame_stats.client_stats = *client_stats; |
| 239 host_stats_queue_.pop_front(); | 241 host_stats_queue_.pop_front(); |
| 240 FrameStatsConsumer* frame_stats_consumer = | 242 FrameStatsConsumer* frame_stats_consumer = |
| 241 video_renderer_->GetFrameStatsConsumer(); | 243 video_renderer_->GetFrameStatsConsumer(); |
| 242 if (frame_stats_consumer) | 244 if (frame_stats_consumer) |
| 243 frame_stats_consumer->OnVideoFrameStats(frame_stats); | 245 frame_stats_consumer->OnVideoFrameStats(frame_stats); |
| 244 } | 246 } |
| 245 | 247 |
| 246 } // namespace protocol | 248 } // namespace protocol |
| 247 } // namespace remoting | 249 } // namespace remoting |
| OLD | NEW |