Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



Location: MmfCodec.h

This item is not part of the S60 3rd Edition SDK for Symbian OS, Feature Pack 2.

Class TCodecProcessResult

class TCodecProcessResult;

Description

Indicates the result of processing data from the source buffer to a destination buffer and provides functions to compare the result code.

Members

Defined in TCodecProcessResult:
EDstNotFilled, EEndOfData, EProcessComplete, EProcessCompleteRepositionRequest, EProcessError, EProcessIncomplete, EProcessIncompleteRepositionRequest, TCodecProcessResult(), TCodecProcessResultStatus, iDstBytesAdded, iSrcBytesProcessed, iStatus, operator!=(), operator==()


Construction and destruction


TCodecProcessResult()

inline TCodecProcessResult();

Description

Default constructor.

[Top]


Member functions


operator==()

inline TBool operator==(const TCodecProcessResultStatus aStatus) const;

Description

Overloaded operator to test equality.

Parameters

const TCodecProcessResultStatus aStatus

The status to compare the result of the process function.

Return value

TBool

A boolean indicating if the two status codes are the same. ETrue if they are, EFalse otherwise.


operator!=()

inline TBool operator!=(const TCodecProcessResultStatus aStatus) const;

Description

Overloaded operator to test inequality.

Parameters

const TCodecProcessResultStatus aStatus

The status to compare the result of the process function.

Return value

TBool

A boolean indicating if the two status codes are not the same. ETrue if they are not, EFalse otherwise.

[Top]


Member enumerations


Enum TCodecProcessResultStatus

TCodecProcessResultStatus

Description

Flag to track the codec's processing status.

EProcessComplete

The codec successfully has completed its processing.

A codec should return this code when it has fully processed the source buffer, and is finished with the destination buffer. The codec should finish with the destination buffer when it has been filled. The EProcessComplete return code indicates that the codec has finished with the destination buffer. This informs the data path that the destination buffer may now be passed onto the data sink. If the codec returns EProcessComplete this means that the codec is expecting a new source buffer and a new destination buffer the next time it's ProcessL() method is called.

EProcessIncomplete

Could not empty the source buffer because the destination buffer became full.

A codec should return this code when it has not been able to fully process the source buffer. This would usually be the case if the codec has filled the destination buffer (or the remaining space available in the destination buffer is insufficient to perform any further useful processing) before the source buffer has been processed. The EProcessIncomplete return code indicates that the codec has finished with the destination buffer. This informs the data path that the destination buffer may now be passed onto the data sink. If the codec returns EProcessIncomplete this means that the codec is expecting the same source buffer but a new destination buffer the next time it's ProcessL() method is called.

EEndOfData

Codec came across an end of data.

This can be returned if a codec is able to determine that there is no more source data. It is not necessary for the codec to return this however as in most cases the codec will not be able to determine when the end of data has been reached.

EDstNotFilled

Could not fill the destination buffer because the source buffer has been emptied

A codec should return this code when is has fully processed the source buffer and there is still sufficient space available in the destination buffer for the codec to continue using the same destination buffer. The EDstNotFilled return code indicates that the codec has not finished with the destination buffer. If the codec returns EDstNotFilled this means that the codec is expecting a new source buffer but the same destination buffer the next time its ProcessL() method is called.

EProcessError

An error occured.

This is no longer required as if an error occurs in the codec's ProcessL()function, it should leave. When used with a datapath, returning EProcessError has the same effect as leaving with KErrCorrupt.

EProcessIncompleteRepositionRequest

As 'EFrameIncomplete' but also requests a call to GetNewDataPosition.

EProcessCompleteRepositionRequest

As 'EFrameComplete' but also requests a call to GetNewDataPosition.

[Top]


Member data


iStatus

TCodecProcessResultStatus iStatus;

Description

The codec's processing status.

See also:


iSrcBytesProcessed

TUint iSrcBytesProcessed;

Description

The number of source bytes processed.

The number of bytes of source data that have been processed.

A codec should set this, and iDstBytesAdded, to indicate the source bytes processed for a particular call (i.e. not the total number of source bytes processed or destination bytes added). The codec should also ensure that the length of the destination buffer matches the length of the processed data in the destination buffer. Note that the codec should not reallocate the maximum length of the destination buffer.


iDstBytesAdded

TUint iDstBytesAdded;

Description

The number of bytes added to the destination buffer.

A codec should set this, and iSrcBytesProcessed, to indicate the source bytes processed for a particular call (i.e. not the total number of source bytes processed or destination bytes added). The codec should also ensure that the length of the destination buffer matches the length of the processed data in the destination buffer. Note that the codec should not reallocate the maximum length of the destination buffer.