Symbian
Symbian OS Library

SYMBIAN OS V9.3

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



Location: videorecordhwdevice.h
Link against: devvideo.lib

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

Class CMMFVideoEncodeHwDevice

class CMMFVideoEncodeHwDevice : public CMMFVideoRecordHwDevice;

Description

CMMFVideoEncodeHwDevice is the MSL video encoder hardware device interface. All video encoders must implement this interface.

Derivation

Members

Defined in CMMFVideoEncodeHwDevice:
CMMFVideoEncodeHwDevice(), CancelSupplementalInfo(), CodingStandardSpecificInitOutputLC(), CodingStandardSpecificSettingsOutputLC(), GetOutputBufferStatus(), ImplementationSpecificInitOutputLC(), ImplementationSpecificSettingsOutputLC(), NewL(), NewPuAdapterL(), PictureLoss(), PictureLoss(), ReferencePictureSelection(), ReturnBuffer(), SendSupplementalInfoL(), SendSupplementalInfoL(), SetBufferOptionsL(), SetChannelBitErrorRate(), SetChannelPacketLossRate(), SetCodingStandardSpecificOptionsL(), SetErrorProtectionLevelL(), SetErrorProtectionLevelsL(), SetErrorsExpected(), SetGlobalReferenceOptions(), SetImplementationSpecificEncoderOptionsL(), SetInLayerScalabilityL(), SetInputDevice(), SetLayerPromotionPointPeriod(), SetLayerReferenceOptions(), SetMinRandomAccessRate(), SetNumBitrateLayersL(), SetOutputFormatL(), SetOutputRectL(), SetProxy(), SetRateControlOptions(), SetScalabilityLayerTypeL(), SetSegmentTargetSize(), SliceLoss(), VideoEncoderInfoLC(), ~CMMFVideoEncodeHwDevice()

Inherited from CBase:
Delete(), Extension_(), operator new()

Inherited from CMMFVideoHwDevice:
CustomInterface()

Inherited from CMMFVideoRecordHwDevice:
CommitL(), Freeze(), GetFrameStabilisationOutput(), GetPictureCounters(), Initialize(), InputEnd(), NumComplexityLevels(), Pause(), PreProcessorInfoLC(), RecordingPosition(), ReleaseFreeze(), Resume(), Revert(), SetClockSource(), SetColorEnhancementOptionsL(), SetComplexityLevel(), SetCustomPreProcessOptionsL(), SetFrameStabilisationOptionsL(), SetInputCropOptionsL(), SetInputFormatL(), SetOutputCropOptionsL(), SetOutputPadOptionsL(), SetPreProcessTypesL(), SetRgbToYuvOptionsL(), SetRotateOptionsL(), SetScaleOptionsL(), SetSourceCameraL(), SetSourceMemoryL(), SetYuvToYuvOptionsL(), Start(), Stop(), WritePictureL()


Construction and destruction


NewL()

static IMPORT_C CMMFVideoEncodeHwDevice *NewL(TUid aUid, MMMFDevVideoRecordProxy &aProxy);

Description

Creates a new video encoder hardware device object, based on the implementation UID.

Parameters

TUid aUid

"Encoder implementation UID."

MMMFDevVideoRecordProxy &aProxy

"The proxy implementation to use."

Return value

CMMFVideoEncodeHwDevice *

"A new CMMFVideoEncodeHwDevice object."

Leave codes

"This

method will leave if an error occurs."


~CMMFVideoEncodeHwDevice()

virtual IMPORT_C ~CMMFVideoEncodeHwDevice();

Description

Destructor.


CMMFVideoEncodeHwDevice()

protected: IMPORT_C CMMFVideoEncodeHwDevice();

Description

Constructor.

[Top]


Member functions


NewPuAdapterL()

static IMPORT_C CMMFVideoEncodeHwDevice *NewPuAdapterL(const CImplementationInformation &aImplInfo, MMMFDevVideoRecordProxy &aProxy);

Description

Creates a new video encoder hardware device adapter object, based on the Interface Implementation of a Processing Unit.

Parameters

