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 1803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1814 | 1814 |
1815 virtual void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) = 0; | 1815 virtual void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) = 0; |
1816 | 1816 |
1817 private: | 1817 private: |
1818 const int kVp9PayloadType = 105; | 1818 const int kVp9PayloadType = 105; |
1819 | 1819 |
1820 void ModifyConfigs(VideoSendStream::Config* send_config, | 1820 void ModifyConfigs(VideoSendStream::Config* send_config, |
1821 std::vector<VideoReceiveStream::Config>* receive_configs, | 1821 std::vector<VideoReceiveStream::Config>* receive_configs, |
1822 VideoEncoderConfig* encoder_config) override { | 1822 VideoEncoderConfig* encoder_config) override { |
1823 encoder_config->encoder_specific_settings = &vp9_settings_; | 1823 encoder_config->encoder_specific_settings = &vp9_settings_; |
| 1824 encoder_config->content_type = VideoEncoderConfig::ContentType::kScreen; |
1824 send_config->encoder_settings.encoder = vp9_encoder_.get(); | 1825 send_config->encoder_settings.encoder = vp9_encoder_.get(); |
1825 send_config->encoder_settings.payload_name = "VP9"; | 1826 send_config->encoder_settings.payload_name = "VP9"; |
1826 send_config->encoder_settings.payload_type = kVp9PayloadType; | 1827 send_config->encoder_settings.payload_type = kVp9PayloadType; |
1827 ModifyConfigsHook(send_config, receive_configs, encoder_config); | 1828 ModifyConfigsHook(send_config, receive_configs, encoder_config); |
1828 } | 1829 } |
1829 | 1830 |
1830 void PerformTest() override { | 1831 void PerformTest() override { |
1831 EXPECT_EQ(kEventSignaled, Wait()) | 1832 EXPECT_EQ(kEventSignaled, Wait()) |
1832 << "Test timed out waiting for VP9 packet"; | 1833 << "Test timed out waiting for VP9 packet"; |
1833 } | 1834 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1884 VideoSendStream::Config* send_config, | 1885 VideoSendStream::Config* send_config, |
1885 std::vector<VideoReceiveStream::Config>* receive_configs, | 1886 std::vector<VideoReceiveStream::Config>* receive_configs, |
1886 VideoEncoderConfig* encoder_config) override { | 1887 VideoEncoderConfig* encoder_config) override { |
1887 vp9_settings_.flexibleMode = true; | 1888 vp9_settings_.flexibleMode = true; |
1888 } | 1889 } |
1889 | 1890 |
1890 void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override { | 1891 void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override { |
1891 EXPECT_TRUE(vp9videoHeader->flexible_mode); | 1892 EXPECT_TRUE(vp9videoHeader->flexible_mode); |
1892 observation_complete_->Set(); | 1893 observation_complete_->Set(); |
1893 } | 1894 } |
| 1895 } test; |
| 1896 |
| 1897 RunBaseTest(&test); |
| 1898 } |
| 1899 |
| 1900 TEST_F(VideoSendStreamTest, VP9FlexModeHasPictureId) { |
| 1901 class FlexibleMode : public VP9HeaderObeserver { |
| 1902 void ModifyConfigsHook( |
| 1903 VideoSendStream::Config* send_config, |
| 1904 std::vector<VideoReceiveStream::Config>* receive_configs, |
| 1905 VideoEncoderConfig* encoder_config) override { |
| 1906 vp9_settings_.flexibleMode = true; |
| 1907 } |
| 1908 |
| 1909 void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override { |
| 1910 EXPECT_NE(vp9videoHeader->picture_id, kNoPictureId); |
| 1911 observation_complete_->Set(); |
| 1912 } |
| 1913 } test; |
| 1914 |
| 1915 RunBaseTest(&test); |
| 1916 } |
| 1917 |
| 1918 TEST_F(VideoSendStreamTest, VP9FlexModeRefCount) { |
| 1919 class FlexibleMode : public VP9HeaderObeserver { |
| 1920 void ModifyConfigsHook( |
| 1921 VideoSendStream::Config* send_config, |
| 1922 std::vector<VideoReceiveStream::Config>* receive_configs, |
| 1923 VideoEncoderConfig* encoder_config) override { |
| 1924 vp9_settings_.flexibleMode = true; |
| 1925 } |
| 1926 |
| 1927 void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override { |
| 1928 EXPECT_TRUE(vp9videoHeader->flexible_mode); |
| 1929 if (vp9videoHeader->inter_pic_predicted) { |
| 1930 EXPECT_GT(vp9videoHeader->num_ref_pics, 0u); |
| 1931 observation_complete_->Set(); |
| 1932 } |
| 1933 } |
| 1934 } test; |
| 1935 |
| 1936 RunBaseTest(&test); |
| 1937 } |
| 1938 |
| 1939 TEST_F(VideoSendStreamTest, VP9FlexModeRefs) { |
| 1940 class FlexibleMode : public VP9HeaderObeserver { |
| 1941 void ModifyConfigsHook( |
| 1942 VideoSendStream::Config* send_config, |
| 1943 std::vector<VideoReceiveStream::Config>* receive_configs, |
| 1944 VideoEncoderConfig* encoder_config) override { |
| 1945 vp9_settings_.flexibleMode = true; |
| 1946 } |
| 1947 |
| 1948 void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override { |
| 1949 EXPECT_TRUE(vp9videoHeader->flexible_mode); |
| 1950 if (vp9videoHeader->inter_pic_predicted) { |
| 1951 EXPECT_GT(vp9videoHeader->num_ref_pics, 0u); |
| 1952 observation_complete_->Set(); |
| 1953 } |
| 1954 } |
1894 | 1955 |
1895 } test; | 1956 } test; |
1896 | 1957 |
1897 RunBaseTest(&test); | 1958 RunBaseTest(&test); |
1898 } | 1959 } |
1899 | 1960 |
1900 } // namespace webrtc | 1961 } // namespace webrtc |
OLD | NEW |