CVideoDecoderInfo Class Reference

class CVideoDecoderInfo : public CBase

This class contains information about a single video decoder. Although it mainly contains static data, it is defined as a complete CBase-derived class since the data is relatively complex and proper memory management is necessary.

The objects are created by the video decoder hardware devices, and used by the MSL video client code.

Inherits from

Public Member Functions
~CVideoDecoderInfo()
IMPORT_C TBoolAccelerated()
IMPORT_C voidAddSupportedScreenL(TInt)
IMPORT_C const TDesC8 &CodingStandardSpecificInfo()
IMPORT_C voidGetSupportedScreensL(RArray< TInt > &)
IMPORT_C const TDesC &Identifier()
IMPORT_C const TDesC8 &ImplementationSpecificInfo()
IMPORT_C const TDesC &Manufacturer()
IMPORT_C TUintMaxBitrate()
IMPORT_C const RArray< TPictureRateAndSize > &MaxPictureRates()
IMPORT_C const TSize &MaxPictureSize()
IMPORT_C CVideoDecoderInfo *NewL(TUid, const TDesC &, const TDesC &, TVersion, const TArray< CCompressedVideoFormat * > &, TBool, TBool, const TSize &, TUint, const TArray< TPictureRateAndSize > &, TBool, TBool, const TDesC8 &, const TDesC8 &)
IMPORT_C voidSetSupportsContentProtected(const TBool)
IMPORT_C const RPointerArray< CCompressedVideoFormat > &SupportedFormats()
IMPORT_C TBoolSupportsContentProtected()
IMPORT_C TBoolSupportsDirectDisplay()
IMPORT_C TBoolSupportsFormat(const CCompressedVideoFormat &)
IMPORT_C TBoolSupportsPictureLoss()
IMPORT_C TBoolSupportsSliceLoss()
IMPORT_C TUidUid()
IMPORT_C TVersionVersion()
Private Member Functions
CVideoDecoderInfo(TUid, TVersion, TBool, TBool, const TSize &, TUint, TBool, TBool)
voidConstructL(const TDesC &, const TDesC &, const TArray< CCompressedVideoFormat * > &, const TArray< TPictureRateAndSize > &, const TDesC8 &, const TDesC8 &)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Private Attributes
TBool iAccelerated
HBufC8 *iCodingStandardSpecificInfo
HBufC *iIdentifier
HBufC8 *iImplementationSpecificInfo
HBufC *iManufacturer
TUint iMaxBitrate
RArray< TPictureRateAndSize >iMaxPictureRates
TSize iMaxPictureSize
RPointerArray< CCompressedVideoFormat >iSupportedFormats
RArray< TInt >iSupportedScreens
TBool iSupportsContentProtected
TBool iSupportsDirectDisplay
TBool iSupportsPictureLoss
TBool iSupportsSliceLoss
TUid iUid
TVersion iVersion

Constructor & Destructor Documentation

CVideoDecoderInfo(TUid, TVersion, TBool, TBool, const TSize &, TUint, TBool, TBool)

CVideoDecoderInfo(TUidaUid,
TVersionaVersion,
TBoolaAccelerated,
TBoolaSupportsDirectDisplay,
const TSize &aMaxPictureSize,
TUintaMaxBitrate,
TBoolaSupportsPictureLoss,
TBoolaSupportsSliceLoss
)[private]

Parameters

TUid aUid
TVersion aVersion
TBool aAccelerated
TBool aSupportsDirectDisplay
const TSize & aMaxPictureSize
TUint aMaxBitrate
TBool aSupportsPictureLoss
TBool aSupportsSliceLoss

~CVideoDecoderInfo()

IMPORT_C~CVideoDecoderInfo()

Destructor.

Member Functions Documentation

Accelerated()

IMPORT_C TBoolAccelerated()const

Returns whether the decoder is hardware-accelerated. A hardware-accelerated decoder can run on an application DSP or dedicated hardware. "True if the decoder is hardware-accelerated."

AddSupportedScreenL(TInt)

IMPORT_C voidAddSupportedScreenL(TIntaScreenNo)

Adds the screen number into the list of screens supported by the decoder. leave

"KErrNoMemory when there is no memory to expand the list of supported screens. KErrNotSupported if the secondary screen display is not supported in Multimedia Framework."

Parameters

TInt aScreenNo

CodingStandardSpecificInfo()

IMPORT_C const TDesC8 &CodingStandardSpecificInfo()const

Returns coding-standard specific information about the decoder. "Coding-standard specific information about the decoder. The data format is coding-standard specific, and defined separately. The reference is valid until the CVideoDecoderInfo object is destroyed."

ConstructL(const TDesC &, const TDesC &, const TArray< CCompressedVideoFormat * > &, const TArray< TPictureRateAndSize > &, const TDesC8 &, const TDesC8 &)

voidConstructL(const TDesC &aManufacturer,
const TDesC &aIdentifier,
const TArray< CCompressedVideoFormat * > &aSupportedFormats,
const TArray< TPictureRateAndSize > &aMaxPictureRates,
const TDesC8 &aCodingStandardSpecificInfo,
const TDesC8 &aImplementationSpecificInfo
)[private]

Parameters

const TDesC & aManufacturer
const TDesC & aIdentifier
const TArray< CCompressedVideoFormat * > & aSupportedFormats
const TArray< TPictureRateAndSize > & aMaxPictureRates
const TDesC8 & aCodingStandardSpecificInfo
const TDesC8 & aImplementationSpecificInfo

GetSupportedScreensL(RArray< TInt > &)

IMPORT_C voidGetSupportedScreensL(RArray< TInt > &aSupportedScreens)const

Lists the screens supported by the decoder. leave

"KErrNotSupported if the secondary screen display is not supported in Multimedia Framework. KErrNoMemory when there is no memory to expand the list."

Parameters

RArray< TInt > & aSupportedScreens"An array to retrieve the list of supported screens. This method resets the array before adding elements to it. The array must be created and destroyed by the caller."

Identifier()

IMPORT_C const TDesC &Identifier()const

Returns the codec device manufacturer-specific identifier. The combination of the manufacturer and identifier uniquely identifies the hardware device. "The identifier as a standard Symbian descriptor. The reference is valid until the CVideoDecoderInfo object is destroyed."

ImplementationSpecificInfo()

IMPORT_C const TDesC8 &ImplementationSpecificInfo()const

Returns implementation-specific information about the decoder. "Implementation- specific information about the decoder. The data format is implementation-specific, and defined separately by the decoder supplier. The reference is valid until the CVideoDecoderInfo object is destroyed."

Manufacturer()

IMPORT_C const TDesC &Manufacturer()const

Returns the codec device manufacturer. "The manufacturer name as a standard Symbian descriptor. The reference is valid until the CVideoDecoderInfo object is destroyed."

MaxBitrate()

IMPORT_C TUintMaxBitrate()const

Returns the maximum bit-rate supported by the decoder.

Note that if the decoder reports that it supports a certain profile and level, then it shall support all bitstreams corresponding to that profile/level. This method can be used to specify capabilities that are beyond the standard levels (for example some MPEG-4 bitstreams are encoded with bit rates that are higher than those specified by the profile/level of the bitstream).

"Maximum bit-rate supported, in bits per second. KMaxTUint32 can be used if the decoder has no bit-rate restrictions."

MaxPictureRates()

IMPORT_C const RArray< TPictureRateAndSize > &MaxPictureRates()const

Returns the maximum picture size/rate combinations supported by the decoder.

Video decoders can have different maximum picture rate limitations depending on the picture size used. Note that if the decoder reports that it supports a certain profile and level, then it shall support all bitstreams corresponding to that profile/level. This method can be used to specify capabilities that are beyond the standard levels (for example some MPEG-4 bitstreams are encoded with picture rates that are beyond those specified by the profile/level of the bitstream).

"A reference to an array of picture size/rate combinations. The reference remains valid until this object is deleted."

MaxPictureSize()

IMPORT_C const TSize &MaxPictureSize()const

Returns the maximum picture size the decoder supports.

Note that if the decoder reports that it supports a certain profile and level, then it shall support all bitstreams corresponding to that profile/level. This method can be used to specify capabilities that are beyond the standard levels (for example some MPEG-4 bitstreams are encoded with picture sizes that are larger than those specified by the profile/level of the bitstream).

"The maximum picture size supported. The reference is valid until the CVideoDecoderInfo object is destroyed."

NewL(TUid, const TDesC &, const TDesC &, TVersion, const TArray< CCompressedVideoFormat * > &, TBool, TBool, const TSize &, TUint, const TArray< TPictureRateAndSize > &, TBool, TBool, const TDesC8 &, const TDesC8 &)

IMPORT_C CVideoDecoderInfo *NewL(TUidaUid,
const TDesC &aManufacturer,
const TDesC &aIdentifier,
TVersionaVersion,
const TArray< CCompressedVideoFormat * > &aSupportedFormats,
TBoolaAccelerated,
TBoolaSupportsDirectDisplay,
const TSize &aMaxPictureSize,
TUintaMaxBitrate,
const TArray< TPictureRateAndSize > &aMaxPictureRates,
TBoolaSupportsPictureLoss,
TBoolaSupportsSliceLoss,
const TDesC8 &aCodingStandardSpecificInfo =  KNullDesC8 ,
const TDesC8 &aImplementationSpecificInfo =  KNullDesC8
)[static]

Creates and returns a new CVideoDecoderInfo object.

"A new CVideoDecoderInfo object."

leave

"This method may leave with one of the system-wide error codes."

Parameters