const CImplementationInformation &aImplInfo

"The registration data relating to the Interface Implementation of the Processing Unit."

MMMFDevVideoRecordProxy &aProxy

"The proxy implementation to use."

Return value

CMMFVideoEncodeHwDevice *

"A new CMMFVideoEncodeHwDevice object."

Leave codes

"This

method will leave if an error occurs."


VideoEncoderInfoLC()

virtual CVideoEncoderInfo *VideoEncoderInfoLC()=0;

Description

Retrieves information about the video encoder.

Return value

CVideoEncoderInfo *

"Encoder information as a CVideoEncoderInfo object. The object is pushed to the cleanup stack, and must be deallocated by the caller."

Leave codes

"This

method will leave if an error occurs."


SetOutputFormatL()

virtual void SetOutputFormatL(const CCompressedVideoFormat &aFormat, TVideoDataUnitType aDataUnitType, TVideoDataUnitEncapsulation aDataEncapsulation, TBool aSegmentationAllowed=EFalse)=0;

Pre-Condition

"This method may only be called before the hwdevice has been initialized using Initialize()."

Description

Sets the encoder output format. The picture size depends on the input data format and possible scaling performed.

Parameters

const CCompressedVideoFormat &aFormat

"The video format to use."

TVideoDataUnitType aDataUnitType

"The type of output coded data units."

TVideoDataUnitEncapsulation aDataEncapsulation

"Data encapsulation type for output encoded data units."

TBool aSegmentationAllowed

"True if a coded data unit can be segmented into multiple output buffers if a single buffer is not large enough."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - The format specified is not supported."


SetInputDevice()

virtual void SetInputDevice(CMMFVideoPreProcHwDevice *aDevice)=0;

Pre-Condition

"This method may only be called before the hwdevice has been initialized using Initialize()."

Description

Sets the pre-processor device that will write data to this encoder. Uncompressed pictures will be written with WritePictureL() or through a custom interface. After pictures have been processed, they must be returned to the pre-processor using ReturnPicture().

Parameters

CMMFVideoPreProcHwDevice *aDevice

"The input pre-processor device to use."


SetNumBitrateLayersL()

virtual void SetNumBitrateLayersL(TUint aNumLayers)=0;

Pre-Condition

"This method may only be called before the hwdevice has been initialized using Initialize()."

Description

Sets the number of bit-rate scalability layers to use. Set to 1 to disable layered scalability.

Bit-rate scalability refers to the ability of a coded stream to be decoded at different bit-rates. Scalable video is typically ordered into hierarchical layers of data. A base layer contains an individual representation of a video stream and enhancement layers contain refinement data in addition to the base layer. The quality of the decoded video stream progressively improves as enhancement layers are added to the base layer.

Parameters

TUint aNumLayers

"The number of bit-rate scalability layers to use, set to 1 to disable scalability."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - The scalability layers are not supported or too many layers specified."


SetScalabilityLayerTypeL()

virtual void SetScalabilityLayerTypeL(TUint aLayer, TScalabilityType aScalabilityType)=0;

Pre-Condition

"This method may only be called before the hwdevice has been initialized using Initialize()."

Description

Sets the scalability type for a bit-rate scalability layer.

Parameters

TUint aLayer

"Layer number. Layers are numbered [0...n-1], where n is the number of layers available. The first layer is the base layer, it can be decoded independently from the other layers, and it has the lowest total bitrate."

TScalabilityType aScalabilityType

"Layer scalability type."

Leave codes

"

The method will leave if an error occurs. Typical error codes used: KErrNotSupported - The scalability layers or the specified scalability type are not supported."


SetGlobalReferenceOptions()

virtual void SetGlobalReferenceOptions(TUint aMaxReferencePictures, TUint aMaxPictureOrderDelay)=0;

Pre-Condition

"This method may only be called before the hwdevice has been initialized using Initialize()."

Description

Sets the reference picture options to be used for all scalability layers. The settings can be overridden for an individual scalability layer by using SetLayerReferenceOptions().

Parameters

TUint aMaxReferencePictures

