RTP Trace System  1.0
traceframesizescalability.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines