CJPEGImageFrameDecoder Class Reference

#include <iclexifimageframe.h>

Link against: jpegimageframeplugin.lib

class CJPEGImageFrameDecoder : public CJPEGExifDecoder

Inherits from

Public Member Functions
~CJPEGImageFrameDecoder()
IMPORT_C voidContinueConvertFrame(TRequestStatus *)
IMPORT_C voidConvertFrame(TRequestStatus *, CImageFrame &)
IMPORT_C voidConvertFrame(TRequestStatus *, CImageFrame &, TInt)
IMPORT_C CJPEGImageFrameDecoder *NewL()
IMPORT_C TBoolRecommendedBufferSize(TUid, TInt &)
IMPORT_C TBoolRecommendedBufferSize(TInt &)
Protected Member Functions
CJPEGImageFrameDecoder()
Inherited Enumerations
CImageDecoder:TImageType
CImageDecoder:TOptions
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()
CImageDecoder::BlockStreamerL()
CImageDecoder::CImageDecoder()
CImageDecoder::Cancel()
CImageDecoder::ContinueConvert(TRequestStatus *)
CImageDecoder::ContinueProcessingHeaderL()
CImageDecoder::Convert(TRequestStatus *,CFbsBitmap &,CFbsBitmap &,TInt)
CImageDecoder::Convert(TRequestStatus *,CFbsBitmap &,TInt)
CImageDecoder::CustomAsync(TRequestStatus *,TInt)
CImageDecoder::CustomSyncL(TInt)
CImageDecoder::DataNewL(RFs &,const TDesC8 &,const TDesC8 &,const TOptions)
CImageDecoder::DataNewL(RFs &,const TDesC8 &,const TOptions,const TUid,const TUid,const TUid)
CImageDecoder::FileNewL(RFile &,ContentAccess::TIntent,const TOptions,const TUid,const TUid,const TUid)
CImageDecoder::FileNewL(RFile &,const TDesC8 &,ContentAccess::TIntent,const TOptions)
CImageDecoder::FileNewL(RFs &,const TDesC &,ContentAccess::TIntent,const TOptions,const TUid,const TUid,const TUid)
CImageDecoder::FileNewL(RFs &,const TDesC &,const TDesC8 &,ContentAccess::TIntent,const TOptions)
CImageDecoder::FileNewL(RFs &,const TDesC &,const TDesC8 &,const TOptions)
CImageDecoder::FileNewL(RFs &,const TDesC &,const TOptions,const TUid,const TUid,const TUid)
CImageDecoder::FileNewL(RFs &,const TMMSource &,const TDesC8 &,const TOptions)
CImageDecoder::FileNewL(RFs &,const TMMSource &,const TOptions,const TUid,const TUid,const TUid)
CImageDecoder::FrameCommentL(TInt,TInt)const
CImageDecoder::FrameCount()const
CImageDecoder::FrameData(TInt)const
CImageDecoder::FrameInfo(TInt)const
CImageDecoder::FrameInfoStringsL(TInt)
CImageDecoder::FrameInfoStringsLC(TInt)
CImageDecoder::GetDestinationSize(TSize &,TInt)
CImageDecoder::GetFileTypesL(RFileExtensionMIMETypeArray &)
CImageDecoder::GetImageSubTypesL(const TUid,RImageTypeDescriptionArray &)
CImageDecoder::GetImageTypesL(RImageTypeDescriptionArray &)
CImageDecoder::GetImplementationInformationL(TUid)
CImageDecoder::GetInterfaceImplementationsL(const RUidDataArray &,RUidDataArray &)
CImageDecoder::GetInterfaceImplementationsL(const TUid *,const TInt,RUidDataArray &)
CImageDecoder::GetMimeTypeDataL(const TDesC8 &,TDes8 &)
CImageDecoder::GetMimeTypeFileL(RFs &,const TDesC &,TDes8 &)
CImageDecoder::GetPluginPropertiesL(const TUid,RUidDataArray &)
CImageDecoder::ImageCommentL(TInt)const
CImageDecoder::ImageType(TInt,TUid &,TUid &)const
CImageDecoder::ImplementationUid()const
CImageDecoder::IsImageHeaderProcessingComplete()const
CImageDecoder::NumberOfFrameComments(TInt)const
CImageDecoder::NumberOfImageComments()const
CImageDecoder::OperationL()
CImageDecoder::Plugin()const
CImageDecoder::Prepare(TRequestStatus *)
CImageDecoder::ReducedSize(const TSize &,TInt,TSize &)const
CImageDecoder::ReductionFactor(const TSize &,const TSize &)const
CImageDecoder::ScalerL()
CImageDecoder::SetAgentProperty(ContentAccess::TAgentProperty,TInt)
CImageDecoder::SetClippingRectL(const TRect *)
CImageDecoder::SetDecoderThreadPriority(TThreadPriority)
CImageDecoder::SetImageTypeL(TInt)
CImageDecoder::~CImageDecoder()
CJPEGExifDecoder::CJPEGExifDecoder()
CJPEGExifDecoder::ConstructL()
CJPEGExifDecoder::ExifMetadata()
CJPEGExifDecoder::~CJPEGExifDecoder()

Detailed Description

