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 Frame Size Scalability #### 00011 // #### #### 00012 // #### Version 1.00 -- February 19, 2001 #### 00013 // #### #### 00014 // #### Copyright (C) 2000/2001 Thomas Dreibholz #### 00015 // #### Copyright (C) 2000 Thomas Dreibholz #### 00016 // #### University of Bonn, Department of Computer Science IV #### 00017 // #### EMail: dreibh@iem.uni-due.de #### 00018 // #### WWW: https://www.uni-due.de/~be0001/diplom/index.html #### 00019 // #### #### 00020 // ########################################################################## 00021 00022 00023 #ifndef TRACEFRAMESIZESCALABILITY_H 00024 #define TRACEFRAMESIZESCALABILITY_H 00025 00026 00027 #include "system.h" 00028 #include "framesizescalabilityinterface.h" 00029 #include "genericframesizescalability.h" 00030 #include "tdtfreader.h" 00031 00032 00033 namespace Coral { 00034 00035 00044 class TraceFrameSizeScalability : public GenericFrameSizeScalability 00045 { 00046 // ====== Constructor/Destructor ========================================= 00047 public: 00051 TraceFrameSizeScalability(); 00052 00056 ~TraceFrameSizeScalability(); 00057 00058 00059 // ====== Initialization ================================================= 00069 void initFrameSizeScalability(TDTFReader* traceReader, 00070 const card64 position, 00071 const cardinal layer, 00072 const double scaleFactor); 00073 00074 00075 // ====== Scalability information methods ================================ 00081 const char* getFrameSizeScalabilityClass() const; 00082 00088 bool isFrameSizeScalable() const; 00089 00095 bool isVariableBitrate() const; 00096 00097 00098 // ====== Frame size methods ============================================= 00104 cardinal getMinPayloadFrameSizeForDelay(const double frameRate, 00105 const cardinal bufferDelay) const; 00106 00112 cardinal getMaxPayloadFrameSizeForDelay(const double frameRate, 00113 const cardinal bufferDelay) const; 00114 00120 cardinal getMaxFrameCountForDelay(const double frameRate, 00121 const cardinal bufferDelay) const; 00122 00123 00124 // ====== Scaling and utilization methods ================================ 00130 double getPayloadFrameSizeUtilizationForDelayAndSize(const double frameRate, 00131 const cardinal bufferDelay, 00132 const cardinal frameSize) const; 00133 00139 double getFrameSizeUtilizationWeight(const double frameRate) const; 00140 00141 00142 // ====== Buffer delay methods =========================================== 00148 cardinal getMaxBufferDelay(const double frameRate) const; 00149 00150 00151 // ====== Protected data ================================================= 00152 protected: 00153 TDTFReader* TraceReader; 00154 card64 Position; 00155 double ScaleFactor; 00156 cardinal Layer; 00157 }; 00158 00159 00160 } 00161 00162 00163 #endif