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

Side by Side Diff: webrtc/common_video/i420_video_frame_unittest.cc

Issue 2444383009: Delete deprecated method VideoFrame::CreateFrame. (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | webrtc/common_video/video_frame.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 const int kSizeY = 400; 144 const int kSizeY = 400;
145 const int kSizeU = 100; 145 const int kSizeU = 100;
146 const int kSizeV = 100; 146 const int kSizeV = 100;
147 const VideoRotation kRotation = kVideoRotation_270; 147 const VideoRotation kRotation = kVideoRotation_270;
148 uint8_t buffer_y[kSizeY]; 148 uint8_t buffer_y[kSizeY];
149 uint8_t buffer_u[kSizeU]; 149 uint8_t buffer_u[kSizeU];
150 uint8_t buffer_v[kSizeV]; 150 uint8_t buffer_v[kSizeV];
151 memset(buffer_y, 16, kSizeY); 151 memset(buffer_y, 16, kSizeY);
152 memset(buffer_u, 8, kSizeU); 152 memset(buffer_u, 8, kSizeU);
153 memset(buffer_v, 4, kSizeV); 153 memset(buffer_v, 4, kSizeV);
154 VideoFrame frame1; 154 VideoFrame frame1(
155 frame1.CreateFrame(buffer_y, buffer_u, buffer_v, width, height, 155 I420Buffer::Copy(new rtc::RefCountedObject<webrtc::WrappedI420Buffer>(
156 stride_y, stride_u, stride_v, kRotation); 156 width, height,
157 buffer_y, stride_y,
158 buffer_u, stride_u,
159 buffer_v, stride_v,
160 rtc::Callback0<void>([](){}))),
161 kRotation, 0);
157 frame1.set_timestamp(timestamp); 162 frame1.set_timestamp(timestamp);
158 frame1.set_ntp_time_ms(ntp_time_ms); 163 frame1.set_ntp_time_ms(ntp_time_ms);
159 frame1.set_render_time_ms(render_time_ms); 164 frame1.set_render_time_ms(render_time_ms);
160 VideoFrame frame2; 165 VideoFrame frame2(frame1);
161 frame2.ShallowCopy(frame1);
162 166
163 // To be able to access the buffers, we need const pointers to the frames. 167 EXPECT_EQ(frame1.video_frame_buffer(), frame2.video_frame_buffer());
164 const VideoFrame* const_frame1_ptr = &frame1; 168 EXPECT_EQ(frame1.video_frame_buffer()->DataY(),
165 const VideoFrame* const_frame2_ptr = &frame2; 169 frame2.video_frame_buffer()->DataY());
166 170 EXPECT_EQ(frame1.video_frame_buffer()->DataU(),
167 EXPECT_TRUE(const_frame1_ptr->video_frame_buffer()->DataY() == 171 frame2.video_frame_buffer()->DataU());
168 const_frame2_ptr->video_frame_buffer()->DataY()); 172 EXPECT_EQ(frame1.video_frame_buffer()->DataV(),
169 EXPECT_TRUE(const_frame1_ptr->video_frame_buffer()->DataU() == 173 frame2.video_frame_buffer()->DataV());
170 const_frame2_ptr->video_frame_buffer()->DataU());
171 EXPECT_TRUE(const_frame1_ptr->video_frame_buffer()->DataV() ==
172 const_frame2_ptr->video_frame_buffer()->DataV());
173 174
174 EXPECT_EQ(frame2.timestamp(), frame1.timestamp()); 175 EXPECT_EQ(frame2.timestamp(), frame1.timestamp());
175 EXPECT_EQ(frame2.ntp_time_ms(), frame1.ntp_time_ms()); 176 EXPECT_EQ(frame2.ntp_time_ms(), frame1.ntp_time_ms());
176 EXPECT_EQ(frame2.render_time_ms(), frame1.render_time_ms()); 177 EXPECT_EQ(frame2.render_time_ms(), frame1.render_time_ms());
177 EXPECT_EQ(frame2.rotation(), frame1.rotation()); 178 EXPECT_EQ(frame2.rotation(), frame1.rotation());
178 179
179 frame2.set_timestamp(timestamp + 1); 180 frame2.set_timestamp(timestamp + 1);
180 frame2.set_ntp_time_ms(ntp_time_ms + 1); 181 frame2.set_ntp_time_ms(ntp_time_ms + 1);
181 frame2.set_render_time_ms(render_time_ms + 1); 182 frame2.set_render_time_ms(render_time_ms + 1);
182 frame2.set_rotation(kVideoRotation_90); 183 frame2.set_rotation(kVideoRotation_90);
183 184
184 EXPECT_NE(frame2.timestamp(), frame1.timestamp()); 185 EXPECT_NE(frame2.timestamp(), frame1.timestamp());
185 EXPECT_NE(frame2.ntp_time_ms(), frame1.ntp_time_ms()); 186 EXPECT_NE(frame2.ntp_time_ms(), frame1.ntp_time_ms());
186 EXPECT_NE(frame2.render_time_ms(), frame1.render_time_ms()); 187 EXPECT_NE(frame2.render_time_ms(), frame1.render_time_ms());
187 EXPECT_NE(frame2.rotation(), frame1.rotation()); 188 EXPECT_NE(frame2.rotation(), frame1.rotation());
188 } 189 }
189 190
190 TEST(TestVideoFrame, CopyBuffer) {
191 VideoFrame frame1, frame2;
192 int width = 15;
193 int height = 15;
194 int stride_y = 15;
195 int stride_uv = 10;
196 const int kSizeY = 225;
197 const int kSizeUv = 80;
198
199 uint8_t buffer_y[kSizeY];
200 uint8_t buffer_u[kSizeUv];
201 uint8_t buffer_v[kSizeUv];
202 memset(buffer_y, 16, kSizeY);
203 memset(buffer_u, 8, kSizeUv);
204 memset(buffer_v, 4, kSizeUv);
205 frame2.CreateFrame(buffer_y, buffer_u, buffer_v,
206 width, height, stride_y, stride_uv, stride_uv,
207 kVideoRotation_0);
208 // Expect exactly the same pixel data.
209 EXPECT_TRUE(test::EqualPlane(buffer_y, frame2.video_frame_buffer()->DataY(),
210 stride_y, 15, 15));
211 EXPECT_TRUE(test::EqualPlane(buffer_u, frame2.video_frame_buffer()->DataU(),
212 stride_uv, 8, 8));
213 EXPECT_TRUE(test::EqualPlane(buffer_v, frame2.video_frame_buffer()->DataV(),
214 stride_uv, 8, 8));
215 }
216
217 TEST(TestVideoFrame, TextureInitialValues) { 191 TEST(TestVideoFrame, TextureInitialValues) {
218 test::FakeNativeHandle* handle = new test::FakeNativeHandle(); 192 test::FakeNativeHandle* handle = new test::FakeNativeHandle();
219 VideoFrame frame = test::FakeNativeHandle::CreateFrame( 193 VideoFrame frame = test::FakeNativeHandle::CreateFrame(
220 handle, 640, 480, 100, 10, webrtc::kVideoRotation_0); 194 handle, 640, 480, 100, 10, webrtc::kVideoRotation_0);
221 EXPECT_EQ(640, frame.width()); 195 EXPECT_EQ(640, frame.width());
222 EXPECT_EQ(480, frame.height()); 196 EXPECT_EQ(480, frame.height());
223 EXPECT_EQ(100u, frame.timestamp()); 197 EXPECT_EQ(100u, frame.timestamp());
224 EXPECT_EQ(10, frame.render_time_ms()); 198 EXPECT_EQ(10, frame.render_time_ms());
225 ASSERT_TRUE(frame.video_frame_buffer() != nullptr); 199 ASSERT_TRUE(frame.video_frame_buffer() != nullptr);
226 EXPECT_EQ(handle, frame.video_frame_buffer()->native_handle()); 200 EXPECT_EQ(handle, frame.video_frame_buffer()->native_handle());
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 CheckRotate(640, 480, GetParam(), *rotated_buffer); 291 CheckRotate(640, 480, GetParam(), *rotated_buffer);
318 } 292 }
319 293
320 INSTANTIATE_TEST_CASE_P(Rotate, TestI420BufferRotate, 294 INSTANTIATE_TEST_CASE_P(Rotate, TestI420BufferRotate,
321 ::testing::Values(kVideoRotation_0, 295 ::testing::Values(kVideoRotation_0,
322 kVideoRotation_90, 296 kVideoRotation_90,
323 kVideoRotation_180, 297 kVideoRotation_180,
324 kVideoRotation_270)); 298 kVideoRotation_270));
325 299
326 } // namespace webrtc 300 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/common_video/video_frame.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698