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 // #### Constant Bitrate 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 CBRFRAMESIZESCALABILITY_H 00024 #define CBRFRAMESIZESCALABILITY_H 00025 00026 00027 #include "system.h" 00028 #include "framesizescalabilityinterface.h" 00029 #include "genericframesizescalability.h" 00030 00031 00032 namespace Coral { 00033 00034 00043 class ConstantBitrateFrameSizeScalability 00044 : public GenericFrameSizeScalability 00045 { 00046 // ====== Constructor/Destructor ========================================= 00047 public: 00051 ConstantBitrateFrameSizeScalability(); 00052 00056 ~ConstantBitrateFrameSizeScalability(); 00057 00058 00059 // ====== Initialization ================================================= 00067 void initConstantBitrateFrameSizeScalability( 00068 const cardinal maxFrameSize, 00069 const double scaleFactor); 00070 00071 00072 // ====== Scalability information methods ================================ 00078 const char* getFrameSizeScalabilityClass() const; 00079 00085 bool isFrameSizeScalable() const; 00086 00092 bool isVariableBitrate() const; 00093 00094 00095 // ====== Frame size methods ============================================= 00101 cardinal getMinPayloadFrameSizeForDelay(const double frameRate, 00102 const cardinal bufferDelay) const; 00103 00109 cardinal getMaxPayloadFrameSizeForDelay(const double frameRate, 00110 const cardinal bufferDelay) const; 00111 00117 cardinal getMaxFrameCountForDelay(const double frameRate, 00118 const cardinal bufferDelay) const; 00119 00120 00121 // ====== Buffer delay methods =========================================== 00127 cardinal getMaxBufferDelay(const double frameRate) const; 00128 00129 00130 // ====== Protected data ================================================= 00131 protected: 00132 cardinal MinFrameSize; 00133 cardinal MaxFrameSize; 00134 }; 00135 00136 00137 } 00138 00139 00140 #endif