Chromium Code Reviews| 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_transport.h" | 5 #include "remoting/protocol/webrtc_transport.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 329 #if !defined(NDEBUG) | 329 #if !defined(NDEBUG) |
| 330 ignore_error = base::CommandLine::ForCurrentProcess()->HasSwitch( | 330 ignore_error = base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 331 kDisableAuthenticationSwitchName); | 331 kDisableAuthenticationSwitchName); |
| 332 #endif | 332 #endif |
| 333 if (!ignore_error) { | 333 if (!ignore_error) { |
| 334 Close(AUTHENTICATION_FAILED); | 334 Close(AUTHENTICATION_FAILED); |
| 335 return true; | 335 return true; |
| 336 } | 336 } |
| 337 } | 337 } |
| 338 | 338 |
| 339 // Set bitrate range to 1-20 Mbps. | 339 // Set bitrate range to 1-100 Mbps. |
|
Irfan
2016/10/07 14:59:12
Does this provide any actual gains ?
| |
| 340 // - Setting min bitrate here enables padding. | 340 // - Setting min bitrate here enables padding. |
| 341 // - The default max bitrate is 600 kbps. Setting it to 20 Mbps allows to | 341 // - The default max bitrate is 600 kbps. Setting it to 100 Mbps allows to |
| 342 // use higher bandwidth when it's available. | 342 // use higher bandwidth when it's available. |
| 343 // | 343 // |
| 344 // TODO(sergeyu): Padding needs to be enabled to workaround BW estimator not | 344 // TODO(sergeyu): Padding needs to be enabled to workaround BW estimator not |
| 345 // handling spiky traffic patterns well. This won't be necessary with a | 345 // handling spiky traffic patterns well. This won't be necessary with a |
| 346 // better bandwidth estimator. | 346 // better bandwidth estimator. |
| 347 // TODO(isheriff): The need for this should go away once we have a proper | 347 // TODO(isheriff): The need for this should go away once we have a proper |
| 348 // API to provide max bitrate for the case of handing over encoded | 348 // API to provide max bitrate for the case of handing over encoded |
| 349 // frames to webrtc. | 349 // frames to webrtc. |
| 350 std::string vp8line = "a=rtpmap:100 VP8/90000\n"; | 350 std::string vp8line = "a=rtpmap:100 VP8/90000\n"; |
| 351 std::string vp8line_with_bitrate = | 351 std::string vp8line_with_bitrate = |
| 352 vp8line + | 352 vp8line + |
| 353 "a=fmtp:100 x-google-min-bitrate=1000\n" | 353 "a=fmtp:100 x-google-min-bitrate=1000\n" |
| 354 "a=fmtp:100 x-google-max-bitrate=20000\n"; | 354 "a=fmtp:100 x-google-max-bitrate=100000\n"; |
| 355 base::ReplaceSubstringsAfterOffset(&sdp, 0, vp8line, vp8line_with_bitrate); | 355 base::ReplaceSubstringsAfterOffset(&sdp, 0, vp8line, vp8line_with_bitrate); |
| 356 | 356 |
| 357 webrtc::SdpParseError error; | 357 webrtc::SdpParseError error; |
| 358 std::unique_ptr<webrtc::SessionDescriptionInterface> session_description( | 358 std::unique_ptr<webrtc::SessionDescriptionInterface> session_description( |
| 359 webrtc::CreateSessionDescription(type, sdp, &error)); | 359 webrtc::CreateSessionDescription(type, sdp, &error)); |
| 360 if (!session_description) { | 360 if (!session_description) { |
| 361 LOG(ERROR) << "Failed to parse the session description: " | 361 LOG(ERROR) << "Failed to parse the session description: " |
| 362 << error.description << " line: " << error.line; | 362 << error.description << " line: " << error.line; |
| 363 return false; | 363 return false; |
| 364 } | 364 } |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 663 // the stack and so it must be destroyed later. | 663 // the stack and so it must be destroyed later. |
| 664 base::ThreadTaskRunnerHandle::Get()->DeleteSoon( | 664 base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
| 665 FROM_HERE, peer_connection_wrapper_.release()); | 665 FROM_HERE, peer_connection_wrapper_.release()); |
| 666 | 666 |
| 667 if (error != OK) | 667 if (error != OK) |
| 668 event_handler_->OnWebrtcTransportError(error); | 668 event_handler_->OnWebrtcTransportError(error); |
| 669 } | 669 } |
| 670 | 670 |
| 671 } // namespace protocol | 671 } // namespace protocol |
| 672 } // namespace remoting | 672 } // namespace remoting |
| OLD | NEW |