Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(353)

Side by Side Diff: webrtc/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc

Issue 2510583002: Reland #2 of Issue 2434073003: Extract bitrate allocation ... (Closed)
Patch Set: Addressed comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2011 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 kTemporalUpdateLastRefAltRef = 46 kTemporalUpdateLastRefAltRef =
47 VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_REF_GF, 47 VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_REF_GF,
48 kTemporalUpdateLastAndGoldenRefAltRef = 48 kTemporalUpdateLastAndGoldenRefAltRef =
49 VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_REF_GF, 49 VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_REF_GF,
50 }; 50 };
51 51
52 TEST(TemporalLayersTest, 2Layers) { 52 TEST(TemporalLayersTest, 2Layers) {
53 DefaultTemporalLayers tl(2, 0); 53 DefaultTemporalLayers tl(2, 0);
54 vpx_codec_enc_cfg_t cfg; 54 vpx_codec_enc_cfg_t cfg;
55 CodecSpecificInfoVP8 vp8_info; 55 CodecSpecificInfoVP8 vp8_info;
56 tl.ConfigureBitrates(500, 500, 30, &cfg); 56 tl.OnRatesUpdated(500, 500, 30);
57 tl.UpdateConfiguration(&cfg);
57 58
58 int expected_flags[16] = { 59 int expected_flags[16] = {
59 kTemporalUpdateLastAndGoldenRefAltRef, 60 kTemporalUpdateLastAndGoldenRefAltRef,
60 kTemporalUpdateGoldenWithoutDependencyRefAltRef, 61 kTemporalUpdateGoldenWithoutDependencyRefAltRef,
61 kTemporalUpdateLastRefAltRef, 62 kTemporalUpdateLastRefAltRef,
62 kTemporalUpdateGoldenRefAltRef, 63 kTemporalUpdateGoldenRefAltRef,
63 kTemporalUpdateLastRefAltRef, 64 kTemporalUpdateLastRefAltRef,
64 kTemporalUpdateGoldenRefAltRef, 65 kTemporalUpdateGoldenRefAltRef,
65 kTemporalUpdateLastRefAltRef, 66 kTemporalUpdateLastRefAltRef,
66 kTemporalUpdateNone, 67 kTemporalUpdateNone,
(...skipping 20 matching lines...) Expand all
87 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx); 88 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx);
88 EXPECT_EQ(expected_layer_sync[i], vp8_info.layerSync); 89 EXPECT_EQ(expected_layer_sync[i], vp8_info.layerSync);
89 timestamp += 3000; 90 timestamp += 3000;
90 } 91 }
91 } 92 }
92 93
93 TEST(TemporalLayersTest, 3Layers) { 94 TEST(TemporalLayersTest, 3Layers) {
94 DefaultTemporalLayers tl(3, 0); 95 DefaultTemporalLayers tl(3, 0);
95 vpx_codec_enc_cfg_t cfg; 96 vpx_codec_enc_cfg_t cfg;
96 CodecSpecificInfoVP8 vp8_info; 97 CodecSpecificInfoVP8 vp8_info;
97 tl.ConfigureBitrates(500, 500, 30, &cfg); 98 tl.OnRatesUpdated(500, 500, 30);
99 tl.UpdateConfiguration(&cfg);
98 100
99 int expected_flags[16] = { 101 int expected_flags[16] = {
100 kTemporalUpdateLastAndGoldenRefAltRef, 102 kTemporalUpdateLastAndGoldenRefAltRef,
101 kTemporalUpdateNoneNoRefGolden, 103 kTemporalUpdateNoneNoRefGolden,
102 kTemporalUpdateGoldenWithoutDependencyRefAltRef, 104 kTemporalUpdateGoldenWithoutDependencyRefAltRef,
103 kTemporalUpdateNone, 105 kTemporalUpdateNone,
104 kTemporalUpdateLastRefAltRef, 106 kTemporalUpdateLastRefAltRef,
105 kTemporalUpdateNone, 107 kTemporalUpdateNone,
106 kTemporalUpdateGoldenRefAltRef, 108 kTemporalUpdateGoldenRefAltRef,
107 kTemporalUpdateNone, 109 kTemporalUpdateNone,
(...skipping 20 matching lines...) Expand all
128 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx); 130 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx);
129 EXPECT_EQ(expected_layer_sync[i], vp8_info.layerSync); 131 EXPECT_EQ(expected_layer_sync[i], vp8_info.layerSync);
130 timestamp += 3000; 132 timestamp += 3000;
131 } 133 }
132 } 134 }
133 135
134 TEST(TemporalLayersTest, 4Layers) { 136 TEST(TemporalLayersTest, 4Layers) {
135 DefaultTemporalLayers tl(4, 0); 137 DefaultTemporalLayers tl(4, 0);
136 vpx_codec_enc_cfg_t cfg; 138 vpx_codec_enc_cfg_t cfg;
137 CodecSpecificInfoVP8 vp8_info; 139 CodecSpecificInfoVP8 vp8_info;
138 tl.ConfigureBitrates(500, 500, 30, &cfg); 140 tl.OnRatesUpdated(500, 500, 30);
141 tl.UpdateConfiguration(&cfg);
139 int expected_flags[16] = { 142 int expected_flags[16] = {
140 kTemporalUpdateLast, 143 kTemporalUpdateLast,
141 kTemporalUpdateNone, 144 kTemporalUpdateNone,
142 kTemporalUpdateAltrefWithoutDependency, 145 kTemporalUpdateAltrefWithoutDependency,
143 kTemporalUpdateNone, 146 kTemporalUpdateNone,
144 kTemporalUpdateGoldenWithoutDependency, 147 kTemporalUpdateGoldenWithoutDependency,
145 kTemporalUpdateNone, 148 kTemporalUpdateNone,
146 kTemporalUpdateAltref, 149 kTemporalUpdateAltref,
147 kTemporalUpdateNone, 150 kTemporalUpdateNone,
148 kTemporalUpdateLast, 151 kTemporalUpdateLast,
(...skipping 19 matching lines...) Expand all
168 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx); 171 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx);
169 EXPECT_EQ(expected_layer_sync[i], vp8_info.layerSync); 172 EXPECT_EQ(expected_layer_sync[i], vp8_info.layerSync);
170 timestamp += 3000; 173 timestamp += 3000;
171 } 174 }
172 } 175 }
173 176
174 TEST(TemporalLayersTest, KeyFrame) { 177 TEST(TemporalLayersTest, KeyFrame) {
175 DefaultTemporalLayers tl(3, 0); 178 DefaultTemporalLayers tl(3, 0);
176 vpx_codec_enc_cfg_t cfg; 179 vpx_codec_enc_cfg_t cfg;
177 CodecSpecificInfoVP8 vp8_info; 180 CodecSpecificInfoVP8 vp8_info;
178 tl.ConfigureBitrates(500, 500, 30, &cfg); 181 tl.OnRatesUpdated(500, 500, 30);
182 tl.UpdateConfiguration(&cfg);
179 183
180 int expected_flags[8] = { 184 int expected_flags[8] = {
181 kTemporalUpdateLastAndGoldenRefAltRef, 185 kTemporalUpdateLastAndGoldenRefAltRef,
182 kTemporalUpdateNoneNoRefGolden, 186 kTemporalUpdateNoneNoRefGolden,
183 kTemporalUpdateGoldenWithoutDependencyRefAltRef, 187 kTemporalUpdateGoldenWithoutDependencyRefAltRef,
184 kTemporalUpdateNone, 188 kTemporalUpdateNone,
185 kTemporalUpdateLastRefAltRef, 189 kTemporalUpdateLastRefAltRef,
186 kTemporalUpdateNone, 190 kTemporalUpdateNone,
187 kTemporalUpdateGoldenRefAltRef, 191 kTemporalUpdateGoldenRefAltRef,
188 kTemporalUpdateNone, 192 kTemporalUpdateNone,
189 }; 193 };
190 int expected_temporal_idx[8] = {0, 0, 0, 0, 0, 0, 0, 2}; 194 int expected_temporal_idx[8] = {0, 0, 0, 0, 0, 0, 0, 2};
191 195
192 uint32_t timestamp = 0; 196 uint32_t timestamp = 0;
193 for (int i = 0; i < 7; ++i) { 197 for (int i = 0; i < 7; ++i) {
194 EXPECT_EQ(expected_flags[i], tl.EncodeFlags(timestamp)); 198 EXPECT_EQ(expected_flags[i], tl.EncodeFlags(timestamp));
195 tl.PopulateCodecSpecific(true, &vp8_info, 0); 199 tl.PopulateCodecSpecific(true, &vp8_info, 0);
196 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx); 200 EXPECT_EQ(expected_temporal_idx[i], vp8_info.temporalIdx);
197 EXPECT_EQ(true, vp8_info.layerSync); 201 EXPECT_EQ(true, vp8_info.layerSync);
198 timestamp += 3000; 202 timestamp += 3000;
199 } 203 }
200 EXPECT_EQ(expected_flags[7], tl.EncodeFlags(timestamp)); 204 EXPECT_EQ(expected_flags[7], tl.EncodeFlags(timestamp));
201 tl.PopulateCodecSpecific(false, &vp8_info, 0); 205 tl.PopulateCodecSpecific(false, &vp8_info, 0);
202 EXPECT_EQ(expected_temporal_idx[7], vp8_info.temporalIdx); 206 EXPECT_EQ(expected_temporal_idx[7], vp8_info.temporalIdx);
203 EXPECT_EQ(true, vp8_info.layerSync); 207 EXPECT_EQ(true, vp8_info.layerSync);
204 } 208 }
205 } // namespace webrtc 209 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698