blob: b321ecfa9a281a86ae53d90049d917b7dd72fef2 [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
/*********************************************************************************/
/* ------------------------------------------------------------------- */
/* MPEG-4 SLConfigDescriptor Class */
/* ------------------------------------------------------------------- */
/*********************************************************************************/
/*
This SLConfigDescriptor (SyncLayerDescriptor) Class
*/
#ifndef SLCONFIGDESCRIPTOR_H_INCLUDED
#define SLCONFIGDESCRIPTOR_H_INCLUDED
#ifndef OSCL_FILE_IO_H_INCLUDED
#include "oscl_file_io.h"
#endif
#ifndef BASEDESCRIPTOR_H_INCLUDED
#include "basedescriptor.h"
#endif
class SLConfigDescriptor : public BaseDescriptor
{
public:
SLConfigDescriptor(MP4_FF_FILE *fp); // Stream-in Constructor
virtual ~SLConfigDescriptor();
// ALL the member gets and sets
bool getUseAccessUnitStartFlag() const
{
return _useAccessUnitStartFlag;
}
bool getUseAccessUnitEndFlag() const
{
return _useAccessUnitEndFlag;
}
bool getUseRandomAccessPointFlag() const
{
return _useRandomAccessPointFlag;
}
bool getUseRandomAccessUnitsOnlyFlag() const
{
return _useRandomAccessUnitsOnlyFlag;
}
bool getUsePaddingFlag() const
{
return _usePaddingFlag;
}
bool getUseTimeStampsFlag() const
{
return _useTimeStampsFlag;
}
bool getUseIdleFlag() const
{
return _useIdleFlag;
}
bool getDurationFlag() const
{
return _durationFlag;
}
uint32 getTimeStampResolution() const
{
return _timeStampResolution;
}
uint32 getOCRResolution() const
{
return _OCRResolution;
}
uint8 getTimeStampLength() const
{
return _timeStampLength;
}
uint8 getOCRLength() const
{
return _OCRLength;
}
uint8 getAULength() const
{
return _AULength;
}
uint8 getInstantBitrateLength() const
{
return _instantBitrateLength;
}
uint8 getDegradationPriorityLength() const
{
return _degradationPriorityLength;
}
uint8 getAUSeqNumLength() const
{
return _AUSeqNumLength;
}
uint8 getPacketSeqNumLength() const
{
return _packetSeqNumLength;
}
uint32 getTimeScale() const
{
return _timeScale;
}
uint16 getSccessUnitDuration() const
{
return _accessUnitDuration;
}
uint16 getCompositionUnitDuration() const
{
return _compositionUnitDuration;
}
uint64 getStartDecodingTimeStamp() const
{
return _startDecodingTimeStamp;
}
uint64 getStartCompositionTimeStamp() const
{
return _startCompositionTimeStamp;
}
// Combine into a single byte when rendering to a stream
bool getOCRStreamFlag() const
{
return _OCRStreamFlag;
}
uint16 getOCRESID() const
{
return _OCRESID;
}
private:
uint8 _predefined; // (8)
// Following defined ONLY if(_predefined == 0x00)
// Combine all below bit flags into a single byte when rendering to a stream
bool _useAccessUnitStartFlag; // (1)
bool _useAccessUnitEndFlag; // (1)
bool _useRandomAccessPointFlag; // (1)
bool _useRandomAccessUnitsOnlyFlag; // (1)
bool _usePaddingFlag; // (1)
bool _useTimeStampsFlag; // (1)
bool _useIdleFlag; // (1)
bool _durationFlag; // (1)
uint32 _timeStampResolution; // (32)
uint32 _OCRResolution; // (32)
uint8 _timeStampLength; // (8) Must be <= 64
uint8 _OCRLength; // (8) Must be <= 64
uint8 _AULength; // (8) Must be <= 32
uint8 _instantBitrateLength; // (8)
uint8 _degradationPriorityLength; // (4)
uint8 _AUSeqNumLength; // (5) Must be <= 16
uint8 _packetSeqNumLength; // (5) Must be <= 16
uint8 _reserved1; // = 0b11; // (2)
uint32 _timeScale; // (32)
uint16 _accessUnitDuration; // (16)
uint16 _compositionUnitDuration; // (16)
uint64 _startDecodingTimeStamp; // (_timeStampLength)
uint64 _startCompositionTimeStamp; // (_timeStampLength)
// Combine into a single byte when rendering to a stream
bool _OCRStreamFlag; // (1)
uint8 _reserved2; // = 0b1111111; // (7)
uint16 _OCRESID; // (16)
};
#endif // SLCONFIGDESCRIPTOR_H_INCLUDED