| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/codec/video_encoder_vpx.h" | 5 #include "remoting/codec/video_encoder_vpx.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/sys_info.h" | 10 #include "base/sys_info.h" |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 | 126 |
| 127 // Use the lowest level of noise sensitivity so as to spend less time | 127 // Use the lowest level of noise sensitivity so as to spend less time |
| 128 // on motion estimation and inter-prediction mode. | 128 // on motion estimation and inter-prediction mode. |
| 129 ret = vpx_codec_control(codec, VP9E_SET_NOISE_SENSITIVITY, 0); | 129 ret = vpx_codec_control(codec, VP9E_SET_NOISE_SENSITIVITY, 0); |
| 130 DCHECK_EQ(VPX_CODEC_OK, ret) << "Failed to set noise sensitivity"; | 130 DCHECK_EQ(VPX_CODEC_OK, ret) << "Failed to set noise sensitivity"; |
| 131 | 131 |
| 132 // Configure the codec to tune it for screen media. | 132 // Configure the codec to tune it for screen media. |
| 133 ret = vpx_codec_control( | 133 ret = vpx_codec_control( |
| 134 codec, VP9E_SET_TUNE_CONTENT, VP9E_CONTENT_SCREEN); | 134 codec, VP9E_SET_TUNE_CONTENT, VP9E_CONTENT_SCREEN); |
| 135 DCHECK_EQ(VPX_CODEC_OK, ret) << "Failed to set screen content mode"; | 135 DCHECK_EQ(VPX_CODEC_OK, ret) << "Failed to set screen content mode"; |
| 136 | |
| 137 // VP9 tiles allow for parallelism on both encode and decode | |
| 138 ret = vpx_codec_control(codec, VP9E_SET_TILE_COLUMNS, 1); | |
| 139 DCHECK_EQ(VPX_CODEC_OK, ret) << "Failed to set tile columns"; | |
| 140 } | 136 } |
| 141 | 137 |
| 142 void CreateImage(bool use_i444, | 138 void CreateImage(bool use_i444, |
| 143 const webrtc::DesktopSize& size, | 139 const webrtc::DesktopSize& size, |
| 144 scoped_ptr<vpx_image_t>* out_image, | 140 scoped_ptr<vpx_image_t>* out_image, |
| 145 scoped_ptr<uint8[]>* out_image_buffer) { | 141 scoped_ptr<uint8[]>* out_image_buffer) { |
| 146 DCHECK(!size.is_empty()); | 142 DCHECK(!size.is_empty()); |
| 147 | 143 |
| 148 scoped_ptr<vpx_image_t> image(new vpx_image_t()); | 144 scoped_ptr<vpx_image_t> image(new vpx_image_t()); |
| 149 memset(image.get(), 0, sizeof(vpx_image_t)); | 145 memset(image.get(), 0, sizeof(vpx_image_t)); |
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 uint8* map = active_map_.get() + top * active_map_width_; | 473 uint8* map = active_map_.get() + top * active_map_width_; |
| 478 for (int y = top; y <= bottom; ++y) { | 474 for (int y = top; y <= bottom; ++y) { |
| 479 for (int x = left; x <= right; ++x) | 475 for (int x = left; x <= right; ++x) |
| 480 map[x] = 1; | 476 map[x] = 1; |
| 481 map += active_map_width_; | 477 map += active_map_width_; |
| 482 } | 478 } |
| 483 } | 479 } |
| 484 } | 480 } |
| 485 | 481 |
| 486 } // namespace remoting | 482 } // namespace remoting |
| OLD | NEW |