CMMFVideoEncodeHwDevice Class Reference

#include "videorecordhwdevice.h"

Link against: devvideo.lib

class CMMFVideoEncodeHwDevice : public CMMFVideoRecordHwDevice

Inherits from

Public Member Functions
virtual ~CMMFVideoEncodeHwDevice()
pure virtual voidCancelSupplementalInfo()
pure virtual HBufC8 *CodingStandardSpecificInitOutputLC()
pure virtual HBufC8 *CodingStandardSpecificSettingsOutputLC()
pure virtual voidGetOutputBufferStatus(TUint &, TUint &)
pure virtual HBufC8 *ImplementationSpecificInitOutputLC()
pure virtual HBufC8 *ImplementationSpecificSettingsOutputLC()
IMPORT_C CMMFVideoEncodeHwDevice *NewL(TUid, MMMFDevVideoRecordProxy &)
IMPORT_C CMMFVideoEncodeHwDevice *NewPuAdapterL(const CImplementationInformation &, MMMFDevVideoRecordProxy &)
pure virtual voidPictureLoss()
pure virtual voidPictureLoss(const TArray< TPictureId > &)
pure virtual voidReferencePictureSelection(const TDesC8 &)
pure virtual voidReturnBuffer(TVideoOutputBuffer *)
pure virtual voidSendSupplementalInfoL(const TDesC8 &)
pure virtual voidSendSupplementalInfoL(const TDesC8 &, const TTimeIntervalMicroSeconds &)
pure virtual voidSetBufferOptionsL(const TEncoderBufferOptions &)
pure virtual voidSetChannelBitErrorRate(TUint, TReal, TReal)
pure virtual voidSetChannelPacketLossRate(TUint, TReal, TTimeIntervalMicroSeconds32)
pure virtual voidSetCodingStandardSpecificOptionsL(const TDesC8 &)
pure virtual voidSetErrorProtectionLevelL(TUint, TUint, TUint)
pure virtual voidSetErrorProtectionLevelsL(TUint, TBool)
pure virtual voidSetErrorsExpected(TBool, TBool)
pure virtual voidSetGlobalReferenceOptions(TUint, TUint)
pure virtual voidSetImplementationSpecificEncoderOptionsL(const TDesC8 &)
pure virtual voidSetInLayerScalabilityL(TUint, TUint, TInLayerScalabilityType, const TArray< TUint > &, const TArray< TUint > &)
pure virtual voidSetInputDevice(CMMFVideoPreProcHwDevice *)
pure virtual voidSetLayerPromotionPointPeriod(TUint, TUint)
pure virtual voidSetLayerReferenceOptions(TUint, TUint, TUint)
pure virtual voidSetMinRandomAccessRate(TReal)
pure virtual voidSetNumBitrateLayersL(TUint)
pure virtual voidSetOutputFormatL(const CCompressedVideoFormat &, TVideoDataUnitType, TVideoDataUnitEncapsulation, TBool)
pure virtual voidSetOutputRectL(const TRect &)
pure virtual voidSetRateControlOptions(TUint, const TRateControlOptions &)
pure virtual voidSetScalabilityLayerTypeL(TUint, TScalabilityType)
pure virtual voidSetSegmentTargetSize(TUint, TUint, TUint)
pure virtual voidSliceLoss(TUint, TUint, const TPictureId &)
pure virtual CVideoEncoderInfo *VideoEncoderInfoLC()
Protected Member Functions
CMMFVideoEncodeHwDevice()
pure virtual voidSetProxy(MMMFDevVideoRecordProxy &)
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()
CMMFVideoHwDevice::CustomInterface(TUid)
CMMFVideoRecordHwDevice::CommitL()
CMMFVideoRecordHwDevice::Freeze()
CMMFVideoRecordHwDevice::GetFrameStabilisationOutput(TRect &)
CMMFVideoRecordHwDevice::GetPictureCounters(CMMFDevVideoRecord::TPictureCounters &)
CMMFVideoRecordHwDevice::Initialize()
CMMFVideoRecordHwDevice::InputEnd()
CMMFVideoRecordHwDevice::NumComplexityLevels()
CMMFVideoRecordHwDevice::Pause()
CMMFVideoRecordHwDevice::PreProcessorInfoLC()
CMMFVideoRecordHwDevice::RecordingPosition()
CMMFVideoRecordHwDevice::ReleaseFreeze()
CMMFVideoRecordHwDevice::Resume()
CMMFVideoRecordHwDevice::Revert()
CMMFVideoRecordHwDevice::SetClockSource(MMMFClockSource *)
CMMFVideoRecordHwDevice::SetColorEnhancementOptionsL(const TColorEnhancementOptions &)
CMMFVideoRecordHwDevice::SetComplexityLevel(TUint)
CMMFVideoRecordHwDevice::SetCustomPreProcessOptionsL(const TDesC8 &)
CMMFVideoRecordHwDevice::SetFrameStabilisationOptionsL(const TSize &,TBool)
CMMFVideoRecordHwDevice::SetInputCropOptionsL(const TRect &)
CMMFVideoRecordHwDevice::SetInputFormatL(const TUncompressedVideoFormat &,const TSize &)
CMMFVideoRecordHwDevice::SetOutputCropOptionsL(const TRect &)
CMMFVideoRecordHwDevice::SetOutputPadOptionsL(const TSize &,const TPoint &)
CMMFVideoRecordHwDevice::SetPreProcessTypesL(TUint32)
CMMFVideoRecordHwDevice::SetRgbToYuvOptionsL(TRgbRange,const TYuvFormat &)
CMMFVideoRecordHwDevice::SetRotateOptionsL(TRotationType)
CMMFVideoRecordHwDevice::SetScaleOptionsL(const TSize &,TBool)
CMMFVideoRecordHwDevice::SetSourceCameraL(TInt,TReal)
CMMFVideoRecordHwDevice::SetSourceMemoryL(TReal,TBool,TBool)
CMMFVideoRecordHwDevice::SetYuvToYuvOptionsL(const TYuvFormat &,const TYuvFormat &)
CMMFVideoRecordHwDevice::Start()
CMMFVideoRecordHwDevice::Stop()
CMMFVideoRecordHwDevice::WritePictureL(TVideoPicture *)

