Source: tracedecoder.h


Annotated List
Files
Globals
Hierarchy
Index
// ##########################################################################
// ####                                                                  ####
// ####                    Master Thesis Implementation                  ####
// ####  Management of Layered Variable Bitrate Multimedia Streams over  ####
// ####                  DiffServ with A Priori Knowledge                ####
// ####                                                                  ####
// #### ================================================================ ####
// ####                                                                  ####
// ####                                                                  ####
// #### Trace Decoder                                                    ####
// ####                                                                  ####
// #### Version 1.00  --  October 10, 2000                               ####
// ####                                                                  ####
// #### Copyright (C) 2000 Thomas Dreibholz                              ####
// #### University of Bonn, Department of Computer Science IV            ####
// #### EMail: Dreibholz@bigfoot.com                                     ####
// #### WWW:   http://www.bigfoot.com/~dreibholz/diplom/index.html       ####
// ####                                                                  ####
// ##########################################################################


#ifndef TRACEDECODER_H
#define TRACEDECODER_H


#include "system.h"
#include "synchronizable.h"
#include "tracedecoderinterface.h"
#include "seqnumvalidator.h"
#include "rtppacket.h"


namespace Coral {


/**
  * This class is a trace decoder.
  *
  * @short   Trace Decoder
  * @author  Thomas Dreibholz (Dreibholz@bigfoot.com)
  * @version 1.0
  */
class TraceDecoder : public TraceDecoderInterface,
                     public Synchronizable
{
   // ====== Constructor/Destructor =========================================
   public:
   /**
     * Constructor.
     */
   TraceDecoder();

   /**
     * Destructor.
     */
   ~TraceDecoder();


   // ====== DecoderInterface implementation ================================
   /**
     * getTypeID() implementation of DecoderInterface.
     *
     * @see DecoderInterface#getTypeID
     */
   const card16 getTypeID() const;

   /**
     * getTypeName implementation of DecoderInterface.
     *
     * @see DecoderInterface#getTypeName
     */
   const char* getTypeName() const;

   /**
     * activate() implementation of DecoderInterface.
     *
     * @see DecoderInterface#activate
     */
   void activate();

   /**
     * deactivate() implementation of DecoderInterface.
     *
     * @see DecoderInterface#deactivate
     */
   void deactivate();

   /**
     * reset() implementation of DecoderInterface.
     *
     * @see DecoderInterface#reset
     */
   void reset();

   /**
     * getMediaInfo() implementation of DecoderInterface.
     *
     * @see DecoderInterface#getMediaInfo
     */
   void getMediaInfo(MediaInfo& mediaInfo) const;

   /**
     * getErrorCode() implementation of DecoderInterface.
     *
     * @see DecoderInterface#getErrorCode
     */
   card8 getErrorCode() const;

   /**
     * getPosition() implementation of DecoderInterface.
     *
     * @see DecoderInterface#getPosition
     */
   card64 getPosition() const;

   /**
     * getMaxPosition() implementation of DecoderInterface.
     *
     * @see DecoderInterface#getMaxPosition
     */
   card64 getMaxPosition() const;

   /**
     * checkNextPacket() implementation of DecoderInterface.
     *
     * @see DecoderInterface#checkNextPacket
     */
   bool checkNextPacket(DecoderPacket* decoderPacket);

   /**
     * handleNextPacket() implementation of DecoderInterface.
     *
     * @see DecoderInterface#handleNextPacket
     */
   void handleNextPacket(const DecoderPacket* decoderPacket);


   // ====== TraceDecoderInterface implementation ===========================
   /**
     * getFrameRate() implementation of TraceEncoderInterface.
     *
     * @see TraceEncoderInterface#getFrameRate
     */
   double getFrameRate() const;

   /**
     * getUtilization() implementation of TraceEncoderInterface.
     *
     * @see TraceEncoderInterface#getUtilization
     */
   double getUtilization() const;

   /**
     * getBandwidth() implementation of TraceEncoderInterface.
     *
     * @see TraceEncoderInterface#getBandwidth
     */
   Range<cardinal> getBandwidth() const;

   /**
     * getStreamPriority() implementation of TraceEncoderInterface.
     *
     * @see TraceEncoderInterface#getStreamPriority
     */
   int8 getStreamPriority() const;

   /**
     * getSessionPriority() implementation of TraceEncoderInterface.
     *
     * @see TraceEncoderInterface#getSessionPriority
     */
   int8 getSessionPriority() const;


   // ====== Private data ===================================================
   private:
   SeqNumValidator SeqNumber[RTPConstants::RTPMaxQualityLayers];
   cardinal        FrameID[RTPConstants::RTPMaxQualityLayers];
   cardinal        FrameSize[RTPConstants::RTPMaxQualityLayers];

   card64          Position;
   card64          MaxPosition;
   cardinal        Bandwidth;
   cardinal        MinBandwidth;
   cardinal        MaxBandwidth;
   double          FrameRate;
   double          Utilization;
   MediaInfo       Media;
   card8           ErrorCode;
   int8            StreamPriority;
   int8            SessionPriority;
};


}


#endif

Generated by: viper@odin on Mon Oct 16 11:49:26 2000, using kdoc 2.0a36.