CJPEGImageFrameDecoder Class Reference

class CJPEGImageFrameDecoder : public CJPEGExifDecoder

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 .

Inherits from

Public Member Functions
~CJPEGImageFrameDecoder ()
IMPORT_C void ContinueConvertFrame ( TRequestStatus *)
IMPORT_C void ConvertFrame ( TRequestStatus *, CImageFrame &)
IMPORT_C void ConvertFrame ( TRequestStatus *, CImageFrame &, TInt )
IMPORT_C CJPEGImageFrameDecoder * NewL ()
IMPORT_C TBool RecommendedBufferSize ( TUid , TInt &)
IMPORT_C TBool RecommendedBufferSize ( TInt &)
Protected Member Functions
CJPEGImageFrameDecoder ()
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()
Inherited Enumerations
CImageDecoder:TImageType
CImageDecoder:TOptions

Constructor & Destructor Documentation

CJPEGImageFrameDecoder()

IMPORT_C CJPEGImageFrameDecoder ( ) [protected]

Constructor for the CJPEGImageFrameDecoder class.

~CJPEGImageFrameDecoder()

IMPORT_C ~CJPEGImageFrameDecoder ( )

Destructor for the CJPEGImageFrameDecoder class.

Member Functions Documentation

ContinueConvertFrame(TRequestStatus *)

IMPORT_C void ContinueConvertFrame ( 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

TRequestStatus * aRequestStatus Request 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 void ConvertFrame ( 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

TRequestStatus * aRequestStatus Pointer 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.
CImageFrame & aDestFrame A CImageFrame that will contain the decoded frame.

ConvertFrame(TRequestStatus *, CImageFrame &, TInt)

IMPORT_C void ConvertFrame ( TRequestStatus * aRequestStatus,
CImageFrame & aDestFrame,
TInt aFrameNumber
)

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

TRequestStatus * aRequestStatus Pointer 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.
CImageFrame & aDestFrame A CImageFrame that will contain the decoded frame.
TInt aFrameNumber The number of the frame in a multi-frame image to decode.

NewL()

IMPORT_C CJPEGImageFrameDecoder * NewL ( ) [static]

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.

RecommendedBufferSize(TUid, TInt &)

IMPORT_C TBool RecommendedBufferSize ( TUid aFormatCode,
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

TUid aFormatCode The UID of a format code that the client intends to use to decode the image.
TInt & bufferSize On return contains recommended buffer size to be used, in bytes. Size is 0 if the codec cannot decode the image to the specified format.

RecommendedBufferSize(TInt &)

IMPORT_C TBool RecommendedBufferSize ( 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

TInt & bufferSize On return contains recommended buffer size to be used, in bytes. Size is 0 if the codec cannot decode the image.