MMMFDevVideoPlayObserver Class Reference

#include "devvideoplay.h"

class MMMFDevVideoPlayObserver
Public Member Functions
pure virtual voidMdvpoFatalError(TInt)
pure virtual voidMdvpoInitComplete(TInt)
pure virtual voidMdvpoNewBuffers()
pure virtual voidMdvpoNewPictures()
pure virtual voidMdvpoPictureLoss()
pure virtual voidMdvpoPictureLoss(const TArray< TPictureId > &)
pure virtual voidMdvpoReferencePictureSelection(const TDesC8 &)
pure virtual voidMdvpoReturnPicture(TVideoPicture *)
pure virtual voidMdvpoSliceLoss(TUint, TUint, const TPictureId &)
pure virtual voidMdvpoStreamEnd()
pure virtual voidMdvpoSupplementalInformation(const TDesC8 &, const TTimeIntervalMicroSeconds &, const TPictureId &)
pure virtual voidMdvpoTimedSnapshotComplete(TInt, TPictureData *, const TTimeIntervalMicroSeconds &, const TPictureId &)

Detailed Description

The MMMFDevVideoPlayObserver mixin class defines a set of callback functions that the client using the MSL video API needs to implement. The callbacks are called in the context of the same thread that uses the API. DevVideo API methods can be safely called from the callbacks.

Member Function Documentation

MdvpoFatalError ( TInt )

voidMdvpoFatalError(TIntaError)[pure virtual]

Reports a fatal decoding or playback error to the client. When these errors occur, decoding and playback is stopped automatically. The client must destroy the CMMFDevVideoPlay object and create a new instance before attempting to continue. Note that scenarios have been identified where MdvpoFatalError may get referenced at some point during the execution of a CMMFDevVideoPlay procedure. Therefore CMMFDevVideoPlay object should be deleted outside of MdvpoFatalError context in order to avoid accidental access to de-allocated CMMFDevVideoPlay data members.

Note that running out of processing power or encountering corrupted bitstream data should not be classified as errors if the decoder and post-processor can recover automatically.

ParameterDescription
aError"The error code."

MdvpoInitComplete ( TInt )

voidMdvpoInitComplete(TIntaError)[pure virtual]

Reports that DevVideoPlay initialization has completed. The interface can now be used for video playback.

ParameterDescription
aError"Initialization error code, KErrNone if no error occurred."

MdvpoNewBuffers ( )

voidMdvpoNewBuffers()[pure virtual]

Notifies the client that one or more new empty input buffers are available. The client can fetch the input buffer with GetBufferL().

MdvpoNewPictures ( )

voidMdvpoNewPictures()[pure virtual]

Notifies the client that one or more new output pictures are available. The client can then use GetNewPictureInfo() and NextPicture() to fetch the pictures.

MdvpoPictureLoss ( )

voidMdvpoPictureLoss()[pure virtual]

Back channel information from the decoder, indicating a picture loss without specifying the lost picture.

MdvpoPictureLoss ( const TArray< TPictureId > & )

voidMdvpoPictureLoss(const TArray< TPictureId > &aPictures)[pure virtual]

Back channel information from the decoder, indicating the pictures that have been lost.

ParameterDescription
aPictures"Picture identifiers for the lost pictures. The reference is only valid until the method returns, and thus the data must be processed or copied immediately."

MdvpoReferencePictureSelection ( const TDesC8 & )

voidMdvpoReferencePictureSelection(const TDesC8 &aSelectionData)[pure virtual]

Back channel information from the decoder, indicating a reference picture selection request. The request is delivered as a coding-standard specific binary message. Reference picture selection can be used to select a pervious correctly transmitted picture to use as a reference in case later pictures have been lost.

ParameterDescription
aSelectionData"The reference picture selection request message. The message format is coding-standard specific, and defined separately. The reference is only valid until the method returns, and thus the data must be processed or copied immediately."

MdvpoReturnPicture ( TVideoPicture * )

voidMdvpoReturnPicture(TVideoPicture *aPicture)[pure virtual]

Returns a used input video picture back to the caller. The picture memory can be re-used or freed.

ParameterDescription
aPicture"The picture to return."

MdvpoSliceLoss ( TUint, TUint, const TPictureId & )

voidMdvpoSliceLoss(TUintaFirstMacroblock,
TUintaNumMacroblocks,
const TPictureId &aPicture
)[pure virtual]

Back channel information from the decoder, indicating the loss of consecutive macroblocks in raster scan order.

ParameterDescription
aFirstMacroblock"The first lost macroblock. The macroblocks are numbered such that the macroblock in the upper left corner of the picture is considered macroblock number 1 and the number for each macroblock increases from left to right and then from top to bottom in raster-scan order." @param "aNumMacroblocks" "The number of lost macroblocks that are consecutive in raster-scan order." @param "aPicture" "The picture identifier for the picture where the macroblocks were lost. If the picture is not known, aPicture.iIdType is set to ENone. The reference is only valid until the method returns."

MdvpoStreamEnd ( )

voidMdvpoStreamEnd()[pure virtual]

Reports that the input video stream end has been reached and all pictures have been processed. This method is only called after the client has called InputEnd(). No more output pictures will be available.

MdvpoSupplementalInformation ( const TDesC8 &, const TTimeIntervalMicroSeconds &, const TPictureId & )

voidMdvpoSupplementalInformation(const TDesC8 &aData,
const TTimeIntervalMicroSeconds &aTimestamp,
const TPictureId &aPictureId
)[pure virtual]

Delivers supplemental information from a coded data unit. The information is codec-dependent.

ParameterDescription
aData"The supplemental data. The reference is only valid until the method returns, and thus the data must be processed or copied immediately."
aTimestamp"The presentation timestamp for the picture that the supplemental data is part of."
aPictureId"Picture identifier for the picture. If a picture ID is not available, aPictureId.iIdType is set to ENone."

MdvpoTimedSnapshotComplete ( TInt, TPictureData *, const TTimeIntervalMicroSeconds &, const TPictureId & )

voidMdvpoTimedSnapshotComplete(TIntaError,
TPictureData *aPictureData,
const TTimeIntervalMicroSeconds &aPresentationTimestamp,
const TPictureId &aPictureId
)[pure virtual]

Called when a timed snapshot request has been completed. When this method is called, the snapshot has been taken, and the memory reserved for the picture can be re-used or freed.

ParameterDescription
aError"An error code, KErrNone if no errors occurred. If an error occurred, the data in the snapshot may not be valid, but the memory can still be freed." @param "aPictureData" "The snapshot picture data." @param "aPresentationTimestamp" "The presentation timestamp for the snapshot picture. " @param "aPictureId" "Picture identifier for the picture. If a picture ID is not available, aPictureId.iIdType is set to ENone."