#include <mmf/server/devsoundstandardcustominterfaces.h>
class MMMFErrorConcealmentIntfc |
Public Member Functions | |
---|---|
pure virtual TInt | ConcealErrorForNextBuffer() |
pure virtual TInt | FrameModeRqrdForEC(TBool &) |
pure virtual TInt | SetFrameMode(TBool) |
This custom interface can be used to indicate that data has been lost. Typical usage would be during streaming. Lost packets of audio data would not get played, but the video data may still be available for playback. If video playback is synchronized to audio then this API can be used to indicate that audio data is lost so that video playback can continue. It could also be used for an audio-only source to maintain synchronization in time if data is lost.
TInt | ConcealErrorForNextBuffer | ( | ) | [pure virtual] |
Indicates that next buffer sent to CMMFHwDevice will not contain any valid data, and that a single frame of data has been lost, and that error concealment should be provided for that lost frame. This method will be called after a buffer has been received from the Hardware Device, and before it is returned to the Hardware Device.
Returns: KErrNone if successful. KErrInUse if this method is used out of sequence. KErrNotSupported if this method is not implemented.
Queries the CMMFHwDevice to find out if frame mode is required by the implementing CMMFHwDevice in order for it to support error concealment.
This method is allowable when decoding is not active - anytime before the CMMFHwDevice is started, or after it is stopped.
Parameter | Description |
---|---|
aFrameModeRqrd | ETrue = frame mode required; EFalse = frame mode not required |
Returns: KErrNone if successful. KErrInUse if this method is used during decoding. KErrNotSupported if this method is not implemented.
Puts the CMMFHwDevice into frame-based operation. This may be required in cases where the decoder only supports error concealment in a frame-based mode of operation. Operating in frame-based mode means that the decoder requires that each buffer it receives contains only complete data frames.
Frame mode is limited to a single frame per buffer. The alternative to frame-based mode is buffer-based mode, the default interface for CMMFHwDevices and decoders.
In buffer-based mode, complete data frames are not required to be contained within a single buffer. A data frame may span consecutive data buffers in buffer-based mode.
As it is less efficient than buffer-based mode, Frame-based mode should be used as a less-preferred option where errors are present and the CMMFHwDevice implementation would not be tolerant to buffer-based mode error. This condition would be indicated by FrameModeRqrdForEC resulting in its parameter being set to ETrue.
This method can be called when decoding is not active - anytime before the CMMFHwDevice is started, or after it is stopped.
Parameter | Description |
---|---|
aFrameModeOn | ETrue = frame mode on; EFalse = frame mode off. |
Returns: KErrNone if successful. KErrInUse if this method is used out of sequence. KErrNotSupported if this method is not implemented.