TImageConvStreamedDecode Class Reference

class TImageConvStreamedDecode

'Block' streaming extension for Image Conversion Library decoder.

Public Member Functions
IMPORT_C voidGetBlocks(TRequestStatus &, CImageFrame &, TInt, TInt, TInt &)
IMPORT_C TIntGetBufferSize(TUid, TSize &, TInt)
IMPORT_C voidGetCapabilities(TUid, TInt, TDecodeStreamCaps &)
IMPORT_C voidGetNextBlocks(TRequestStatus &, CImageFrame &, TInt, TInt &, TBool &)
IMPORT_C voidGetSupportedFormatsL(RArray< TUid > &, TUid &)
IMPORT_C voidInitFrameL(TUid, TInt, TDecodeStreamCaps::TNavigation)
Private Member Functions
TImageConvStreamedDecode()
voidSetExtension(MImageConvExtension *)
Private Attributes
MImageConvStreamedDecode *iExtension
TInt iReserved

Constructor & Destructor Documentation

TImageConvStreamedDecode()

IMPORT_CTImageConvStreamedDecode()[private]

Member Functions Documentation

GetBlocks(TRequestStatus &, CImageFrame &, TInt, TInt, TInt &)

IMPORT_C voidGetBlocks(TRequestStatus &aStatus,
CImageFrame &aFrame,
TIntaSeqPosition,
TIntaNumBlocksToGet,
TInt &aNumBlocksRead
)

Start asynchronous call to return random blocks from the stream

Note:

use CImageDecoder::Cancel() to cancel this request.

Parameters

TRequestStatus & aStatusrequest status
CImageFrame & aFrameAn image frame wrapper a memory buffer to hold the returned block(s) of pixel data. This can be 'uninitialised' or given specific format which must match that specified in the InitFrameL call.
TInt aSeqPositionblock number starting at top left 0 ... TDecodeStreamCaps::StreamSizeInBlocks()
TInt aNumBlocksToGetnumber of blocks requested
TInt & aNumBlocksReadnumber of blocks which will be returned when the request completes

GetBufferSize(TUid, TSize &, TInt)

IMPORT_C TIntGetBufferSize(TUidaFormat,
TSize &aBlockSizeInPixels,
TIntaNumBlocks
)const

Get the size of the memory buffer to hold the returned data.

The memory buffer size in bytes to hold the requested blocks. System wide error if for example the format is not supported.

Parameters

TUid aFormatthe required format
TSize & aBlockSizeInPixelsreturns the size in pixels of the block returned from the stream when aNumBlocks of minimum block size are requested.
TInt aNumBlocksthe number of blocks of size TDecodeStreamCaps::MinBlockSizeInPixels() to be returned by one request

GetCapabilities(TUid, TInt, TDecodeStreamCaps &)

IMPORT_C voidGetCapabilities(TUidaFormat,
TIntaFrameNumber,
TDecodeStreamCaps &aCaps
)const

Returns the capabilities of the codec plugin for a specific format and for a specific frame.

Parameters

TUid aFormatThe format.
TInt aFrameNumberframe to stream
TDecodeStreamCaps & aCapsThe capabilities for the format given.

GetNextBlocks(TRequestStatus &, CImageFrame &, TInt, TInt &, TBool &)

IMPORT_C voidGetNextBlocks(TRequestStatus &aStatus,
CImageFrame &aFrame,
TIntaNumBlocksToGet,
TInt &aNumBlocksRead,
TBool &aHaveMoreBlocks
)

Start asynchronous call to return blocks sequentially from the stream. Blocks are returned from the first block until the last in the stream.

Note:

use CImageDecoder::Cancel() to cancel this request.

Parameters

TRequestStatus & aStatusrequest status
CImageFrame & aFrameAn image frame wrapper a memory buffer to hold the returned block(s) of pixel data. This can be 'uninitialised' or given specific format which must match that specified in the InitFrameL call.
TInt aNumBlocksToGetnumber of blocks requested
TInt & aNumBlocksReadnumber of blocks which will be returned when the request completes
TBool & aHaveMoreBlocks

GetSupportedFormatsL(RArray< TUid > &, TUid &)

IMPORT_C voidGetSupportedFormatsL(RArray< TUid > &aFormats,
TUid &aOptimalFormat
)const

Returns a list of supported formats and the optimal format to be used. imageframeconst.h for a list of format uids.

Parameters

RArray< TUid > & aFormatsReturns an array of format uids
TUid & aOptimalFormatThe 'best' uid to use.

InitFrameL(TUid, TInt, TDecodeStreamCaps::TNavigation)

IMPORT_C voidInitFrameL(TUidaFormat,
TIntaFrameNumber,
TDecodeStreamCaps::TNavigationaNavigation
)

Initialise the stream.

leave

System wide error if for example the format is not supported.

Note:

must call InitFrameL before GetBlocks or GetNextBlocks. Failure to do so completes request with KErrNotReady

Parameters

TUid aFormatthe format to use
TInt aFrameNumberframe to stream
TDecodeStreamCaps::TNavigation aNavigationindication to stream of the way that the stream will be navigated. Allows codec to optimise it's behaviour.

SetExtension(MImageConvExtension *)

voidSetExtension(MImageConvExtension *aExtension)[private]

Parameters

MImageConvExtension * aExtension

Member Data Documentation

MImageConvStreamedDecode * iExtension

MImageConvStreamedDecode *iExtension[private]

TInt iReserved

TInt iReserved[private]