1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 19 #include "connect_test.h" 20 #include "tsc_h324m_config_interface.h" 21 #include "pvmp4h263encextension.h" 22 23 24 void connect_test::test() 25 { 26 fprintf(fileoutput, "Start %s test, num runs %d, proxy %d.\n", iRunTimerTest ? "timer configuration and encoder extension IF" : "connect", iMaxRuns, iUseProxy); 27 int error = 0; 28 29 scheduler = OsclExecScheduler::Current(); 30 31 this->AddToScheduler(); 32 33 if (start_async_test()) 34 { 35 OSCL_TRY(error, scheduler->StartScheduler()); 36 if (error != 0) 37 { 38 OSCL_LEAVE(error); 39 } 40 } 41 42 this->RemoveFromScheduler(); 43 } 44 45 46 void connect_test::Run() 47 { 48 if (terminal) 49 { 50 if (iUseProxy) 51 { 52 CPV2WayProxyFactory::DeleteTerminal(terminal); 53 } 54 else 55 { 56 CPV2WayEngineFactory::DeleteTerminal(terminal); 57 } 58 terminal = NULL; 59 } 60 61 scheduler->StopScheduler(); 62 } 63 64 void connect_test::DoCancel() 65 { 66 } 67 68 69 void connect_test::HandleInformationalEvent(const PVAsyncInformationalEvent& aEvent) 70 { 71 72 switch (aEvent.GetEventType()) 73 { 74 case PVT_INDICATION_DISCONNECT: 75 iAudioSourceAdded = false; 76 iVideoSourceAdded = false; 77 iAudioSinkAdded = false; 78 iVideoSinkAdded = false; 79 break; 80 81 case PVT_INDICATION_INTERNAL_ERROR: 82 break; 83 84 case PVT_INDICATION_INCOMING_TRACK: 85 printf("Incoming Indication\n"); 86 break; 87 88 default: 89 break; 90 } 91 } 92 93 void connect_test::InitSucceeded() 94 { 95 i324mConfigInterface = iH324MConfig; 96 //OSCL_TRY(error, i324mIFCommandId = terminal->QueryInterface(h324mUuid, i324mConfigInterface,NULL)); 97 if (i324mConfigInterface == NULL) 98 { 99 test_is_true(false); 100 reset(); 101 return; 102 103 } 104 // set some timers via the interface 105 H324MConfigInterface * i324Interface = (H324MConfigInterface *)i324mConfigInterface; 106 if (iRunTimerTest) 107 { 108 i324Interface->SetTimerCounter(EH324Timer, 1, 1, 10, NULL); 109 i324Interface->SetTimerCounter(EH324Counter, 4, 1, 10, NULL); 110 } 111 i324Interface->removeRef(); 112 iStackIFSet = true; 113 int error; 114 PVUuid mp4h263EncUuid = PVMp4H263EncExtensionUUID; 115 OSCL_TRY(error, iEncoderIFCommandId = terminal->QueryInterface(mp4h263EncUuid, iMP4H263EncoderInterface, NULL)); 116 if (error) 117 { 118 test_is_true(false); 119 reset(); 120 } 121 } 122 123 void connect_test::InitFailed() 124 { 125 test_is_true(false); 126 test_base::InitFailed(); 127 } 128 129 void connect_test::EncoderIFSucceeded() 130 { 131 PVUuid mp4h263EncUuid = PVMp4H263EncExtensionUUID; 132 PVMp4H263EncExtensionInterface *ptr = (PVMp4H263EncExtensionInterface *) iMP4H263EncoderInterface; 133 // Default frame rate is 5 134 ptr->SetOutputFrameRate(0, 4); 135 iMP4H263EncoderInterface->removeRef(); 136 iEncoderIFSet = true; 137 connect(); 138 } 139 140 void connect_test::EncoderIFFailed() 141 { 142 // test_is_true(false); 143 reset(); 144 } 145 146 void connect_test::ConnectFailed() 147 { 148 test_base::ConnectFailed(); 149 disconnect(); 150 } 151 152 void connect_test::ConnectCancelled() 153 { 154 ConnectFailed(); 155 } 156 157 void connect_test::DisCmdSucceeded() 158 { 159 if (++iCurrentRun < iMaxRuns) 160 { 161 connect(); 162 } 163 else 164 { 165 reset(); 166 } 167 destroy_sink_source(); 168 } 169 170 void connect_test::DisCmdFailed() 171 { 172 test_is_true(false); 173 reset(); 174 // yep- this is how the code was. 175 if (++iCurrentRun < iMaxRuns) 176 { 177 connect(); 178 } 179 else 180 { 181 reset(); 182 } 183 destroy_sink_source(); 184 } 185 186 187 188 189 190 191