Detailed Description

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

Constructor & Destructor Documentation

CMMFVideoEncodeHwDevice ( )

IMPORT_CCMMFVideoEncodeHwDevice()[protected]

Constructor.

~CMMFVideoEncodeHwDevice ( )

IMPORT_C~CMMFVideoEncodeHwDevice()[virtual]

Destructor.

Member Function Documentation

CancelSupplementalInfo ( )

voidCancelSupplementalInfo()[pure virtual]
Cancels the current supplemental information send request. The memory buffer reserved for supplemental information data can be reused or deallocated after the method returns.
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."

CodingStandardSpecificInitOutputLC ( )

HBufC8 *CodingStandardSpecificInitOutputLC()[pure virtual]

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.

leave
"The method will leave if an error occurs."
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."

Returns: "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."

CodingStandardSpecificSettingsOutputLC ( )

HBufC8 *CodingStandardSpecificSettingsOutputLC()[pure virtual]

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.

leave
"The method will leave if an error occurs."
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."

Returns: "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."

GetOutputBufferStatus ( TUint &, TUint & )

voidGetOutputBufferStatus(TUint &aNumFreeBuffers,
TUint &aTotalFreeBytes
)[pure virtual]

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

Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aNumFreeBuffers"Target for the number of free output buffers."
aTotalFreeBytes"Target for the total free buffer size in bytes."

ImplementationSpecificInitOutputLC ( )

HBufC8 *ImplementationSpecificInitOutputLC()[pure virtual]

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

