1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// vie_autotest_image_process.cc 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// 14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// Settings 16281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/engine_configurations.h" 17281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/test/auto_test/interface/vie_autotest.h" 18281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/test/auto_test/interface/vie_autotest_defines.h" 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 20281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/test/libvietest/include/tb_capture_device.h" 21281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/test/libvietest/include/tb_interfaces.h" 22281cff8cd679728fe395f7f0203c05e763c0c789pbos@webrtc.org#include "webrtc/video_engine/test/libvietest/include/tb_video_channel.h" 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass MyEffectFilter: public webrtc::ViEEffectFilter 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgpublic: 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org MyEffectFilter() {} 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ~MyEffectFilter() {} 30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 319d10769e109601915022fea44ec392645c3b0704wu@webrtc.org virtual int Transform(int size, 329d10769e109601915022fea44ec392645c3b0704wu@webrtc.org unsigned char* frame_buffer, 339d10769e109601915022fea44ec392645c3b0704wu@webrtc.org int64_t ntp_time_ms, 349d10769e109601915022fea44ec392645c3b0704wu@webrtc.org unsigned int timestamp, 359d10769e109601915022fea44ec392645c3b0704wu@webrtc.org unsigned int width, 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org unsigned int height) 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Black and white 399d10769e109601915022fea44ec392645c3b0704wu@webrtc.org memset(frame_buffer + (2 * size) / 3, 0x7f, size / 3); 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}; 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid ViEAutoTest::ViEImageProcessStandardTest() 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //*************************************************************** 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Begin create/initialize WebRTC Video Engine for testing 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //*************************************************************** 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int rtpPort = 6000; 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Create VIE 51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TbInterfaces ViE("ViEImageProcessAPITest"); 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Create a video channel 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TbVideoChannel tbChannel(ViE, webrtc::kVideoCodecVP8); 54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Create a capture device 55b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TbCaptureDevice tbCapture(ViE); 56b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 57b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.ConnectTo(tbChannel.videoChannel); 58b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.StartReceive(rtpPort); 59b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.StartSend(rtpPort); 60b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 61b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org MyEffectFilter effectFilter; 62b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 63b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org RenderCaptureDeviceAndOutputStream(&ViE, &tbChannel, &tbCapture); 64b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 65b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Capture device is renderered in Window 1"); 66b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Remote stream is renderered in Window 2"); 675dee0551c0a2d86cf524e80c033936d3827a20c6stefan@webrtc.org AutoTestSleep(kAutoTestSleepTimeMs); 68b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 69b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //*************************************************************** 70b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Engine ready. Begin testing class 71b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //*************************************************************** 72b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 73b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 74b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->RegisterCaptureEffectFilter( 75b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, effectFilter)); 76b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 77b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Black and white filter registered for capture device, " 78b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org "affects both windows"); 795dee0551c0a2d86cf524e80c033936d3827a20c6stefan@webrtc.org AutoTestSleep(kAutoTestSleepTimeMs); 80b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 81b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterCaptureEffectFilter( 82b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId)); 83b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 84b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->RegisterRenderEffectFilter( 85b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, effectFilter)); 86b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 87b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Remove capture effect filter, adding filter for incoming " 88b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org "stream"); 89b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Only Window 2 should be black and white"); 905dee0551c0a2d86cf524e80c033936d3827a20c6stefan@webrtc.org AutoTestSleep(kAutoTestSleepTimeMs); 91b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 92b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.render->StopRender(tbCapture.captureId)); 93b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.render->RemoveRenderer(tbCapture.captureId)); 94b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 95b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int rtpPort2 = rtpPort + 100; 96b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Create a video channel 97b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TbVideoChannel tbChannel2(ViE, webrtc::kVideoCodecVP8); 98b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 99b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.ConnectTo(tbChannel2.videoChannel); 100b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel2.StartReceive(rtpPort2); 101b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel2.StartSend(rtpPort2); 102b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 103b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.render->AddRenderer( 104b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel2.videoChannel, _window1, 1, 0.0, 0.0, 1.0, 1.0)); 105b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.render->StartRender(tbChannel2.videoChannel)); 106b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterRenderEffectFilter( 107b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel)); 108b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 109b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Local renderer removed, added new channel and rendering in " 110b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org "Window1."); 111b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 112b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->RegisterCaptureEffectFilter( 113b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, effectFilter)); 114b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 115b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Black and white filter registered for capture device, " 116b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org "affects both windows"); 1175dee0551c0a2d86cf524e80c033936d3827a20c6stefan@webrtc.org AutoTestSleep(kAutoTestSleepTimeMs); 118b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 119b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterCaptureEffectFilter( 120b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId)); 121b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 122b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->RegisterSendEffectFilter( 123b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, effectFilter)); 124b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 125b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Capture filter removed."); 126b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ViETest::Log("Black and white filter registered for one channel, Window2 " 127b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org "should be black and white"); 1285dee0551c0a2d86cf524e80c033936d3827a20c6stefan@webrtc.org AutoTestSleep(kAutoTestSleepTimeMs); 129b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 130b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterSendEffectFilter( 131b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel)); 132b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 133b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //*************************************************************** 134b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Testing finished. Tear down Video Engine 135b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //*************************************************************** 136b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 137b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 138b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid ViEAutoTest::ViEImageProcessExtendedTest() 139b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 140b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 141b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 142b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid ViEAutoTest::ViEImageProcessAPITest() 143b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 144b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TbInterfaces ViE("ViEImageProcessAPITest"); 145b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TbVideoChannel tbChannel(ViE, webrtc::kVideoCodecVP8); 146b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TbCaptureDevice tbCapture(ViE); 147b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 148b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.ConnectTo(tbChannel.videoChannel); 149b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 150b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org MyEffectFilter effectFilter; 151b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 152b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 153b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Capture effect filter 154b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 155b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Add effect filter 156b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->RegisterCaptureEffectFilter( 157b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, effectFilter)); 158b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Add again -> error 159b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->RegisterCaptureEffectFilter( 160b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, effectFilter)); 161b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterCaptureEffectFilter( 162b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId)); 163022615bd918aec7671968ad2b873d1487365980cmflodman@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterCaptureEffectFilter( 164b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId)); 165022615bd918aec7671968ad2b873d1487365980cmflodman@webrtc.org 166b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Non-existing capture device 167b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->RegisterCaptureEffectFilter( 168b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, effectFilter)); 169b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 170b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 171b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Render effect filter 172b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 173b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->RegisterRenderEffectFilter( 174b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, effectFilter)); 175b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->RegisterRenderEffectFilter( 176b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, effectFilter)); 177b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterRenderEffectFilter( 178b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel)); 179022615bd918aec7671968ad2b873d1487365980cmflodman@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterRenderEffectFilter( 180b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel)); 181b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 182b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Non-existing channel id 183b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->RegisterRenderEffectFilter( 184b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, effectFilter)); 185b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 186b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 187b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Send effect filter 188b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 189b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->RegisterSendEffectFilter( 190b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, effectFilter)); 191b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->RegisterSendEffectFilter( 192b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, effectFilter)); 193b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterSendEffectFilter( 194b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel)); 195022615bd918aec7671968ad2b873d1487365980cmflodman@webrtc.org EXPECT_EQ(0, ViE.image_process->DeregisterSendEffectFilter( 196b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel)); 197b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->RegisterSendEffectFilter( 198b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, effectFilter)); 199b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 200b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 201b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Deflickering 202b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 203b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->EnableDeflickering( 204b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, true)); 205b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->EnableDeflickering( 206b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, true)); 207b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->EnableDeflickering( 208b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, false)); 209b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->EnableDeflickering( 210b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, false)); 211b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->EnableDeflickering( 212b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, true)); 213b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 214b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 215b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Color enhancement 216b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // 217b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->EnableColorEnhancement( 218b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, false)); 219b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->EnableColorEnhancement( 220b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, true)); 221b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_EQ(0, ViE.image_process->EnableColorEnhancement( 222b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbChannel.videoChannel, false)); 223b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org EXPECT_NE(0, ViE.image_process->EnableColorEnhancement( 224b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org tbCapture.captureId, true)); 225b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 226