"The maximum number of reference pictures to be used. More than one reference frame can be used in the H.264 | MPEG-4 AVC and in some advanced profiles of MPEG-4 Part 2 and H.263. The minimum value is one."

TUint aMaxPictureOrderDelay

"The maximum picture order delay, in number of pictures. This specifies the maximum amount of pictures that precede any picture in the sequence in decoding order and follow the picture in presentation order. Pictures may be coded/decoded in different order from their capture/display order. Thus, decoded pictures have to be buffered to order them in correct display order. For example, if one conventional B picture is coded between P pictures, a one-picture display ordering delay has to be applied in the decoder. The minimum value is zero, which indicates that pictures must be coded in capture/display order."


SetLayerReferenceOptions()

virtual void SetLayerReferenceOptions(TUint aLayer, TUint aMaxReferencePictures, TUint aMaxPictureOrderDelay)=0;

Pre-Condition

"This method may only be called before the hwdevice has been initialized using Initialize()."

Description

Sets the reference picture options to be used for a single scalability layer. These settings override those set with SetGlobalReferenceOptions().

Parameters

TUint aLayer

"Layer number."

TUint aMaxReferencePictures

"The maximum number of reference pictures to be used."

TUint aMaxPictureOrderDelay

"The maximum picture order delay, in number of pictures."


SetBufferOptionsL()

virtual void SetBufferOptionsL(const TEncoderBufferOptions &aOptions)=0;

Pre-Condition

"This method may only be called before the hwdevice has been initialized using Initialize()."

Description

Sets encoder buffering options.

Parameters

const TEncoderBufferOptions &aOptions

"The buffering options."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - The specified settings are not supported."


SetOutputRectL()

virtual void SetOutputRectL(const TRect &aRect)=0;

Pre-Condition

"This method can be called either before or after the hwdevice has been initialized with Initialize(). If called after initialization, the change must only be committed when CommitL() is called."

Description

Sets the encoder output rectangle. This rectangle specifies the part of the input and output pictures which is displayed after encoding. Many video codecs process data in 16x16 pixel units but enable specifying and coding the encoder output rectangle for image sizes that are not multiple of 16 pixels (e.g 160x120).

Parameters

const TRect &aRect

"The encoder output rectangle."

Leave codes

"The

method will leave if an error occurs."


SetErrorsExpected()

virtual void SetErrorsExpected(TBool aBitErrors, TBool aPacketLosses)=0;

Pre-Condition

"This method can be called either before or after the hwdevice has been initialized with Initialize(). If called after initialization, the change must only be committed when CommitL() is called."

Description

Sets whether bit errors or packets losses can be expected in the video transmission. The video encoder can use this information to optimize the bitstream.

Parameters

TBool aBitErrors

"True if bit errors can be expected."

TBool aPacketLosses

"True if packet losses can be expected."


SetMinRandomAccessRate()

virtual void SetMinRandomAccessRate(TReal aRate)=0;

Pre-Condition

"This method can be called either before or after the hwdevice has been initialized with Initialize(). If called after initialization, the change must only be committed when CommitL() is called."

Description

Sets the minimum frequency (in time) for instantaneous random access points in the bitstream. An instantaneous random access point is such where the decoder can achieve a full output picture immediately by decoding data starting from the random access point. The random access point frequency may be higher than signalled, if the sequence contains scene cuts which typically cause a coding of a random access point.

Parameters

TReal aRate

"Random access point rate, in pictures per second. For example, to request a random access point every ten seconds, set the value to 0.1."


SetCodingStandardSpecificOptionsL()

virtual void SetCodingStandardSpecificOptionsL(const TDesC8 &aOptions)=0;

Pre-Condition

"This method can be called either before or after the hwdevice has been initialized with Initialize(). If called after initialization, the change must only be committed when CommitL() is called."

Description

Sets coding-standard specific encoder options.

Parameters

const TDesC8 &aOptions

"The options to use. The data format for the options is coding-standard specific, and defined separately."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - The specified settings are not supported."


SetImplementationSpecificEncoderOptionsL()