leave
"The method will leave if an error occurs."
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."

Returns: "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."

ImplementationSpecificSettingsOutputLC ( )

HBufC8 *ImplementationSpecificSettingsOutputLC()[pure virtual]

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.

leave
"The method will leave if an error occurs."
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."

Returns: "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."

NewL ( TUid, MMMFDevVideoRecordProxy & )

IMPORT_C CMMFVideoEncodeHwDevice *NewL(TUidaUid,
MMMFDevVideoRecordProxy &aProxy
)[static]

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

leave
"This method will leave if an error occurs."
ParameterDescription
aUid"Encoder implementation UID."
aProxy"The proxy implementation to use."

Returns: "A new CMMFVideoEncodeHwDevice object."

NewPuAdapterL ( const CImplementationInformation &, MMMFDevVideoRecordProxy & )

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

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

leave
"This method will leave if an error occurs."
ParameterDescription
aImplInfo"The registration data relating to the Interface Implementation of the Processing Unit."
aProxy"The proxy implementation to use."

Returns: "A new CMMFVideoEncodeHwDevice object."

PictureLoss ( )

voidPictureLoss()[pure virtual]
Indicates a picture loss to the encoder, without specifying the lost picture. The encoder can react to this by transmitting an intra-picture.
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."

PictureLoss ( const TArray< TPictureId > & )

voidPictureLoss(const TArray< TPictureId > &aPictures)[pure virtual]
Indicates to the encoder the pictures that have been lost. The encoder can react to this by transmitting an intra-picture.
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aPictures"Picture identifiers for the lost pictures."

ReferencePictureSelection ( const TDesC8 & )

voidReferencePictureSelection(const TDesC8 &aSelectionData)[pure virtual]

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.

Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aSelectionData"The reference picture selection request message. The message format is coding-standard specific, and defined separately."

ReturnBuffer ( TVideoOutputBuffer * )

voidReturnBuffer(TVideoOutputBuffer *aBuffer)[pure virtual]

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

Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aBuffer"The buffer to return."

SendSupplementalInfoL ( const TDesC8 & )

voidSendSupplementalInfoL(const TDesC8 &aData)[pure virtual]

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().

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - Supplemental information is not supported"
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aData"Supplemental information data to send."

SendSupplementalInfoL ( const TDesC8 &, const TTimeIntervalMicroSeconds & )

voidSendSupplementalInfoL(const TDesC8 &aData,
const TTimeIntervalMicroSeconds &aTimestamp
)[pure virtual]

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.

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - Supplemental information is not supported"
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aData"Supplemental information data to send."
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."

SetBufferOptionsL ( const TEncoderBufferOptions & )

voidSetBufferOptionsL(const TEncoderBufferOptions &aOptions)[pure virtual]

Sets encoder buffering options.

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - The specified settings are not supported."
Pre-condition
"This method may only be called before the hwdevice has been initialized using Initialize()."
ParameterDescription
aOptions"The buffering options."

SetChannelBitErrorRate ( TUint, TReal, TReal )

voidSetChannelBitErrorRate(TUintaLevel,
TRealaErrorRate,
TRealaStdDeviation
)[pure virtual]

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.

Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aLevel"Error protection level number. This argument is ignored if unequal error protection is not in use."
aErrorRate"Expected bit error rate, as a fraction of the total bits transmitted. Set to 0.0 if bit errors are not expected."
aStdDeviation"Expected bit error rate standard deviation."

SetChannelPacketLossRate ( TUint, TReal, TTimeIntervalMicroSeconds32 )

voidSetChannelPacketLossRate(TUintaLevel,
TRealaLossRate,
TTimeIntervalMicroSeconds32aLossBurstLength
)[pure virtual]

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.

Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aLevel"Error protection level number. This argument is ignored if unequal error protection is not in use."
aLossRate"Packet loss rate, in number of packets lost per second. Set to 0.0 if packet losses are not expected."
aLossBurstLength"Expected average packet loss burst length. Set to zero if the information is not available."

