RTP Trace System
1.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### RTP Audio Server Project #### 00004 // #### ============================ #### 00005 // #### #### 00006 // #### Decoder Interface #### 00007 // #### #### 00008 // #### Version 1.00 -- February 16, 2001 #### 00009 // #### #### 00010 // #### Copyright (C) 1999 Thomas Dreibholz #### 00011 // #### 2000 Universität Bonn, Abt. IV #### 00012 // #### 2001 EMail: dreibh@iem.uni-due.de #### 00013 // #### WWW: https://www.uni-due.de/~be0001 #### 00014 // #### #### 00015 // ########################################################################## 00016 00017 00018 #ifndef DECODERINTERFACE_H 00019 #define DECODERINTERFACE_H 00020 00021 00022 #include "system.h" 00023 #ifdef USE_TRANSPORTINFO 00024 #include "transportinfo.h" 00025 #endif 00026 #include "sourcestateinfo.h" 00027 #include "mediainfo.h" 00028 00029 00030 namespace Coral { 00031 00032 00040 struct DecoderPacket 00041 { 00045 void* Buffer; 00046 00050 cardinal Length; 00051 00055 card16 SequenceNumber; 00056 00060 card32 TimeStamp; 00061 00065 card8 PayloadType; 00066 00070 bool Marker; 00071 00072 00076 SourceStateInfo** SSIArray; 00077 00078 00085 cardinal Layer; 00086 00091 cardinal Layers; 00092 }; 00093 00094 00095 00103 class DecoderInterface 00104 { 00105 // ====== Destructor ===================================================== 00106 public: 00110 virtual ~DecoderInterface(); 00111 00112 00113 // ====== Decoder type =================================================== 00119 virtual const card16 getTypeID() const = 0; 00120 00126 virtual const char* getTypeName() const = 0; 00127 00128 00129 // ====== Initialization/Clean-up ======================================== 00134 virtual void activate() = 0; 00135 00140 virtual void deactivate() = 0; 00141 00146 virtual void reset() = 0; 00147 00148 00149 #ifdef USE_TRANSPORTINFO 00150 // ====== Get TransportInfo ============================================== 00163 virtual void getTransportInfo(TransportInfo& transportInfo, 00164 const cardinal headerSize, 00165 const cardinal maxPacketSize, 00166 const bool calculateLevels = true) const = 0; 00167 #endif 00168 00169 00170 // ====== Check next packet ============================================== 00178 virtual bool checkNextPacket(DecoderPacket* packet) = 0; 00179 00180 00181 // ====== Decode next packet ============================================= 00187 virtual void handleNextPacket(const DecoderPacket* decoderPacket) = 0; 00188 00189 00190 // ====== Status functions =============================================== 00196 virtual void getMediaInfo(MediaInfo& mediaInfo) const = 0; 00197 00204 virtual card8 getErrorCode() const = 0; 00205 00211 virtual card64 getPosition() const = 0; 00212 00218 virtual card64 getMaxPosition() const = 0; 00219 }; 00220 00221 00222 } 00223 00224 00225 #endif