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 // #### Generic 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 GENERICFRAMESIZESCALABILITY_H 00024 #define GENERICFRAMESIZESCALABILITY_H 00025 00026 00027 #include "system.h" 00028 #include "framesizescalabilityinterface.h" 00029 00030 00031 namespace Coral { 00032 00033 00043 class GenericFrameSizeScalability : virtual public FrameSizeScalabilityInterface 00044 { 00045 // ====== Frame size methods ============================================= 00046 public: 00052 bool isValidPayloadFrameSize(const double frameRate, 00053 const cardinal bufferDelay, 00054 const cardinal frameSize) const; 00055 00061 cardinal getNearestValidPayloadFrameSize(const double frameRate, 00062 const cardinal bufferDelay, 00063 const cardinal frameSize) const; 00064 00070 cardinal getNextPayloadFrameSizeForDelayAndSize(const double frameRate, 00071 const cardinal bufferDelay, 00072 const cardinal frameSize) const; 00078 cardinal getPrevPayloadFrameSizeForDelayAndSize(const double frameRate, 00079 const cardinal bufferDelay, 00080 const cardinal frameSize) const; 00081 00082 00083 // ====== Scaling and utilization methods ================================ 00089 double getPayloadFrameSizeScaleFactorForDelayAndSize(const double frameRate, 00090 const cardinal bufferDelay, 00091 const cardinal frameSize) const; 00092 00098 double getPayloadFrameSizeUtilizationForDelayAndSize(const double frameRate, 00099 const cardinal bufferDelay, 00100 const cardinal frameSize) const; 00101 00107 double getFrameSizeUtilizationWeight(const double frameRate) const; 00108 00109 00110 // ====== Buffer delay methods =========================================== 00116 cardinal getNextBufferDelayForDelay(const double frameRate, 00117 const cardinal bufferDelay) const; 00118 00124 cardinal getPrevBufferDelayForDelay(const double frameRate, 00125 const cardinal bufferDelay) const; 00126 }; 00127 00128 00129 } 00130 00131 00132 #endif