SetCodingStandardSpecificOptionsL ( const TDesC8 & )

voidSetCodingStandardSpecificOptionsL(const TDesC8 &aOptions)[pure virtual]

Sets coding-standard specific encoder options.

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - The specified settings are not supported."
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."
ParameterDescription
aOptions"The options to use. The data format for the options is coding-standard specific, and defined separately."

SetErrorProtectionLevelL ( TUint, TUint, TUint )

voidSetErrorProtectionLevelL(TUintaLevel,
TUintaBitrate,
TUintaStrength
)[pure virtual]

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.

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - The specified bit-rate cannot be supported. "
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aLevel"Error protection level number. This argument is ignored if unequal error protection is not in use."
aBitrate"Target bit-rate for this error protection level."
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."

SetErrorProtectionLevelsL ( TUint, TBool )

voidSetErrorProtectionLevelsL(TUintaNumLevels,
TBoolaSeparateBuffers
)[pure virtual]

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

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - Unequal error protection is not supported."
Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
aNumLevels"The number of unequal error protection levels. To disable unequal error protection, set this value to one"
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."

SetErrorsExpected ( TBool, TBool )

voidSetErrorsExpected(TBoolaBitErrors,
TBoolaPacketLosses
)[pure virtual]

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.

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."
ParameterDescription
aBitErrors"True if bit errors can be expected."
aPacketLosses"True if packet losses can be expected."

SetGlobalReferenceOptions ( TUint, TUint )

voidSetGlobalReferenceOptions(TUintaMaxReferencePictures,
TUintaMaxPictureOrderDelay
)[pure virtual]

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().

ParameterDescription
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." @param "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." @pre "This method may only be called before the hwdevice has been initialized using Initialize()."

SetImplementationSpecificEncoderOptionsL ( const TDesC8 & )

voidSetImplementationSpecificEncoderOptionsL(const TDesC8 &aOptions)[pure virtual]

Sets implementation-specific encoder options.

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - The specified settings are not supported."
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."
ParameterDescription
aOptions"The options to use. The data format for the options is specific to the encoder implementation, and defined separately by the encoder implementer."

SetInLayerScalabilityL ( TUint, TUint, TInLayerScalabilityType, const TArray< TUint > &, const TArray< TUint > & )

voidSetInLayerScalabilityL(TUintaLayer,
TUintaNumSteps,
TInLayerScalabilityTypeaScalabilityType,
const TArray< TUint > &aBitrateShare,
const TArray< TUint > &aPictureShare
)[pure virtual]

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.

leave
"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)." @pre "This method can only be called after the hwdevice has been initialized with Initialize()."

ParameterDescription
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."
aNumSteps"The number of in-layer scalability steps to use. Set to one to disable in-layer scalability."
aScalabilityType"The scalability type to use."
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}." @param "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}."

SetInputDevice ( CMMFVideoPreProcHwDevice * )

voidSetInputDevice(CMMFVideoPreProcHwDevice *aDevice)[pure virtual]

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().

Pre-condition
"This method may only be called before the hwdevice has been initialized using Initialize()."
ParameterDescription
aDevice"The input pre-processor device to use."

SetLayerPromotionPointPeriod ( TUint, TUint )

voidSetLayerPromotionPointPeriod(TUintaLayer,
TUintaPeriod
)[pure virtual]

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.

ParameterDescription
aLayer"Layer number."
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." @pre "This method can only be called after the hwdevice has been initialized with Initialize()."

SetLayerReferenceOptions ( TUint, TUint, TUint )

voidSetLayerReferenceOptions(TUintaLayer,
TUintaMaxReferencePictures,
TUintaMaxPictureOrderDelay
)[pure virtual]

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

