RTP Trace System  1.0
tracedecoder.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 Decoder                                                    ####
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 TRACEDECODER_H
00023 #define TRACEDECODER_H
00024 
00025 
00026 #include "system.h"
00027 #include "synchronizable.h"
00028 #include "tracedecoderinterface.h"
00029 #include "seqnumvalidator.h"
00030 #include "rtppacket.h"
00031 
00032 
00033 namespace Coral {
00034 
00035 
00043 class TraceDecoder : public TraceDecoderInterface,
00044                      public Synchronizable
00045 {
00046    // ====== Constructor/Destructor =========================================
00047    public:
00051    TraceDecoder();
00052 
00056    ~TraceDecoder();
00057 
00058 
00059    // ====== DecoderInterface implementation ================================
00065    const card16 getTypeID() const;
00066 
00072    const char* getTypeName() const;
00073 
00079    void activate();
00080 
00086    void deactivate();
00087 
00093    void reset();
00094 
00100    void getMediaInfo(MediaInfo& mediaInfo) const;
00101 
00107    card8 getErrorCode() const;
00108 
00114    card64 getPosition() const;
00115 
00121    card64 getMaxPosition() const;
00122 
00128    bool checkNextPacket(DecoderPacket* decoderPacket);
00129 
00135    void handleNextPacket(const DecoderPacket* decoderPacket);
00136 
00137 
00138    // ====== TraceDecoderInterface implementation ===========================
00144    double getFrameRate() const;
00145 
00151    double getUtilization() const;
00152 
00158    Range<card64> getBandwidth() const;
00159 
00165    int8 getStreamPriority() const;
00166 
00172    int8 getSessionPriority() const;
00173 
00179    card32 getFlags() const;
00180 
00181 
00182    // ====== Private data ===================================================
00183    private:
00184    SeqNumValidator SeqNumber[RTPConstants::RTPMaxQualityLayers];
00185    cardinal        FrameID[RTPConstants::RTPMaxQualityLayers];
00186    cardinal        FrameSize[RTPConstants::RTPMaxQualityLayers];
00187 
00188    card64          Position;
00189    card64          MaxPosition;
00190    Range<card64>   Bandwidth;
00191    cardinal        MinBandwidth;
00192    cardinal        MaxBandwidth;
00193    double          FrameRate;
00194    double          Utilization;
00195    card32          Flags;
00196    MediaInfo       Media;
00197    card8           ErrorCode;
00198    int8            StreamPriority;
00199    int8            SessionPriority;
00200 };
00201 
00202 
00203 }
00204 
00205 
00206 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines