RTP Trace System  1.0
traceframeratescalability.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 Rate 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 TRACEFRAMERATESCALABILITY_H
00024 #define TRACEFRAMERATESCALABILITY_H
00025 
00026 
00027 #include "system.h"
00028 #include "frameratescalabilityinterface.h"
00029 #include "tdtfreader.h"
00030 
00031 
00032 namespace Coral {
00033 
00034 
00042 class TraceFrameRateScalability : virtual public FrameRateScalabilityInterface
00043 {
00044    // ====== Constructor/Destructor =========================================
00045    public:
00049    TraceFrameRateScalability();
00050 
00054    virtual ~TraceFrameRateScalability();
00055 
00056 
00057    // ====== Initialization =================================================
00064    void initFrameRateScalability(TDTFReader*  traceReader,
00065                                  const card64 position);
00066 
00067 
00068    // ====== Scalability information methods ================================
00074    const char* getFrameRateScalabilityClass() const;
00075 
00081    bool isFrameRateScalable() const;
00082 
00083 
00084    // ====== Frame rate methods =============================================
00090    double getMinFrameRate() const;
00091 
00097    double getMaxFrameRate() const;
00098 
00104    bool isValidFrameRate(const double frameRate) const;
00105 
00111    double getNearestValidFrameRate(const double frameRate) const;
00112 
00118    double getNextFrameRateForRate(const double frameRate) const;
00119 
00125    double getPrevFrameRateForRate(const double frameRate) const;
00126 
00127 
00128    // ====== Scaling and utilization methods ================================
00134    double getFrameRateScaleFactorForRate(const double frameRate) const;
00135 
00141    double getFrameRateUtilizationForRate(const double frameRate) const;
00142 
00148    double getFrameRateUtilizationWeight(const double frameRate) const;
00149 
00150 
00151    // ====== Protected data =================================================
00152    protected:
00153    TDTFReader* TraceReader;
00154    card64      Position;
00155 };
00156 
00157 
00158 }
00159 
00160 
00161 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines