RTP Trace System
1.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### Master Thesis Implementation #### 00004 // #### Management of Layered Variable Bitrate Multimedia Streams over #### 00005 // #### DiffServ with A Priori Knowledge #### 00006 // #### #### 00007 // #### ================================================================ #### 00008 // #### #### 00009 // #### #### 00010 // #### Trace Decoder #### 00011 // #### #### 00012 // #### Version 1.00 -- February 19, 2001 #### 00013 // #### #### 00014 // #### Copyright (C) 2000/2001 Thomas Dreibholz #### 00015 // #### University of Bonn, Department of Computer Science IV #### 00016 // #### EMail: dreibh@iem.uni-due.de #### 00017 // #### WWW: https://www.uni-due.de/~be0001/diplom/index.html #### 00018 // #### #### 00019 // ########################################################################## 00020 00021 00022 #ifndef TRACEDECODER_H 00023 #define TRACEDECODER_H 00024 00025 00026 #include "system.h" 00027 #include "synchronizable.h" 00028 #include "tracedecoderinterface.h" 00029 #include "seqnumvalidator.h" 00030 #include "rtppacket.h" 00031 00032 00033 namespace Coral { 00034 00035 00043 class TraceDecoder : public TraceDecoderInterface, 00044 public Synchronizable 00045 { 00046 // ====== Constructor/Destructor ========================================= 00047 public: 00051 TraceDecoder(); 00052 00056 ~TraceDecoder(); 00057 00058 00059 // ====== DecoderInterface implementation ================================ 00065 const card16 getTypeID() const; 00066 00072 const char* getTypeName() const; 00073 00079 void activate(); 00080 00086 void deactivate(); 00087 00093 void reset(); 00094 00100 void getMediaInfo(MediaInfo& mediaInfo) const; 00101 00107 card8 getErrorCode() const; 00108 00114 card64 getPosition() const; 00115 00121 card64 getMaxPosition() const; 00122 00128 bool checkNextPacket(DecoderPacket* decoderPacket); 00129 00135 void handleNextPacket(const DecoderPacket* decoderPacket); 00136 00137 00138 // ====== TraceDecoderInterface implementation =========================== 00144 double getFrameRate() const; 00145 00151 double getUtilization() const; 00152 00158 Range<card64> getBandwidth() const; 00159 00165 int8 getStreamPriority() const; 00166 00172 int8 getSessionPriority() const; 00173 00179 card32 getFlags() const; 00180 00181 00182 // ====== Private data =================================================== 00183 private: 00184 SeqNumValidator SeqNumber[RTPConstants::RTPMaxQualityLayers]; 00185 cardinal FrameID[RTPConstants::RTPMaxQualityLayers]; 00186 cardinal FrameSize[RTPConstants::RTPMaxQualityLayers]; 00187 00188 card64 Position; 00189 card64 MaxPosition; 00190 Range<card64> Bandwidth; 00191 cardinal MinBandwidth; 00192 cardinal MaxBandwidth; 00193 double FrameRate; 00194 double Utilization; 00195 card32 Flags; 00196 MediaInfo Media; 00197 card8 ErrorCode; 00198 int8 StreamPriority; 00199 int8 SessionPriority; 00200 }; 00201 00202 00203 } 00204 00205 00206 #endif