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

Side by Side Diff: webrtc/modules/video_render/test/testAPI/testAPI.cc

Issue 1813173002: Deletes the class VideoRendererCallback. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase, and tweak of DEPS files. Created 4 years, 9 months 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) 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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 241
242 *outWindow = _window; 242 *outWindow = _window;
243 *outDisplay = _display; 243 *outDisplay = _display;
244 244
245 return 0; 245 return 0;
246 } 246 }
247 #endif // WEBRTC_LINUX 247 #endif // WEBRTC_LINUX
248 248
249 // Note: Mac code is in testApi_mac.mm. 249 // Note: Mac code is in testApi_mac.mm.
250 250
251 class MyRenderCallback: public VideoRenderCallback 251 class MyRenderCallback: public rtc::VideoSinkInterface<VideoFrame>
252 { 252 {
253 public: 253 public:
254 MyRenderCallback() : 254 MyRenderCallback() :
255 _cnt(0) 255 _cnt(0)
256 { 256 {
257 } 257 }
258 ; 258 ;
259 ~MyRenderCallback() 259 ~MyRenderCallback()
260 { 260 {
261 } 261 }
262 ; 262 ;
263 virtual int32_t RenderFrame(const uint32_t streamId, 263 void OnFrame(const VideoFrame& videoFrame) override {
264 const VideoFrame& videoFrame) {
265 _cnt++; 264 _cnt++;
266 if (_cnt % 100 == 0) 265 if (_cnt % 100 == 0)
267 { 266 {
268 printf("Render callback %d \n",_cnt); 267 printf("Render callback %d \n",_cnt);
269 } 268 }
270 return 0;
271 } 269 }
272 int32_t _cnt; 270 int32_t _cnt;
273 }; 271 };
274 272
275 void GetTestVideoFrame(VideoFrame* frame, uint8_t startColor) { 273 void GetTestVideoFrame(VideoFrame* frame, uint8_t startColor) {
276 // changing color 274 // changing color
277 static uint8_t color = startColor; 275 static uint8_t color = startColor;
278 276
279 memset(frame->buffer(kYPlane), color, frame->allocated_size(kYPlane)); 277 memset(frame->buffer(kYPlane), color, frame->allocated_size(kYPlane));
280 memset(frame->buffer(kUPlane), color, frame->allocated_size(kUPlane)); 278 memset(frame->buffer(kUPlane), color, frame->allocated_size(kUPlane));
281 memset(frame->buffer(kVPlane), color, frame->allocated_size(kVPlane)); 279 memset(frame->buffer(kVPlane), color, frame->allocated_size(kVPlane));
282 280
283 ++color; 281 ++color;
284 } 282 }
285 283
286 int TestSingleStream(VideoRender* renderModule) { 284 int TestSingleStream(VideoRender* renderModule) {
287 int error = 0; 285 int error = 0;
288 // Add settings for a stream to render 286 // Add settings for a stream to render
289 printf("Add stream 0 to entire window\n"); 287 printf("Add stream 0 to entire window\n");
290 const int streamId0 = 0; 288 const int streamId0 = 0;
291 VideoRenderCallback* renderCallback0 = renderModule->AddIncomingRenderStream (streamId0, 0, 0.0f, 0.0f, 1.0f, 1.0f); 289 rtc::VideoSinkInterface<VideoFrame>* renderCallback0 = renderModule->AddInco mingRenderStream(streamId0, 0, 0.0f, 0.0f, 1.0f, 1.0f);
perkj_webrtc 2016/03/31 05:11:58 line length
nisse-webrtc 2016/03/31 07:07:20 Done.
292 assert(renderCallback0 != NULL); 290 assert(renderCallback0 != NULL);
293 291
294 printf("Start render\n"); 292 printf("Start render\n");
295 error = renderModule->StartRender(streamId0); 293 error = renderModule->StartRender(streamId0);
296 if (error != 0) { 294 if (error != 0) {
297 // TODO(phoglund): This test will not work if compiled in release mode. 295 // TODO(phoglund): This test will not work if compiled in release mode.
298 // This rather silly construct here is to avoid compilation errors when 296 // This rather silly construct here is to avoid compilation errors when
299 // compiling in release. Release => no asserts => unused 'error' variable. 297 // compiling in release. Release => no asserts => unused 'error' variable.
300 assert(false); 298 assert(false);
301 } 299 }
302 300
303 // Loop through an I420 file and render each frame 301 // Loop through an I420 file and render each frame
304 const int width = 352; 302 const int width = 352;
305 const int half_width = (width + 1) / 2; 303 const int half_width = (width + 1) / 2;
306 const int height = 288; 304 const int height = 288;
307 305
308 VideoFrame videoFrame0; 306 VideoFrame videoFrame0;
309 videoFrame0.CreateEmptyFrame(width, height, width, half_width, half_width); 307 videoFrame0.CreateEmptyFrame(width, height, width, half_width, half_width);
310 308
311 const uint32_t renderDelayMs = 500; 309 const uint32_t renderDelayMs = 500;
312 310
313 for (int i=0; i<TEST_FRAME_NUM; i++) { 311 for (int i=0; i<TEST_FRAME_NUM; i++) {
314 GetTestVideoFrame(&videoFrame0, TEST_STREAM0_START_COLOR); 312 GetTestVideoFrame(&videoFrame0, TEST_STREAM0_START_COLOR);
315 // Render this frame with the specified delay 313 // Render this frame with the specified delay
316 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp() 314 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp()
317 + renderDelayMs); 315 + renderDelayMs);
318 renderCallback0->RenderFrame(streamId0, videoFrame0); 316 renderCallback0->OnFrame(videoFrame0);
319 SleepMs(1000/TEST_FRAME_RATE); 317 SleepMs(1000/TEST_FRAME_RATE);
320 } 318 }
321 319
322 320
323 // Shut down 321 // Shut down
324 printf("Closing...\n"); 322 printf("Closing...\n");
325 error = renderModule->StopRender(streamId0); 323 error = renderModule->StopRender(streamId0);
326 assert(error == 0); 324 assert(error == 0);
327 325
328 error = renderModule->DeleteIncomingRenderStream(streamId0); 326 error = renderModule->DeleteIncomingRenderStream(streamId0);
(...skipping 16 matching lines...) Expand all
345 return 0; 343 return 0;
346 } 344 }
347 345
348 int TestBitmapText(VideoRender* renderModule) { 346 int TestBitmapText(VideoRender* renderModule) {
349 #if defined(WIN32) 347 #if defined(WIN32)
350 348
351 int error = 0; 349 int error = 0;
352 // Add settings for a stream to render 350 // Add settings for a stream to render
353 printf("Add stream 0 to entire window\n"); 351 printf("Add stream 0 to entire window\n");
354 const int streamId0 = 0; 352 const int streamId0 = 0;
355 VideoRenderCallback* renderCallback0 = renderModule->AddIncomingRenderStream (streamId0, 0, 0.0f, 0.0f, 1.0f, 1.0f); 353 rtc::VideoSinkInterface<VideoFrame>* renderCallback0 = renderModule->AddInco mingRenderStream(streamId0, 0, 0.0f, 0.0f, 1.0f, 1.0f);
perkj_webrtc 2016/03/31 05:11:58 line length
356 assert(renderCallback0 != NULL); 354 assert(renderCallback0 != NULL);
357 355
358 printf("Adding Bitmap\n"); 356 printf("Adding Bitmap\n");
359 DDCOLORKEY ColorKey; // black 357 DDCOLORKEY ColorKey; // black
360 ColorKey.dwColorSpaceHighValue = RGB(0, 0, 0); 358 ColorKey.dwColorSpaceHighValue = RGB(0, 0, 0);
361 ColorKey.dwColorSpaceLowValue = RGB(0, 0, 0); 359 ColorKey.dwColorSpaceLowValue = RGB(0, 0, 0);
362 HBITMAP hbm = (HBITMAP)LoadImage(NULL, 360 HBITMAP hbm = (HBITMAP)LoadImage(NULL,
363 (LPCTSTR)_T("renderStartImage.bmp"), 361 (LPCTSTR)_T("renderStartImage.bmp"),
364 IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); 362 IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
365 renderModule->SetBitmap(hbm, 0, &ColorKey, 0.0f, 0.0f, 0.3f, 363 renderModule->SetBitmap(hbm, 0, &ColorKey, 0.0f, 0.0f, 0.3f,
(...skipping 16 matching lines...) Expand all
382 VideoFrame videoFrame0; 380 VideoFrame videoFrame0;
383 videoFrame0.CreateEmptyFrame(width, height, width, half_width, half_width); 381 videoFrame0.CreateEmptyFrame(width, height, width, half_width, half_width);
384 382
385 const uint32_t renderDelayMs = 500; 383 const uint32_t renderDelayMs = 500;
386 384
387 for (int i=0; i<TEST_FRAME_NUM; i++) { 385 for (int i=0; i<TEST_FRAME_NUM; i++) {
388 GetTestVideoFrame(&videoFrame0, TEST_STREAM0_START_COLOR); 386 GetTestVideoFrame(&videoFrame0, TEST_STREAM0_START_COLOR);
389 // Render this frame with the specified delay 387 // Render this frame with the specified delay
390 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp() + 388 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp() +
391 renderDelayMs); 389 renderDelayMs);
392 renderCallback0->RenderFrame(streamId0, videoFrame0); 390 renderCallback0->OnFrame(videoFrame0);
393 SleepMs(1000/TEST_FRAME_RATE); 391 SleepMs(1000/TEST_FRAME_RATE);
394 } 392 }
395 // Sleep and let all frames be rendered before closing 393 // Sleep and let all frames be rendered before closing
396 SleepMs(renderDelayMs*2); 394 SleepMs(renderDelayMs*2);
397 395
398 396
399 // Shut down 397 // Shut down
400 printf("Closing...\n"); 398 printf("Closing...\n");
401 ColorKey.dwColorSpaceHighValue = RGB(0,0,0); 399 ColorKey.dwColorSpaceHighValue = RGB(0,0,0);
402 ColorKey.dwColorSpaceLowValue = RGB(0,0,0); 400 ColorKey.dwColorSpaceLowValue = RGB(0,0,0);
(...skipping 10 matching lines...) Expand all
413 411
414 return 0; 412 return 0;
415 } 413 }
416 414
417 int TestMultipleStreams(VideoRender* renderModule) { 415 int TestMultipleStreams(VideoRender* renderModule) {
418 int error = 0; 416 int error = 0;
419 417
420 // Add settings for a stream to render 418 // Add settings for a stream to render
421 printf("Add stream 0\n"); 419 printf("Add stream 0\n");
422 const int streamId0 = 0; 420 const int streamId0 = 0;
423 VideoRenderCallback* renderCallback0 = 421 rtc::VideoSinkInterface<VideoFrame>* renderCallback0 =
perkj_webrtc 2016/03/31 05:11:58 line length here and below
nisse-webrtc 2016/03/31 07:07:20 Not my lines... But I'll break them anyway.
424 renderModule->AddIncomingRenderStream(streamId0, 0, 0.0f, 0.0f, 0.45f, 0 .45f); 422 renderModule->AddIncomingRenderStream(streamId0, 0, 0.0f, 0.0f, 0.45f, 0 .45f);
425 assert(renderCallback0 != NULL); 423 assert(renderCallback0 != NULL);
426 printf("Add stream 1\n"); 424 printf("Add stream 1\n");
427 const int streamId1 = 1; 425 const int streamId1 = 1;
428 VideoRenderCallback* renderCallback1 = 426 rtc::VideoSinkInterface<VideoFrame>* renderCallback1 =
429 renderModule->AddIncomingRenderStream(streamId1, 0, 0.55f, 0.0f, 1.0f, 0 .45f); 427 renderModule->AddIncomingRenderStream(streamId1, 0, 0.55f, 0.0f, 1.0f, 0 .45f);
430 assert(renderCallback1 != NULL); 428 assert(renderCallback1 != NULL);
431 printf("Add stream 2\n"); 429 printf("Add stream 2\n");
432 const int streamId2 = 2; 430 const int streamId2 = 2;
433 VideoRenderCallback* renderCallback2 = 431 rtc::VideoSinkInterface<VideoFrame>* renderCallback2 =
434 renderModule->AddIncomingRenderStream(streamId2, 0, 0.0f, 0.55f, 0.45f, 1.0f); 432 renderModule->AddIncomingRenderStream(streamId2, 0, 0.0f, 0.55f, 0.45f, 1.0f);
435 assert(renderCallback2 != NULL); 433 assert(renderCallback2 != NULL);
436 printf("Add stream 3\n"); 434 printf("Add stream 3\n");
437 const int streamId3 = 3; 435 const int streamId3 = 3;
438 VideoRenderCallback* renderCallback3 = 436 rtc::VideoSinkInterface<VideoFrame>* renderCallback3 =
439 renderModule->AddIncomingRenderStream(streamId3, 0, 0.55f, 0.55f, 1.0f, 1.0f); 437 renderModule->AddIncomingRenderStream(streamId3, 0, 0.55f, 0.55f, 1.0f, 1.0f);
440 assert(renderCallback3 != NULL); 438 assert(renderCallback3 != NULL);
441 error = renderModule->StartRender(streamId0); 439 error = renderModule->StartRender(streamId0);
442 if (error != 0) { 440 if (error != 0) {
443 // TODO(phoglund): This test will not work if compiled in release mode. 441 // TODO(phoglund): This test will not work if compiled in release mode.
444 // This rather silly construct here is to avoid compilation errors when 442 // This rather silly construct here is to avoid compilation errors when
445 // compiling in release. Release => no asserts => unused 'error' variable. 443 // compiling in release. Release => no asserts => unused 'error' variable.
446 assert(false); 444 assert(false);
447 } 445 }
448 error = renderModule->StartRender(streamId1); 446 error = renderModule->StartRender(streamId1);
(...skipping 18 matching lines...) Expand all
467 videoFrame3.CreateEmptyFrame(width, height, width, half_width, half_width); 465 videoFrame3.CreateEmptyFrame(width, height, width, half_width, half_width);
468 466
469 const uint32_t renderDelayMs = 500; 467 const uint32_t renderDelayMs = 500;
470 468
471 // Render frames with the specified delay. 469 // Render frames with the specified delay.
472 for (int i=0; i<TEST_FRAME_NUM; i++) { 470 for (int i=0; i<TEST_FRAME_NUM; i++) {
473 GetTestVideoFrame(&videoFrame0, TEST_STREAM0_START_COLOR); 471 GetTestVideoFrame(&videoFrame0, TEST_STREAM0_START_COLOR);
474 472
475 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp() + 473 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp() +
476 renderDelayMs); 474 renderDelayMs);
477 renderCallback0->RenderFrame(streamId0, videoFrame0); 475 renderCallback0->OnFrame(videoFrame0);
478 476
479 GetTestVideoFrame(&videoFrame1, TEST_STREAM1_START_COLOR); 477 GetTestVideoFrame(&videoFrame1, TEST_STREAM1_START_COLOR);
480 videoFrame1.set_render_time_ms(TickTime::MillisecondTimestamp() + 478 videoFrame1.set_render_time_ms(TickTime::MillisecondTimestamp() +
481 renderDelayMs); 479 renderDelayMs);
482 renderCallback1->RenderFrame(streamId1, videoFrame1); 480 renderCallback1->OnFrame(videoFrame1);
483 481
484 GetTestVideoFrame(&videoFrame2, TEST_STREAM2_START_COLOR); 482 GetTestVideoFrame(&videoFrame2, TEST_STREAM2_START_COLOR);
485 videoFrame2.set_render_time_ms(TickTime::MillisecondTimestamp() + 483 videoFrame2.set_render_time_ms(TickTime::MillisecondTimestamp() +
486 renderDelayMs); 484 renderDelayMs);
487 renderCallback2->RenderFrame(streamId2, videoFrame2); 485 renderCallback2->OnFrame(videoFrame2);
488 486
489 GetTestVideoFrame(&videoFrame3, TEST_STREAM3_START_COLOR); 487 GetTestVideoFrame(&videoFrame3, TEST_STREAM3_START_COLOR);
490 videoFrame3.set_render_time_ms(TickTime::MillisecondTimestamp() + 488 videoFrame3.set_render_time_ms(TickTime::MillisecondTimestamp() +
491 renderDelayMs); 489 renderDelayMs);
492 renderCallback3->RenderFrame(streamId3, videoFrame3); 490 renderCallback3->OnFrame(videoFrame3);
493 491
494 SleepMs(1000/TEST_FRAME_RATE); 492 SleepMs(1000/TEST_FRAME_RATE);
495 } 493 }
496 494
497 // Shut down 495 // Shut down
498 printf("Closing...\n"); 496 printf("Closing...\n");
499 error = renderModule->StopRender(streamId0); 497 error = renderModule->StopRender(streamId0);
500 assert(error == 0); 498 assert(error == 0);
501 error = renderModule->DeleteIncomingRenderStream(streamId0); 499 error = renderModule->DeleteIncomingRenderStream(streamId0);
502 assert(error == 0); 500 assert(error == 0);
(...skipping 11 matching lines...) Expand all
514 assert(error == 0); 512 assert(error == 0);
515 513
516 return 0; 514 return 0;
517 } 515 }
518 516
519 int TestExternalRender(VideoRender* renderModule) { 517 int TestExternalRender(VideoRender* renderModule) {
520 int error = 0; 518 int error = 0;
521 MyRenderCallback *externalRender = new MyRenderCallback(); 519 MyRenderCallback *externalRender = new MyRenderCallback();
522 520
523 const int streamId0 = 0; 521 const int streamId0 = 0;
524 VideoRenderCallback* renderCallback0 = 522 rtc::VideoSinkInterface<VideoFrame>* renderCallback0 =
525 renderModule->AddIncomingRenderStream(streamId0, 0, 0.0f, 0.0f, 523 renderModule->AddIncomingRenderStream(streamId0, 0, 0.0f, 0.0f,
526 1.0f, 1.0f); 524 1.0f, 1.0f);
527 assert(renderCallback0 != NULL); 525 assert(renderCallback0 != NULL);
528 error = renderModule->AddExternalRenderCallback(streamId0, externalRender); 526 error = renderModule->AddExternalRenderCallback(streamId0, externalRender);
529 if (error != 0) { 527 if (error != 0) {
530 // TODO(phoglund): This test will not work if compiled in release mode. 528 // TODO(phoglund): This test will not work if compiled in release mode.
531 // This rather silly construct here is to avoid compilation errors when 529 // This rather silly construct here is to avoid compilation errors when
532 // compiling in release. Release => no asserts => unused 'error' variable. 530 // compiling in release. Release => no asserts => unused 'error' variable.
533 assert(false); 531 assert(false);
534 } 532 }
535 533
536 error = renderModule->StartRender(streamId0); 534 error = renderModule->StartRender(streamId0);
537 assert(error == 0); 535 assert(error == 0);
538 536
539 const int width = 352; 537 const int width = 352;
540 const int half_width = (width + 1) / 2; 538 const int half_width = (width + 1) / 2;
541 const int height = 288; 539 const int height = 288;
542 VideoFrame videoFrame0; 540 VideoFrame videoFrame0;
543 videoFrame0.CreateEmptyFrame(width, height, width, half_width, half_width); 541 videoFrame0.CreateEmptyFrame(width, height, width, half_width, half_width);
544 542
545 const uint32_t renderDelayMs = 500; 543 const uint32_t renderDelayMs = 500;
546 int frameCount = TEST_FRAME_NUM; 544 int frameCount = TEST_FRAME_NUM;
547 for (int i=0; i<frameCount; i++) { 545 for (int i=0; i<frameCount; i++) {
548 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp() + 546 videoFrame0.set_render_time_ms(TickTime::MillisecondTimestamp() +
549 renderDelayMs); 547 renderDelayMs);
550 renderCallback0->RenderFrame(streamId0, videoFrame0); 548 renderCallback0->OnFrame(videoFrame0);
551 SleepMs(33); 549 SleepMs(33);
552 } 550 }
553 551
554 // Sleep and let all frames be rendered before closing 552 // Sleep and let all frames be rendered before closing
555 SleepMs(2*renderDelayMs); 553 SleepMs(2*renderDelayMs);
556 554
557 // Shut down 555 // Shut down
558 printf("Closing...\n"); 556 printf("Closing...\n");
559 error = renderModule->StopRender(streamId0); 557 error = renderModule->StopRender(streamId0);
560 assert(error == 0); 558 assert(error == 0);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 Display* display; 634 Display* display;
637 WebRtcCreateWindow(&testWindow, &display, 0, 352, 288); 635 WebRtcCreateWindow(&testWindow, &display, 0, 352, 288);
638 VideoRenderType windowType = kRenderX11; 636 VideoRenderType windowType = kRenderX11;
639 window = (void*)testWindow; 637 window = (void*)testWindow;
640 #endif // WEBRTC_LINUX 638 #endif // WEBRTC_LINUX
641 639
642 RunVideoRenderTests(window, windowType); 640 RunVideoRenderTests(window, windowType);
643 return 0; 641 return 0;
644 } 642 }
645 #endif // !WEBRTC_MAC 643 #endif // !WEBRTC_MAC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698