virtual void SetImplementationSpecificEncoderOptionsL(const TDesC8 &aOptions)=0;

Pre-Condition

"This method can be called either before or after the hwdevice has been initialized with Initialize(). If called after initialization, the change must only be committed when CommitL() is called."

Description

Sets implementation-specific encoder options.

Parameters

const TDesC8 &aOptions

"The options to use. The data format for the options is specific to the encoder implementation, and defined separately by the encoder implementer."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - The specified settings are not supported."


CodingStandardSpecificInitOutputLC()

virtual HBufC8 *CodingStandardSpecificInitOutputLC()=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Returns coding-standard specific initialization output from the encoder. The information can contain, for example, the MPEG-4 VOL header. This method can be called after Initialize() has been called.

Return value

HBufC8 *

"Coding-standard specific initialization output. The data format is coding-standard specific and defined separately. The buffer is pushed to the cleanup stack, and the caller is responsible for deallocating it."

Leave codes

"The

method will leave if an error occurs."


ImplementationSpecificInitOutputLC()

virtual HBufC8 *ImplementationSpecificInitOutputLC()=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Returns implementation-specific initialization output from the encoder. This method can be called after Initialize() has been called.

Return value

HBufC8 *

"Implementation-specific initialization output. The data format is specific to the encoder implementation, and defined by the encoder supplier. The buffer is pushed to the cleanup stack, and the caller is responsible for deallocating it."

Leave codes

"The

method will leave if an error occurs."


SetErrorProtectionLevelsL()

virtual void SetErrorProtectionLevelsL(TUint aNumLevels, TBool aSeparateBuffers)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets the number of unequal error protection levels. By default unequal error protection is not used.

Parameters

TUint aNumLevels

"The number of unequal error protection levels. To disable unequal error protection, set this value to one"

TBool aSeparateBuffers

"True if each unequal error protection level of a coded data unit shall be encapsulated in its own output buffer. Ignored if unequal error protection is not used."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - Unequal error protection is not supported."


SetErrorProtectionLevelL()

virtual void SetErrorProtectionLevelL(TUint aLevel, TUint aBitrate, TUint aStrength)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets up an unequal error protection level. If unequal error protection is not used, this method can be used to control settings for the whole encoded bitstream.

Parameters

TUint aLevel

"Error protection level number. This argument is ignored if unequal error protection is not in use."

TUint aBitrate

"Target bit-rate for this error protection level."

TUint aStrength

"Forward error control strength for this error protection level. The strength can be specified using values from TErrorControlStrength (EFecStrengthNone, EFecStrengthLow, EFecStrengthNormal, EFecStrengthHigh), or with intermediate values between those constants."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - The specified bit-rate cannot be supported. "


SetChannelPacketLossRate()

virtual void SetChannelPacketLossRate(TUint aLevel, TReal aLossRate, TTimeIntervalMicroSeconds32 aLossBurstLength)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets the expected or prevailing channel conditions for an unequal error protection level, in terms of expected packet loss rate. The video encoder can use this information to optimize the generated bitstream.

Parameters

TUint aLevel

"Error protection level number. This argument is ignored if unequal error protection is not in use."

TReal aLossRate

"Packet loss rate, in number of packets lost per second. Set to 0.0 if packet losses are not expected."

TTimeIntervalMicroSeconds32 aLossBurstLength

"Expected average packet loss burst length. Set to zero if the information is not available."


SetChannelBitErrorRate()

virtual void SetChannelBitErrorRate(TUint aLevel, TReal aErrorRate, TReal aStdDeviation)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets the expected or prevailing channel conditions for an unequal error protection level, in terms of expected bit error rate. The video encoder can use this information to optimize the generated bitstream.

Parameters

TUint aLevel

"Error protection level number. This argument is ignored if unequal error protection is not in use."

TReal aErrorRate

"Expected bit error rate, as a fraction of the total bits transmitted. Set to 0.0 if bit errors are not expected."

TReal aStdDeviation

"Expected bit error rate standard deviation."


SetSegmentTargetSize()