This class provides access to an extension of the EXIF JPEG decoder that supports decoding of JPEG images held either in files or in descriptors to a destination of type CImageFrame.

This is an addition to the features provided by CJPEGExifDecoder.

Constructor & Destructor Documentation

CJPEGImageFrameDecoder ( )

IMPORT_CCJPEGImageFrameDecoder()[protected]

Constructor for the CJPEGImageFrameDecoder class.

~CJPEGImageFrameDecoder ( )

IMPORT_C~CJPEGImageFrameDecoder()

Destructor for the CJPEGImageFrameDecoder class.

Member Function Documentation

ContinueConvertFrame ( TRequestStatus * )

IMPORT_C voidContinueConvertFrame(TRequestStatus *aRequestStatus)

Continue decoding for destinations of type CImageFrame after new image data was added to the source file or descriptor and a previous call to ConvertFrame() or ContinueConvertFrame() returned KErrUnderflow.

Parameters
aRequestStatusRequest status. This returns an error code on completion. KErrNone if frame was successfully decoded, KErrUnderflow if the frame was partially decoded, KErrNotReady if the destination is not valid, otherwise another of the system-wide error codes.

ConvertFrame ( TRequestStatus *, CImageFrame & )

IMPORT_C voidConvertFrame(TRequestStatus *aRequestStatus,
CImageFrame &aDestFrame
)

Basic decode convert call for destinations of type CImageFrame.

Pre-condition
The destination CImageFrame, must be created before the call to ConvertFrame() is made.
aDestFrame must be large enough to contain the decoded frame. CJPEGImageFrameDecoder::RecommendedBufferSize() can be used to obtain the required buffer size in the CImageFrame.

This convert call is a standard asynchronous operation. It takes a pointer to the TRequestStatus object of the waiting active object in the main application which will be signalled when the operation is completed.

If the operation completes with KErrUnderflow, then there is insufficient information in the source file or descriptor. In this situation, ContinueConvertFrame() should be called repeatedly until the source file or descriptor has accumulated enough information for ContinueConvertFrame() to complete with KErrNone.

Parameters
aRequestStatusPointer to the TRequestStatus object that is signalled on completion. Contains an error code. KErrNone if frame was decoded successfully, otherwise another of the system-wide error codes.
aDestFrameA CImageFrame that will contain the decoded frame.

ConvertFrame ( TRequestStatus *, CImageFrame &, TInt )

IMPORT_C voidConvertFrame(TRequestStatus *aRequestStatus,
CImageFrame &aDestFrame,
TIntaFrameNumber
)

Basic decode convert call for destinations of type CImageFrame when frame number is specified.

Pre-condition
The destination CImageFrame, must be created before the call to ConvertFrame() is made.
aDestFrame must be large enough to contain the decoded frame. CJPEGImageFrameDecoder::RecommendedBufferSize() can be used to obtain the required buffer size in the CImageFrame.

This convert call is a standard asynchronous operation. It takes a pointer to the TRequestStatus object of the waiting active object in the main application which will be signalled when the operation is completed.

If the operation completes with KErrUnderflow, then there is insufficient information in the source file or descriptor. In this situation, ContinueConvertFrame() should be called repeatedly until the source file or descriptor has accumulated enough information for ContinueConvertFrame() to complete with KErrNone.

Parameters
aRequestStatusPointer to the TRequestStatus object that is signalled on completion. Contains an error code. KErrNone if frame was decoded successfully, otherwise another of the system-wide error codes.
aDestFrameA CImageFrame that will contain the decoded frame.
aFrameNumberThe number of the frame in a multi-frame image to decode.

NewL ( )

IMPORT_C CJPEGImageFrameDecoder *NewL()[static]

Reimplemented from CJPEGExifDecoder::NewL()

A factory function that constructs a JPEG CImageFrame decoder as an extension of the ICL EXIF decoder.

A leave occurs if there is insufficient memory available.

Return Value
A pointer to the new JPEG CImageFrame decoder.

RecommendedBufferSize ( TUid, TInt & )

IMPORT_C TBoolRecommendedBufferSize(TUidaFormatCode,
TInt &bufferSize
)

Returns the size (in bytes) of the buffer required to decode the image supplied to the decoder using a particular format.

The client should supply the buffer size in the aMaxBufferSize parameter of CImageFrame::NewL() when creating the destination CImageFrame before calling CJPEGImageFrameDecoder::ConvertFrame().

Parameters
aFormatCodeThe UID of a format code that the client intends to use to decode the image.
bufferSizeOn return contains recommended buffer size to be used, in bytes. Size is 0 if the codec cannot decode the image to the specified format.
Return Value
A boolean indicating whether or not the codec can decode the image to the requested format.

RecommendedBufferSize ( TInt & )

IMPORT_C TBoolRecommendedBufferSize(TInt &bufferSize)

Returns the size (in bytes) of the buffer required to decode the image supplied to the decoder. The size returned will be the required size when using the plugin's default format code.

The client should supply the buffer size in the aMaxBufferSize parameter of CImageFrame::NewL() when creating the destination CImageFrame before calling CJPEGImageFrameDecoder::ConvertFrame().

Parameters
bufferSizeOn return contains recommended buffer size to be used, in bytes. Size is 0 if the codec cannot decode the image.
Return Value
A boolean indicating whether or not the codec supports decoding of that image.