MImageConvStreamedEncode Class Reference

#include <icl/imageconversionextensionintf.h>

class MImageConvStreamedEncode : public MImageConvExtension

Inherits from

Public Member Functions
pure virtual voidAddBlocks(TRequestStatus *, const CImageFrame &, const TInt &)
pure virtual voidAppendBlocks(TRequestStatus *, const CImageFrame &, TInt)
pure virtual voidComplete(TRequestStatus *)
pure virtual voidGetCapabilities(TUid, TEncodeStreamCaps &)
pure virtual voidGetSupportedFormatsL(RArray< TUid > &, TUid &)
pure virtual voidInitFrameL(TUid, TInt, const TSize &, const TSize &, TEncodeStreamCaps::TNavigation, const CFrameImageData *)
Inherited Functions
MImageConvExtension::IncrementRef()
MImageConvExtension::Release()
MImageConvExtension::Uid()const

Detailed Description

Block Streaming extension for encoder plugins.

Member Function Documentation

AddBlocks ( TRequestStatus *, const CImageFrame &, const TInt & )

voidAddBlocks(TRequestStatus *aStatus,
const CImageFrame &aBlocks,
const TInt &aSeqPosition
)[pure virtual]

Add blocks to the stream at a random position.

Parameters
aStatusrequest status
aBlockswraps a memory buffer containing the pixel data to be added to the stream
aSeqPositionposition of block in stream starting at 0

AppendBlocks ( TRequestStatus *, const CImageFrame &, TInt )

voidAppendBlocks(TRequestStatus *aStatus,
const CImageFrame &aBlocks,
TIntaNumBlocksToAdd
)[pure virtual]

Append blocks to the stream.

Parameters
aStatusrequest status
aBlockswraps a memory buffer containing the pixel data to be added to the stream
aNumBlocksToAddnumber of blocks of size TEncodeStreamCaps::MinBlockSizeInPixels to add to the stream

Complete ( TRequestStatus * )

voidComplete(TRequestStatus *aStatus)[pure virtual]

Signal completion of writing the stream

Parameters
aStatusrequest status

GetCapabilities ( TUid, TEncodeStreamCaps & )

voidGetCapabilities(TUidaFormat,
TEncodeStreamCaps &aCaps
)const [pure virtual]

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

Parameters
aFormatThe format.
aCapsThe capabilities for the format given.

GetSupportedFormatsL ( RArray< TUid > &, TUid & )

voidGetSupportedFormatsL(RArray< TUid > &aFormats,
TUid &aOptimalFormat
)const [pure virtual]

Returns a list of supported formats and the optimal format to be used.

See also: imageframeconst.h for a list of format uids.

Parameters
aFormatsReturns an array of format uids
aOptimalFormatThe 'best' uid to use.

InitFrameL ( TUid, TInt, const TSize &, const TSize &, TEncodeStreamCaps::TNavigation, const CFrameImageData * )

voidInitFrameL(TUidaFormat,
TIntaFrameNumber,
const TSize &aFrameSizeInPixels,
const TSize &aBlockSizeInPixels,
TEncodeStreamCaps::TNavigationaNavigation,
const CFrameImageData *aFrameImageData
)[pure virtual]

Initialise the stream.

See also: TJpegImageData

Note:

TO DO Do we need to specify where the destination is held e.g. in memory, on flash card etc?

must call InitFrameL before AppendBlocks or AddBlocks. Failure to do so completes request with KErrNotReady

can either specify format through aFormat or aImageFrameData. Conflicts should leave with KErrArgument.

Parameters
aFormatthe format to use
aFrameNumberframe to stream
aFrameSizeInPixelsSize of this frame in pixels
aBlockSizeInPixelsSize of block to be added / appended. ??? do we want to support multiple blocks being added in which case InitFrameL needs an extra parameter
aNavigationindication to stream of the way that the stream will be navigated. Allows codec to optimise it's behaviour.
aFrameImageDataThe frame image data. Optional. There exists format-specific image data variants that are used by encoders to obtain image specific data. This behaviour is invoked by specifying aFrameImageData. Otherwise, if set to NULL, encoder specific defaults are invoked.