virtual void SetSegmentTargetSize(TUint aLayer, TUint aSizeBytes, TUint aSizeMacroblocks)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets the target size of each coded video segment. The segment target size can be specified in terms of number of bytes per segment, number of macroblocks per segment, or both.

Parameters

TUint aLayer

"Layer number. Layers are numbered [0...n-1], where n is the number of layers available. Use zero if layered bit-rate scalability is not used."

TUint aSizeBytes

"Segment target size in bytes. Set to zero to use unlimited segment size. The segment size in bytes should include all data that is typically stored or transmitted for each segment in the format currently in use. This includes all related headers."

TUint aSizeMacroblocks

"Segment target size in number of macroblocks per segment. Set to zero to use unlimited segment size."


SetRateControlOptions()

virtual void SetRateControlOptions(TUint aLayer, const TRateControlOptions &aOptions)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets the bit-rate control options for a layer. If layered bit-rate scalability is not used, the options are set for the whole bitstream.

Parameters

TUint aLayer

"Layer number. Layers are numbered [0...n-1], where n is the number of layers available. Use zero if layered bit-rate scalability is not used."

const TRateControlOptions &aOptions

"Bit-rate control options."


SetInLayerScalabilityL()

virtual void SetInLayerScalabilityL(TUint aLayer, TUint aNumSteps, TInLayerScalabilityType aScalabilityType, const TArray< TUint > &aBitrateShare, const TArray< TUint > &aPictureShare)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets in-layer scalability options for a layer. In-layer bit-rate scalability refers to techniques where a specific part of a single-layer coded stream can be decoded correctly without decoding the leftover part. For example, B-pictures can be used for this. By default in-layer scalability is not used.

Parameters

TUint aLayer

"Layer number. Layers are numbered [0…n-1], where n is the number of layers available. Use zero if layered bit-rate scalability is not used."

TUint aNumSteps

"The number of in-layer scalability steps to use. Set to one to disable in-layer scalability."

TInLayerScalabilityType aScalabilityType

"The scalability type to use."

const TArray< TUint > &aBitrateShare

"Bit-rate share for each scalability step. The bit-rate shares are defined as fractions of total layer bit-rate, with the share for one layer being aBitrateShare[i]/sum(aBitrateShare). For example, to use 2/3 of the total bitrate for the first layer and the remaining 1/3 for the second, the array contents would be {2,1}."

const TArray< TUint > &aPictureShare

"Picture rate share for each scalability step. The picture rate shares are defined similarly to the bit-rate shares. For example, a client wishing to use two B-pictures between each pair of reference pictures should set the array contents to {1,2}."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - In-layer scalability is not supported.KErrArgument - Some of the arguments are out of range. For example, it is not possible to use the specified in-layer scalability setup due to other constraints (such as the maximum picture order delay)."


SetLayerPromotionPointPeriod()

virtual void SetLayerPromotionPointPeriod(TUint aLayer, TUint aPeriod)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sets the period for layer promotions points for a scalability layer. A layer promotion point is a picture where it is possible to start decoding this enhancement layer if only the lower layers were decoded earlier.

Parameters

TUint aLayer

"Layer number."

TUint aPeriod

"Layer promotion point period. A value of one signals that each picture should be a layer promotion point, value two that there is one picture between each promotion point etc."


CodingStandardSpecificSettingsOutputLC()

virtual HBufC8 *CodingStandardSpecificSettingsOutputLC()=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Returns coding-standard specific settings output from the encoder. The information can contain, for example, some bitstream headers that can change based on settings modified while encoding is in progress.

Return value

HBufC8 *

"Coding-standard specific initialization output. The data format is coding-standard specific and defined separately. The buffer is pushed to the cleanup stack, and the caller is responsible for deallocating it."

Leave codes

"The

method will leave if an error occurs."


ImplementationSpecificSettingsOutputLC()

virtual HBufC8 *ImplementationSpecificSettingsOutputLC()=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Returns implementation-specific settings output from the encoder. The information can contain, for example, some bitstream headers that can change based on settings modified while encoding is in progress.

Return value

HBufC8 *

