RTP Trace System  1.0
framesizescalabilityinterface.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 // #### Frame Size Scalability Interface                                 ####
00011 // ####                                                                  ####
00012 // #### Version 1.00  --  February 19, 2001                              ####
00013 // ####                                                                  ####
00014 // #### Copyright (C) 2000/2001 Thomas Dreibholz                         ####
00015 // #### University of Bonn, Department of Computer Science IV            ####
00016 // #### EMail: dreibh@iem.uni-due.de                                     ####
00017 // #### WWW:   https://www.uni-due.de/~be0001/diplom/index.html          ####
00018 // ####                                                                  ####
00019 // ##########################################################################
00020 
00021 
00022 #ifndef FRAMESIZESCALABILITYINTERFACE_H
00023 #define FRAMESIZESCALABILITYINTERFACE_H
00024 
00025 
00026 #include "system.h"
00027 
00028 
00029 namespace Coral {
00030 
00031 
00040 class FrameSizeScalabilityInterface
00041 {
00042    // ====== Scalability information methods ================================
00043    public:
00049    virtual const char* getFrameSizeScalabilityClass() const = 0;
00050 
00056    virtual bool isFrameSizeScalable() const = 0;
00057 
00065    virtual bool isVariableBitrate() const = 0;
00066 
00067 
00068    // ====== Frame size methods =============================================
00076    virtual cardinal getMinPayloadFrameSizeForDelay(
00077                        const double   frameRate,
00078                        const cardinal bufferDelay) const = 0;
00079 
00087    virtual cardinal getMaxPayloadFrameSizeForDelay(
00088                        const double   frameRate,
00089                        const cardinal bufferDelay) const = 0;
00090 
00098    virtual cardinal getMaxFrameCountForDelay(
00099                        const double   frameRate,
00100                        const cardinal bufferDelay) const = 0;
00101 
00111    virtual bool isValidPayloadFrameSize(
00112                    const double   frameRate,
00113                    const cardinal bufferDelay,
00114                    const cardinal frameSize) const = 0;
00115 
00125    virtual cardinal getNearestValidPayloadFrameSize(
00126                        const double   frameRate,
00127                        const cardinal bufferDelay,
00128                        const cardinal frameSize) const = 0;
00129 
00139    virtual cardinal getNextPayloadFrameSizeForDelayAndSize(
00140                        const double   frameRate,
00141                        const cardinal bufferDelay,
00142                        const cardinal frameSize) const = 0;
00143 
00153    virtual cardinal getPrevPayloadFrameSizeForDelayAndSize(
00154                         const double   frameRate,
00155                         const cardinal bufferDelay,
00156                         const cardinal frameSize) const = 0;
00157 
00158 
00159    // ====== Scaling and utilization methods ================================
00169    virtual double getPayloadFrameSizeScaleFactorForDelayAndSize(
00170                      const double   frameRate,
00171                      const cardinal bufferDelay,
00172                      const cardinal frameSize) const = 0;
00173 
00182    virtual double getPayloadFrameSizeUtilizationForDelayAndSize(
00183                      const double   frameRate,
00184                      const cardinal bufferDelay,
00185                      const cardinal frameSize) const = 0;
00186 
00193    virtual double getFrameSizeUtilizationWeight(const double frameRate) const = 0;
00194 
00195 
00196    // ====== Buffer delay methods ===========================================
00203    virtual cardinal getMaxBufferDelay(const double frameRate) const = 0;
00204 
00212    virtual cardinal getNextBufferDelayForDelay(const double   frameRate,
00213                                                const cardinal bufferDelay) const = 0;
00214 
00222    virtual cardinal getPrevBufferDelayForDelay(const double   frameRate,
00223                                                const cardinal bufferDelay) const = 0;
00224 };
00225 
00226 
00227 }
00228 
00229 
00230 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines