RTP Trace System  1.0
traceconfiguration.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 Configuration                                              ####
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 TRACECONFIGURATION_H
00023 #define TRACECONFIGURATION_H
00024 
00025 
00026 #include "system.h"
00027 #include "tdtf.h"
00028 
00029 
00030 namespace Coral {
00031 
00032 
00040 struct TraceLayerConfiguration
00041 {
00042    // ====== Scalability ====================================================
00047    double Scalability;
00048 
00049 
00050    // ====== Layer cost factor ==============================================
00054    double CostFactor;
00055 
00056 
00057    // ====== Empirical envelopes ============================================
00061    cardinal ByterateEmpiricalEnvelopePairs;
00062 
00066    cardinal FrameCountEmpiricalEnvelopePairs;
00067 
00068 
00069    // ====== Frame size utilization =========================================
00073    static const card16 MaxFrameSizeUtilizationConstants = 8;
00074 
00078    cardinal LayerFlags;
00079 
00083    card16 FrameSizeUtilizationMaxConstants;
00084 
00088    card16 FrameSizeUtilizationConstants;
00089 
00093    card16 FrameSizeUtilizationType;
00094 
00098    double FrameSizeUtilizationWeight;
00099 
00103    double FrameSizeUtilizationConstant[MaxFrameSizeUtilizationConstants];
00104 };
00105 
00106 
00107 
00115 struct TraceConfiguration
00116 {
00117    // ====== Input trace description ========================================
00121    double FrameRate;
00122 
00126    char FramePattern[256];
00127 
00131    char InputName[128];
00132 
00133 
00134    // ====== Media type =====================================================
00140    card16 MediaType;
00141 
00145    card16 MediaSubtype;
00146 
00147 
00148    // ====== Extension layers ===============================================
00152    cardinal ExtLayers;
00153 
00157    double FakeE1;
00158 
00162    double FakeE2;
00163 
00164 
00165    // ====== Delay, interval lengths, remapping cost ========================
00169    cardinal MaxBufferDelay;
00170 
00174    card64 MinIntervalLength;
00175 
00179    card64 MaxIntervalLength;
00180 
00184    double RemappingCost;
00185 
00186 
00187    // ====== Resource/utilization list ======================================
00191    card16 RUPoints;
00192 
00196    card64 BandwidthThreshold;
00197 
00201    double UtilizationThreshold;
00202 
00203 
00204    // ====== Frame rate utilization =========================================
00208    static const card16 MaxFrameRateUtilizationConstants = 8;
00209 
00210 
00214    card16 FrameRateUtilizationMaxConstants;
00215 
00219    card16 FrameRateUtilizationConstants;
00220 
00224    card16 FrameRateUtilizationType;
00225 
00229    double FrameRateUtilizationWeight;
00230 
00234    double FrameRateUtilizationConstant[MaxFrameRateUtilizationConstants];
00235 
00236 
00237    // ====== Information ====================================================
00241    char Title[TDTFPrefix::MaxTitleLength];
00242 
00246    char Copyright[TDTFPrefix::MaxCopyrightLength];
00247 
00251    char Comment[TDTFPrefix::MaxCopyrightLength];
00252 
00256    char URL[TDTFPrefix::MaxURLLength];
00257 
00258 
00259    // ====== Layer configuration ============================================
00263    static const cardinal MaxLayers = 16;
00264 
00268    TraceLayerConfiguration Layer[MaxLayers];
00269 
00270 
00271    // ====== Print ==========================================================
00278    void print(ostream&   os,
00279               const bool utilizationOnly = false) const;
00280 
00281 
00282    // ====== Load ===========================================================
00290    bool load(const char* fileName,
00291              const bool  utilizationOnly = false);
00292 };
00293 
00294 
00298 ostream& operator<<(ostream& os, const TraceConfiguration& config);
00299 
00300 
00301 }
00302 
00303 
00304 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines