class MImageConvStreamedEncode : public MImageConvExtension |
Block Streaming extension for encoder plugins.
Public Member Functions | |
---|---|
void | AddBlocks(TRequestStatus *, const CImageFrame &, const TInt &) |
void | AppendBlocks(TRequestStatus *, const CImageFrame &, TInt) |
void | Complete(TRequestStatus *) |
void | GetCapabilities(TUid, TEncodeStreamCaps &) |
void | GetSupportedFormatsL(RArray< TUid > &, TUid &) |
void | InitFrameL(TUid, TInt, const TSize &, const TSize &, TEncodeStreamCaps::TNavigation, const CFrameImageData *) |
Private Attributes | |
---|---|
TInt | iReserved |
void | AddBlocks | ( | TRequestStatus * | aStatus, |
const CImageFrame & | aBlocks, | |||
const TInt & | aSeqPosition | |||
) | [pure virtual] |
Add blocks to the stream at a random position.
TRequestStatus * aStatus | request status |
const CImageFrame & aBlocks | wraps a memory buffer containing the pixel data to be added to the stream |
const TInt & aSeqPosition | position of block in stream starting at 0 |
void | AppendBlocks | ( | TRequestStatus * | aStatus, |
const CImageFrame & | aBlocks, | |||
TInt | aNumBlocksToAdd | |||
) | [pure virtual] |
Append blocks to the stream.
TRequestStatus * aStatus | request status |
const CImageFrame & aBlocks | wraps a memory buffer containing the pixel data to be added to the stream |
TInt aNumBlocksToAdd | number of blocks of size TEncodeStreamCaps::MinBlockSizeInPixels to add to the stream |
void | Complete | ( | TRequestStatus * | aStatus | ) | [pure virtual] |
Signal completion of writing the stream
TRequestStatus * aStatus | request status |
void | GetCapabilities | ( | TUid | aFormat, |
TEncodeStreamCaps & | aCaps | |||
) | const [pure virtual] |
Returns the capabilities of the codec plugin for a specific format.
TUid aFormat | The format. |
TEncodeStreamCaps & aCaps | The capabilities for the format given. |
void | GetSupportedFormatsL | ( | RArray< TUid > & | aFormats, |
TUid & | aOptimalFormat | |||
) | const [pure virtual] |
Returns a list of supported formats and the optimal format to be used. imageframeconst.h for a list of format uids.
void | InitFrameL | ( | TUid | aFormat, |
TInt | aFrameNumber, | |||
const TSize & | aFrameSizeInPixels, | |||
const TSize & | aBlockSizeInPixels, | |||
TEncodeStreamCaps::TNavigation | aNavigation, | |||
const CFrameImageData * | aFrameImageData | |||
) | [pure virtual] |
Initialise the stream. TJpegImageData
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.
TUid aFormat | the format to use |
TInt aFrameNumber | frame to stream |
const TSize & aFrameSizeInPixels | Size of this frame in pixels |
const TSize & aBlockSizeInPixels | Size of block to be added / appended. ??? do we want to support multiple blocks being added in which case InitFrameL needs an extra parameter |
TEncodeStreamCaps::TNavigation aNavigation | indication to stream of the way that the stream will be navigated. Allows codec to optimise it's behaviour. |
const CFrameImageData * aFrameImageData | The 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. |