RTP Trace System  1.0
genericframesizescalability.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 // #### 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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines