Source: traceframesizescalability.h
|
|
|
|
// ##########################################################################
// #### ####
// #### Master Thesis Implementation ####
// #### Management of Layered Variable Bitrate Multimedia Streams over ####
// #### DiffServ with A Priori Knowledge ####
// #### ####
// #### ================================================================ ####
// #### ####
// #### ####
// #### Trace Frame Size Scalability ####
// #### ####
// #### 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 TRACEFRAMESIZESCALABILITY_H
#define TRACEFRAMESIZESCALABILITY_H
#include "system.h"
#include "framesizescalabilityinterface.h"
#include "genericframesizescalability.h"
#include "tdtfreader.h"
namespace Coral {
/**
* This class is am implementation of FrameSizeScalabilityInterface.
* Important node: All frames sizes in this class are payload frame sizes!
*
* @short Trace Frame Size Scalability
* @author Thomas Dreibholz (Dreibholz@bigfoot.com)
* @version 1.0
*/
class TraceFrameSizeScalability : public GenericFrameSizeScalability
{
// ====== Constructor/Destructor =========================================
public:
/**
* Constructor.
*/
TraceFrameSizeScalability();
/**
* Desstructor.
*/
~TraceFrameSizeScalability();
// ====== Initialization =================================================
/**
* Initialize object with new maximum payload frame size and scale factor.
* MinFrameSize = scaleFactor * MaxFrameSize.
*
* @param traceReader TDTFReader.
* @param position Position (for TDTFReader).
* @param layer Layer number (for TDTFReader).
* @param scaleFactor Scale factor.
*/
void initFrameSizeScalability(TDTFReader* traceReader,
const card64 position,
const cardinal layer,
const double scaleFactor);
// ====== Scalability information methods ================================
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#getFrameSizeScalabilityClass
*/
const char* getFrameSizeScalabilityClass() const;
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#isFrameSizeScalable
*/
bool isFrameSizeScalable() const;
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#isVariableBitRate
*/
bool isVariableBitrate() const;
// ====== Frame size methods =============================================
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#getMinPayloadFrameSizeForDelay
*/
cardinal getMinPayloadFrameSizeForDelay(const double frameRate,
const cardinal bufferDelay) const;
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#getMaxPayloadFrameSizeForDelay
*/
cardinal getMaxPayloadFrameSizeForDelay(const double frameRate,
const cardinal bufferDelay) const;
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#getMaxFrameCountForDelay
*/
cardinal getMaxFrameCountForDelay(const double frameRate,
const cardinal bufferDelay) const;
// ====== Scaling and utilization methods ================================
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#getPayloadFrameSizeUtilizationForDelayAndSize
*/
double getPayloadFrameSizeUtilizationForDelayAndSize(const double frameRate,
const cardinal bufferDelay,
const cardinal frameSize) const;
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#getFrameSizeUtilizationWeight
*/
double getFrameSizeUtilizationWeight(const double frameRate) const;
// ====== Buffer delay methods ===========================================
/**
* Implementation of FrameSizeScalabilityInterface.
*
* @see FrameSizeScalabilityInterface#getMaxBufferDelay
*/
cardinal getMaxBufferDelay(const double frameRate) const;
// ====== Protected data =================================================
protected:
TDTFReader* TraceReader;
card64 Position;
double ScaleFactor;
cardinal Layer;
};
}
#endif
Generated by: viper@odin on Mon Oct 16 11:49:26 2000, using kdoc 2.0a36. |