"Implementation-specific initialization output. The data format is implementation-specific and defined separately by the encoder supplier. The buffer is pushed to the cleanup stack, and the caller is responsible for deallocating it."

Leave codes

"The

method will leave if an error occurs."


SendSupplementalInfoL()

virtual void SendSupplementalInfoL(const TDesC8 &aData)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Requests the encoder to sends supplemental information in the bitstream. The information data format is coding-standard dependent. Only one supplemental information send request can be active at a time. This variant encodes the information to the next possible picture.

The client must be notified after then information has been sent by calling MMMFDevVideoRecordProxy::MdvrpSupplementalInfoSent().

Parameters

const TDesC8 &aData

"Supplemental information data to send."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - Supplemental information is not supported"


SendSupplementalInfoL()

virtual void SendSupplementalInfoL(const TDesC8 &aData, const TTimeIntervalMicroSeconds &aTimestamp)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Requests the encoder to sends supplemental information in the bitstream. The information data format is coding-standard dependent. Only one supplemental information send request can be active at a time. This variant encodes the information to the picture specified.

Parameters

const TDesC8 &aData

"Supplemental information data to send."

const TTimeIntervalMicroSeconds &aTimestamp

"Timestamp for the picture in which the supplemental information should be included. If a picture with the matching timestamp is never encoded, or the timestamp is in the past, the supplemental information will not be sent."

Leave codes

"The

method will leave if an error occurs. Typical error codes used: KErrNotSupported - Supplemental information is not supported"


CancelSupplementalInfo()

virtual void CancelSupplementalInfo()=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Cancels the current supplemental information send request. The memory buffer reserved for supplemental information data can be reused or deallocated after the method returns.


GetOutputBufferStatus()

virtual void GetOutputBufferStatus(TUint &aNumFreeBuffers, TUint &aTotalFreeBytes)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Gets the current output buffer status. The information includes the number of free output buffers and the total size of free buffers in bytes.

Parameters

TUint &aNumFreeBuffers

"Target for the number of free output buffers."

TUint &aTotalFreeBytes

"Target for the total free buffer size in bytes."


ReturnBuffer()

virtual void ReturnBuffer(TVideoOutputBuffer *aBuffer)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Returns a used output buffer back to the encoder. The buffer can be reused or deallocated.

Parameters

TVideoOutputBuffer *aBuffer

"The buffer to return."


PictureLoss()

virtual void PictureLoss()=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Indicates a picture loss to the encoder, without specifying the lost picture. The encoder can react to this by transmitting an intra-picture.


PictureLoss()

virtual void PictureLoss(const TArray< TPictureId > &aPictures)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Indicates to the encoder the pictures that have been lost. The encoder can react to this by transmitting an intra-picture.

Parameters

const TArray< TPictureId > &aPictures

"Picture identifiers for the lost pictures."


SliceLoss()

virtual void SliceLoss(TUint aFirstMacroblock, TUint aNumMacroblocks, const TPictureId &aPicture)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Indicates a slice loss to the encoder.

Parameters

TUint 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."

TUint aNumMacroblocks

"The number of macroblocks in the lost slice."

const TPictureId &aPicture

"The picture identified for the picture where the slice was lost. If the picture is not known, aPicture.iIdType is set to ENone."


ReferencePictureSelection()

virtual void ReferencePictureSelection(const TDesC8 &aSelectionData)=0;

Pre-Condition

"This method can only be called after the hwdevice has been initialized with Initialize()."

Description

Sends a reference picture selection request to the encoder. The request is delivered as a coding-standard specific binary message. Reference picture selection can be used to select a previous correctly transmitted picture to use as a reference in case later pictures have been lost.

Parameters

const TDesC8 &aSelectionData

"The reference picture selection request message. The message format is coding-standard specific, and defined separately."


SetProxy()

protected: virtual void SetProxy(MMMFDevVideoRecordProxy &aProxy)=0;

Description

Set the proxy implementation to be used. Called just after the object is constructed.

Parameters

MMMFDevVideoRecordProxy &aProxy

"The proxy to use."