TUid aUid"The uid of the decoder."
const TDesC & aManufacturer"The video decoder manufacturer."
const TDesC & aIdentifier"The manufacturer-specific identifier for this video decoder."
TVersion aVersion"The version of this video decoder."
const TArray< CCompressedVideoFormat * > & aSupportedFormats"An array of the formats supported by the decoder. A copy will be taken of the array and the referenced CCompressedVideoFormat objects" @param "aAccelerated" "Whether this decoder is accelerated or not." @param "aSupportsDirectDisplay" "Whether this decoder supports direct display or not." @param "aMaxPictureSize" "The maximum picture size supported by the decoder." @param "aMaxBitrate" "The maximum bit rate supported by the decoder. Use KMaxTUint32 if there are no bit-rate restrictions." @param "aMaxPictureRates" "An array of the maximum picture size/rate combinations supported by the decoder." @param "aSupportsPictureLoss" "Whether the decoder supports picture loss indications." @param "aSupportsSliceLoss" "Whether the decoder supports slice loss indications." @param "aCodingStandardSpecificInfo" "Coding-standard specific information about the decoder." @param "aImplementationSpecificInfo" "Implementation-specific information about the decoder."
TBool aAccelerated
TBool aSupportsDirectDisplay
const TSize & aMaxPictureSize
TUint aMaxBitrate
const TArray< TPictureRateAndSize > & aMaxPictureRates
TBool aSupportsPictureLoss
TBool aSupportsSliceLoss
const TDesC8 & aCodingStandardSpecificInfo =  KNullDesC8
const TDesC8 & aImplementationSpecificInfo =  KNullDesC8

SetSupportsContentProtected(const TBool)

IMPORT_C voidSetSupportsContentProtected(const TBoolaSetting)

Sets a flag indicating whether the Decoder supports per picture content protection. E.g. Where content protection within a video stream can alter.

Parameters

const TBool aSetting"Set to TRUE to indicate decoder supports content protection. TVideoPicture::TVideoPictureOptions::EContentProtected TVideoInputBuffer::TVideoBufferOptions::EContentProtected

SupportedFormats()

IMPORT_C const RPointerArray< CCompressedVideoFormat > &SupportedFormats()const

Lists the video formats, including submodes, supported by the decoder. "A RPointerArray table of supported video formats (CCompressedVideoFormat). The reference is valid until the CVideoDecoderInfo object is destroyed."

SupportsContentProtected()

IMPORT_C TBoolSupportsContentProtected()const

Returns whether the Decoder supports per picture content protection. E.g. Where content protection within a video stream can alter. "True if the Decoder supports Content Protection." TVideoPicture::TVideoPictureOptions::EContentProtected TVideoInputBuffer::TVideoBufferOptions::EContentProtected

SupportsDirectDisplay()

IMPORT_C TBoolSupportsDirectDisplay()const

Returns whether the hardware device supports output directly to the screen. Output to memory buffers is always supported. "True if the hardware device supports direct screen output."

SupportsFormat(const CCompressedVideoFormat &)

IMPORT_C TBoolSupportsFormat(const CCompressedVideoFormat &aFormat)const

Checks if the decoder supports the given format. "ETrue if the codec supports the given format, EFalse if not."

Parameters

const CCompressedVideoFormat & aFormat"The format to check. The reference is not used after the method returns."

SupportsPictureLoss()

IMPORT_C TBoolSupportsPictureLoss()const

Returns whether the decoder supports picture loss indications. If true, the decoder indicates lost pictures by calling MdvpoPictureLoss().

"True if the decoder supports picture loss indications."

SupportsSliceLoss()

IMPORT_C TBoolSupportsSliceLoss()const

Returns whether the decoder supports slice loss indications. If true, the decoder indicates lost macroblocks by calling MdvpoSliceLoss().

"True if the decoder supports slice loss indications."

Uid()

IMPORT_C TUidUid()const

Returns the decoder UID. "Decoder UID."

Version()

IMPORT_C TVersionVersion()const

Returns the decoder version. "Decoder version."

Member Data Documentation

TBool iAccelerated

TBool iAccelerated[private]

HBufC8 * iCodingStandardSpecificInfo

HBufC8 *iCodingStandardSpecificInfo[private]

HBufC * iIdentifier

HBufC *iIdentifier[private]

HBufC8 * iImplementationSpecificInfo

HBufC8 *iImplementationSpecificInfo[private]

HBufC * iManufacturer

HBufC *iManufacturer[private]

TUint iMaxBitrate

TUint iMaxBitrate[private]

RArray< TPictureRateAndSize > iMaxPictureRates

RArray< TPictureRateAndSize >iMaxPictureRates[private]

TSize iMaxPictureSize

TSize iMaxPictureSize[private]

RPointerArray< CCompressedVideoFormat > iSupportedFormats

RPointerArray< CCompressedVideoFormat >iSupportedFormats[private]

RArray< TInt > iSupportedScreens

RArray< TInt >iSupportedScreens[private]

TBool iSupportsContentProtected

TBool iSupportsContentProtected[private]

TBool iSupportsDirectDisplay

TBool iSupportsDirectDisplay[private]

TBool iSupportsPictureLoss

TBool iSupportsPictureLoss[private]

TBool iSupportsSliceLoss

TBool iSupportsSliceLoss[private]

TUid iUid

TUid iUid[private]

TVersion iVersion

TVersion iVersion[private]