Pre-condition
"This method may only be called before the hwdevice has been initialized using Initialize()."
ParameterDescription
aLayer"Layer number."
aMaxReferencePictures"The maximum number of reference pictures to be used."
aMaxPictureOrderDelay"The maximum picture order delay, in number of pictures."

SetMinRandomAccessRate ( TReal )

voidSetMinRandomAccessRate(TRealaRate)[pure virtual]

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.

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

SetNumBitrateLayersL ( TUint )

voidSetNumBitrateLayersL(TUintaNumLayers)[pure virtual]

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.

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - The scalability layers are not supported or too many layers specified."
Pre-condition
"This method may only be called before the hwdevice has been initialized using Initialize()."
ParameterDescription
aNumLayers"The number of bit-rate scalability layers to use, set to 1 to disable scalability."

SetOutputFormatL ( const CCompressedVideoFormat &, TVideoDataUnitType, TVideoDataUnitEncapsulation, TBool )

voidSetOutputFormatL(const CCompressedVideoFormat &aFormat,
TVideoDataUnitTypeaDataUnitType,
TVideoDataUnitEncapsulationaDataEncapsulation,
TBoolaSegmentationAllowed = EFalse
)[pure virtual]

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

leave
"The method will leave if an error occurs. Typical error codes used: - KErrNotSupported - The format specified is not supported."
Pre-condition
"This method may only be called before the hwdevice has been initialized using Initialize()."
ParameterDescription
aFormat"The video format to use."
aDataUnitType"The type of output coded data units."
aDataEncapsulation"Data encapsulation type for output encoded data units."
aSegmentationAllowed"True if a coded data unit can be segmented into multiple output buffers if a single buffer is not large enough."

SetOutputRectL ( const TRect & )

voidSetOutputRectL(const TRect &aRect)[pure virtual]

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).

leave
"The method will leave if an error occurs."
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."
ParameterDescription
aRect"The encoder output rectangle."

SetProxy ( MMMFDevVideoRecordProxy & )

voidSetProxy(MMMFDevVideoRecordProxy &aProxy)[protected, pure virtual]

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

ParameterDescription
aProxy"The proxy to use."

SetRateControlOptions ( TUint, const TRateControlOptions & )

voidSetRateControlOptions(TUintaLayer,
const TRateControlOptions &aOptions
)[pure virtual]

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.

Pre-condition
"This method can only be called after the hwdevice has been initialized with Initialize()."
ParameterDescription
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."
aOptions"Bit-rate control options."

SetScalabilityLayerTypeL ( TUint, TScalabilityType )

voidSetScalabilityLayerTypeL(TUintaLayer,
TScalabilityTypeaScalabilityType
)[pure virtual]

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

leave
" The method will leave if an error occurs. Typical error codes used:
  • KErrNotSupported - The scalability layers or the specified scalability type are not supported." @pre "This method may only be called before the hwdevice has been initialized using Initialize()."

ParameterDescription
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." @param "aScalabilityType" "Layer scalability type."

SetSegmentTargetSize ( TUint, TUint, TUint )

voidSetSegmentTargetSize(TUintaLayer,
TUintaSizeBytes,
TUintaSizeMacroblocks
)[pure virtual]

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.

ParameterDescription
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."
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." @param "aSizeMacroblocks" "Segment target size in number of macroblocks per segment. Set to zero to use unlimited segment size." @pre "This method can only be called after the hwdevice has been initialized with Initialize()."

SliceLoss ( TUint, TUint, const TPictureId & )

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

Indicates a slice loss to the encoder.

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 macroblocks in the lost slice." @param "aPicture" "The picture identified for the picture where the slice was lost. If the picture is not known, aPicture.iIdType is set to ENone." @pre "This method can only be called after the hwdevice has been initialized with Initialize()."

VideoEncoderInfoLC ( )

CVideoEncoderInfo *VideoEncoderInfoLC()[pure virtual]

Retrieves information about the video encoder.

leave
"This method will leave if an error occurs."

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