OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <algorithm> // max | 10 #include <algorithm> // max |
(...skipping 1974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1985 const char* const codec_name_; | 1985 const char* const codec_name_; |
1986 rtc::Event init_encode_event_; | 1986 rtc::Event init_encode_event_; |
1987 size_t num_initializations_; | 1987 size_t num_initializations_; |
1988 VideoSendStream* stream_; | 1988 VideoSendStream* stream_; |
1989 VideoEncoderConfig encoder_config_; | 1989 VideoEncoderConfig encoder_config_; |
1990 }; | 1990 }; |
1991 | 1991 |
1992 template <> | 1992 template <> |
1993 void VideoCodecConfigObserver<VideoCodecH264>::VerifyCodecSpecifics( | 1993 void VideoCodecConfigObserver<VideoCodecH264>::VerifyCodecSpecifics( |
1994 const VideoCodec& config) const { | 1994 const VideoCodec& config) const { |
1995 EXPECT_EQ(0, memcmp(&config.codecSpecific.H264, &encoder_settings_, | 1995 EXPECT_EQ( |
1996 sizeof(encoder_settings_))); | 1996 0, memcmp(&config.H264(), &encoder_settings_, sizeof(encoder_settings_))); |
1997 } | 1997 } |
1998 | 1998 |
1999 template <> | 1999 template <> |
2000 rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> | 2000 rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
2001 VideoCodecConfigObserver<VideoCodecH264>::GetEncoderSpecificSettings() const { | 2001 VideoCodecConfigObserver<VideoCodecH264>::GetEncoderSpecificSettings() const { |
2002 return new rtc::RefCountedObject< | 2002 return new rtc::RefCountedObject< |
2003 VideoEncoderConfig::H264EncoderSpecificSettings>(encoder_settings_); | 2003 VideoEncoderConfig::H264EncoderSpecificSettings>(encoder_settings_); |
2004 } | 2004 } |
2005 | 2005 |
2006 template <> | 2006 template <> |
2007 void VideoCodecConfigObserver<VideoCodecVP8>::VerifyCodecSpecifics( | 2007 void VideoCodecConfigObserver<VideoCodecVP8>::VerifyCodecSpecifics( |
2008 const VideoCodec& config) const { | 2008 const VideoCodec& config) const { |
2009 // Check that the number of temporal layers has propagated properly to | 2009 // Check that the number of temporal layers has propagated properly to |
2010 // VideoCodec. | 2010 // VideoCodec. |
2011 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, | 2011 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, |
2012 config.codecSpecific.VP8.numberOfTemporalLayers); | 2012 config.VP8().numberOfTemporalLayers); |
2013 | 2013 |
2014 for (unsigned char i = 0; i < config.numberOfSimulcastStreams; ++i) { | 2014 for (unsigned char i = 0; i < config.numberOfSimulcastStreams; ++i) { |
2015 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, | 2015 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, |
2016 config.simulcastStream[i].numberOfTemporalLayers); | 2016 config.simulcastStream[i].numberOfTemporalLayers); |
2017 } | 2017 } |
2018 | 2018 |
2019 // Set expected temporal layers as they should have been set when | 2019 // Set expected temporal layers as they should have been set when |
2020 // reconfiguring the encoder and not match the set config. | 2020 // reconfiguring the encoder and not match the set config. |
2021 VideoCodecVP8 encoder_settings = encoder_settings_; | 2021 VideoCodecVP8 encoder_settings = encoder_settings_; |
2022 encoder_settings.numberOfTemporalLayers = | 2022 encoder_settings.numberOfTemporalLayers = |
2023 kVideoCodecConfigObserverNumberOfTemporalLayers; | 2023 kVideoCodecConfigObserverNumberOfTemporalLayers; |
2024 EXPECT_EQ(0, memcmp(&config.codecSpecific.VP8, &encoder_settings, | 2024 EXPECT_EQ( |
2025 sizeof(encoder_settings_))); | 2025 0, memcmp(&config.VP8(), &encoder_settings, sizeof(encoder_settings_))); |
2026 } | 2026 } |
2027 | 2027 |
2028 template <> | 2028 template <> |
2029 rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> | 2029 rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
2030 VideoCodecConfigObserver<VideoCodecVP8>::GetEncoderSpecificSettings() const { | 2030 VideoCodecConfigObserver<VideoCodecVP8>::GetEncoderSpecificSettings() const { |
2031 return new rtc::RefCountedObject< | 2031 return new rtc::RefCountedObject< |
2032 VideoEncoderConfig::Vp8EncoderSpecificSettings>(encoder_settings_); | 2032 VideoEncoderConfig::Vp8EncoderSpecificSettings>(encoder_settings_); |
2033 } | 2033 } |
2034 | 2034 |
2035 template <> | 2035 template <> |
2036 void VideoCodecConfigObserver<VideoCodecVP9>::VerifyCodecSpecifics( | 2036 void VideoCodecConfigObserver<VideoCodecVP9>::VerifyCodecSpecifics( |
2037 const VideoCodec& config) const { | 2037 const VideoCodec& config) const { |
2038 // Check that the number of temporal layers has propagated properly to | 2038 // Check that the number of temporal layers has propagated properly to |
2039 // VideoCodec. | 2039 // VideoCodec. |
2040 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, | 2040 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, |
2041 config.codecSpecific.VP9.numberOfTemporalLayers); | 2041 config.VP9().numberOfTemporalLayers); |
2042 | 2042 |
2043 for (unsigned char i = 0; i < config.numberOfSimulcastStreams; ++i) { | 2043 for (unsigned char i = 0; i < config.numberOfSimulcastStreams; ++i) { |
2044 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, | 2044 EXPECT_EQ(kVideoCodecConfigObserverNumberOfTemporalLayers, |
2045 config.simulcastStream[i].numberOfTemporalLayers); | 2045 config.simulcastStream[i].numberOfTemporalLayers); |
2046 } | 2046 } |
2047 | 2047 |
2048 // Set expected temporal layers as they should have been set when | 2048 // Set expected temporal layers as they should have been set when |
2049 // reconfiguring the encoder and not match the set config. | 2049 // reconfiguring the encoder and not match the set config. |
2050 VideoCodecVP9 encoder_settings = encoder_settings_; | 2050 VideoCodecVP9 encoder_settings = encoder_settings_; |
2051 encoder_settings.numberOfTemporalLayers = | 2051 encoder_settings.numberOfTemporalLayers = |
2052 kVideoCodecConfigObserverNumberOfTemporalLayers; | 2052 kVideoCodecConfigObserverNumberOfTemporalLayers; |
2053 EXPECT_EQ(0, memcmp(&config.codecSpecific.VP9, &encoder_settings, | 2053 EXPECT_EQ( |
2054 sizeof(encoder_settings_))); | 2054 0, memcmp(&(config.VP9()), &encoder_settings, sizeof(encoder_settings_))); |
2055 } | 2055 } |
2056 | 2056 |
2057 template <> | 2057 template <> |
2058 rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> | 2058 rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> |
2059 VideoCodecConfigObserver<VideoCodecVP9>::GetEncoderSpecificSettings() const { | 2059 VideoCodecConfigObserver<VideoCodecVP9>::GetEncoderSpecificSettings() const { |
2060 return new rtc::RefCountedObject< | 2060 return new rtc::RefCountedObject< |
2061 VideoEncoderConfig::Vp9EncoderSpecificSettings>(encoder_settings_); | 2061 VideoEncoderConfig::Vp9EncoderSpecificSettings>(encoder_settings_); |
2062 } | 2062 } |
2063 | 2063 |
2064 TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp8Config) { | 2064 TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp8Config) { |
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2888 observation_complete_.Set(); | 2888 observation_complete_.Set(); |
2889 } | 2889 } |
2890 } | 2890 } |
2891 } test; | 2891 } test; |
2892 | 2892 |
2893 RunBaseTest(&test); | 2893 RunBaseTest(&test); |
2894 } | 2894 } |
2895 #endif // !defined(RTC_DISABLE_VP9) | 2895 #endif // !defined(RTC_DISABLE_VP9) |
2896 | 2896 |
2897 } // namespace webrtc | 2897 } // namespace webrtc |
OLD | NEW |