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 // 20 // This Software is an original work of authorship of PacketVideo Corporation. 21 // Portions of the Software were developed in collaboration with NTT DoCoMo, 22 // Inc. or were derived from the public domain or materials licensed from 23 // third parties. Title and ownership, including all intellectual property 24 // rights in and to the Software shall remain with PacketVideo Corporation 25 // and NTT DoCoMo, Inc. 26 // 27 // ----------------------------------------------------------------------- 28 /*****************************************************************************/ 29 /* file name : tsc_mt.h */ 30 /* file contents : */ 31 /* draw : '96.10.09 */ 32 /*---------------------------------------------------------------------------*/ 33 /* amendment */ 34 /* Copyright (C) 1996 NTT DoCoMo */ 35 /*****************************************************************************/ 36 37 #ifndef TSC_MT_H_INCLUDED 38 #define TSC_MT_H_INCLUDED 39 40 #ifndef PVLOGGER_H_INCLUDED 41 #include "pvlogger.h" 42 #endif 43 44 45 #include "cpvh223multiplex.h" 46 #include "h245.h" 47 48 class TSC_component; 49 50 class TSC_mt 51 { 52 public: TSC_mt()53 TSC_mt() 54 { 55 iLogger = PVLogger::GetLoggerObject("3g324m.h245user"); 56 }; ~TSC_mt()57 ~TSC_mt() {}; 58 SetMembers(H245 * aH245,H223 * aH223,TSC_component * aTSCcomponent)59 void SetMembers(H245* aH245, H223* aH223, TSC_component* aTSCcomponent) 60 { 61 iH245 = aH245; 62 iH223 = aH223; 63 iTSCcomponent = aTSCcomponent; 64 } 65 void InitVarsSession(); 66 void ClearVars(); 67 void DeleteMuxEntry(uint32 aParam); 68 69 /* Multiplex Table */ 70 bool CheckMtTrf(Oscl_Vector<CodecCapabilityInfo*, OsclMemAllocator> aOutCodecList, 71 Oscl_Vector<H324ChannelParameters, PVMFTscAlloc>* aOutgoingChannelConfig); 72 void MtTrfReq(OlcList& aOlcs); 73 void MtTrfRps(uint32 sequenceNumber, PS_MuxDescriptor pMux); 74 void MtRjtReq(); 75 bool MuxTableSendComplete(uint32 sn); 76 77 uint32 SendMuxTableForLcn(TPVChannelId id); 78 void ReleaseMuxTables(); GetPendingMtSn()79 int GetPendingMtSn() 80 { 81 return iPendingMtSn; 82 } 83 // mux descriptors 84 CPVMultiplexEntryDescriptor* GenerateCombinedDescriptor(uint8 entry_num, 85 TPVChannelId lcn1, unsigned size, TPVChannelId lcn2); 86 87 private: 88 89 Oscl_Vector<int, OsclMemAllocator> iAvailableMuxEntryNumbers; 90 int iOutMtSn; 91 int iPendingMtSn; 92 Oscl_Vector<int, OsclMemAllocator> iToBeDeletedMuxEntryNumbers; 93 94 //TSC_capability* iTSCcapability; 95 TSC_component* iTSCcomponent; 96 97 PVLogger* iLogger; 98 /* The H245 instance */ 99 H245* iH245; 100 /* The H223 instance */ 101 H223* iH223; 102 103 }; 104 105 #endif 106 107