OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 | 42 |
43 namespace cricket { | 43 namespace cricket { |
44 namespace { | 44 namespace { |
45 // If this field trial is enabled, we will enable sending FlexFEC and disable | 45 // If this field trial is enabled, we will enable sending FlexFEC and disable |
46 // sending ULPFEC whenever the former has been negotiated. Receiving FlexFEC | 46 // sending ULPFEC whenever the former has been negotiated. Receiving FlexFEC |
47 // is enabled whenever FlexFEC has been negotiated. | 47 // is enabled whenever FlexFEC has been negotiated. |
48 bool IsFlexfecFieldTrialEnabled() { | 48 bool IsFlexfecFieldTrialEnabled() { |
49 return webrtc::field_trial::FindFullName("WebRTC-FlexFEC-03") == "Enabled"; | 49 return webrtc::field_trial::FindFullName("WebRTC-FlexFEC-03") == "Enabled"; |
50 } | 50 } |
51 | 51 |
| 52 // If this field trial is enabled, we will report VideoContentType RTP extension |
| 53 // in capabilities (thus, it will end up in the default SDP and extension will |
| 54 // be sent for all key-frames). |
| 55 bool IsVideoContentTypeExtensionFieldTrialEnabled() { |
| 56 return webrtc::field_trial::IsEnabled("WebRTC-VideoContentTypeExtension"); |
| 57 } |
| 58 |
52 // Wrap cricket::WebRtcVideoEncoderFactory as a webrtc::VideoEncoderFactory. | 59 // Wrap cricket::WebRtcVideoEncoderFactory as a webrtc::VideoEncoderFactory. |
53 class EncoderFactoryAdapter : public webrtc::VideoEncoderFactory { | 60 class EncoderFactoryAdapter : public webrtc::VideoEncoderFactory { |
54 public: | 61 public: |
55 // EncoderFactoryAdapter doesn't take ownership of |factory|, which is owned | 62 // EncoderFactoryAdapter doesn't take ownership of |factory|, which is owned |
56 // by e.g. PeerConnectionFactory. | 63 // by e.g. PeerConnectionFactory. |
57 explicit EncoderFactoryAdapter(cricket::WebRtcVideoEncoderFactory* factory) | 64 explicit EncoderFactoryAdapter(cricket::WebRtcVideoEncoderFactory* factory) |
58 : factory_(factory) {} | 65 : factory_(factory) {} |
59 virtual ~EncoderFactoryAdapter() {} | 66 virtual ~EncoderFactoryAdapter() {} |
60 | 67 |
61 // Implement webrtc::VideoEncoderFactory. | 68 // Implement webrtc::VideoEncoderFactory. |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 webrtc::RtpExtension::kAbsSendTimeDefaultId)); | 503 webrtc::RtpExtension::kAbsSendTimeDefaultId)); |
497 capabilities.header_extensions.push_back( | 504 capabilities.header_extensions.push_back( |
498 webrtc::RtpExtension(webrtc::RtpExtension::kVideoRotationUri, | 505 webrtc::RtpExtension(webrtc::RtpExtension::kVideoRotationUri, |
499 webrtc::RtpExtension::kVideoRotationDefaultId)); | 506 webrtc::RtpExtension::kVideoRotationDefaultId)); |
500 capabilities.header_extensions.push_back(webrtc::RtpExtension( | 507 capabilities.header_extensions.push_back(webrtc::RtpExtension( |
501 webrtc::RtpExtension::kTransportSequenceNumberUri, | 508 webrtc::RtpExtension::kTransportSequenceNumberUri, |
502 webrtc::RtpExtension::kTransportSequenceNumberDefaultId)); | 509 webrtc::RtpExtension::kTransportSequenceNumberDefaultId)); |
503 capabilities.header_extensions.push_back( | 510 capabilities.header_extensions.push_back( |
504 webrtc::RtpExtension(webrtc::RtpExtension::kPlayoutDelayUri, | 511 webrtc::RtpExtension(webrtc::RtpExtension::kPlayoutDelayUri, |
505 webrtc::RtpExtension::kPlayoutDelayDefaultId)); | 512 webrtc::RtpExtension::kPlayoutDelayDefaultId)); |
| 513 if (IsVideoContentTypeExtensionFieldTrialEnabled()) { |
| 514 capabilities.header_extensions.push_back( |
| 515 webrtc::RtpExtension(webrtc::RtpExtension::kVideoContentTypeUri, |
| 516 webrtc::RtpExtension::kVideoContentTypeDefaultId)); |
| 517 } |
506 return capabilities; | 518 return capabilities; |
507 } | 519 } |
508 | 520 |
509 void WebRtcVideoEngine2::SetExternalDecoderFactory( | 521 void WebRtcVideoEngine2::SetExternalDecoderFactory( |
510 WebRtcVideoDecoderFactory* decoder_factory) { | 522 WebRtcVideoDecoderFactory* decoder_factory) { |
511 RTC_DCHECK(!initialized_); | 523 RTC_DCHECK(!initialized_); |
512 external_decoder_factory_ = decoder_factory; | 524 external_decoder_factory_ = decoder_factory; |
513 } | 525 } |
514 | 526 |
515 void WebRtcVideoEngine2::SetExternalEncoderFactory( | 527 void WebRtcVideoEngine2::SetExternalEncoderFactory( |
(...skipping 2045 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2561 rtx_mapping[video_codecs[i].codec.id] != | 2573 rtx_mapping[video_codecs[i].codec.id] != |
2562 ulpfec_config.red_payload_type) { | 2574 ulpfec_config.red_payload_type) { |
2563 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; | 2575 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; |
2564 } | 2576 } |
2565 } | 2577 } |
2566 | 2578 |
2567 return video_codecs; | 2579 return video_codecs; |
2568 } | 2580 } |
2569 | 2581 |
2570 } // namespace cricket | 2582 } // namespace cricket |
OLD | NEW |