CMMFVideoEncodeHwDevice Class Reference
#include
"videorecordhwdevice.h"
Link against: devvideo.lib
class CMMFVideoEncodeHwDevice : public CMMFVideoRecordHwDevice |
Public Member Functions |
---|
virtual | ~CMMFVideoEncodeHwDevice() |
pure virtual void | CancelSupplementalInfo() |
pure virtual
HBufC8 * | CodingStandardSpecificInitOutputLC() |
pure virtual
HBufC8 * | CodingStandardSpecificSettingsOutputLC() |
pure virtual void | GetOutputBufferStatus(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 void | PictureLoss() |
pure virtual void | PictureLoss(const TArray< TPictureId > &) |
pure virtual void | ReferencePictureSelection(const TDesC8 &) |
pure virtual void | ReturnBuffer(TVideoOutputBuffer *) |
pure virtual void | SendSupplementalInfoL(const TDesC8 &) |
pure virtual void | SendSupplementalInfoL(const TDesC8 &, const TTimeIntervalMicroSeconds &) |
pure virtual void | SetBufferOptionsL(const TEncoderBufferOptions &) |
pure virtual void | SetChannelBitErrorRate(TUint, TReal, TReal) |
pure virtual void | SetChannelPacketLossRate(TUint, TReal, TTimeIntervalMicroSeconds32) |
pure virtual void | SetCodingStandardSpecificOptionsL(const TDesC8 &) |
pure virtual void | SetErrorProtectionLevelL(TUint, TUint, TUint) |
pure virtual void | SetErrorProtectionLevelsL(TUint, TBool) |
pure virtual void | SetErrorsExpected(TBool, TBool) |
pure virtual void | SetGlobalReferenceOptions(TUint, TUint) |
pure virtual void | SetImplementationSpecificEncoderOptionsL(const TDesC8 &) |
pure virtual void | SetInLayerScalabilityL(TUint, TUint, TInLayerScalabilityType, const TArray< TUint > &, const TArray< TUint > &) |
pure virtual void | SetInputDevice(CMMFVideoPreProcHwDevice *) |
pure virtual void | SetLayerPromotionPointPeriod(TUint, TUint) |
pure virtual void | SetLayerReferenceOptions(TUint, TUint, TUint) |
pure virtual void | SetMinRandomAccessRate(TReal) |
pure virtual void | SetNumBitrateLayersL(TUint) |
pure virtual void | SetOutputFormatL(const CCompressedVideoFormat &, TVideoDataUnitType, TVideoDataUnitEncapsulation, TBool) |
pure virtual void | SetOutputRectL(const TRect &) |
pure virtual void | SetRateControlOptions(TUint, const TRateControlOptions &) |
pure virtual void | SetScalabilityLayerTypeL(TUint, TScalabilityType) |
pure virtual void | SetSegmentTargetSize(TUint, TUint, TUint) |
pure virtual void | SliceLoss(TUint, TUint, const TPictureId &) |
pure virtual
CVideoEncoderInfo * | VideoEncoderInfoLC() |
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_C | CMMFVideoEncodeHwDevice | ( | ) | [protected] |
~CMMFVideoEncodeHwDevice ( )
IMPORT_C | ~CMMFVideoEncodeHwDevice | ( | ) | [virtual] |
Member Function Documentation
CancelSupplementalInfo ( )
void | CancelSupplementalInfo | ( | ) | [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 & )
void | GetOutputBufferStatus | ( | 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()."
Parameter | Description | 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 & )
Creates a new video encoder hardware device object, based on the implementation UID.
-
leave
- "This method will leave if an error occurs."
Parameter | Description | aUid | "Encoder implementation UID." |
aProxy | "The proxy implementation to use." |
Returns: "A new CMMFVideoEncodeHwDevice object."
NewPuAdapterL ( const CImplementationInformation &, MMMFDevVideoRecordProxy & )
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."
Parameter | Description | 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 ( )
void | PictureLoss | ( | ) | [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 > & )
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()."
Parameter | Description | aPictures | "Picture identifiers for the lost pictures." |
ReferencePictureSelection ( const TDesC8 & )
void | ReferencePictureSelection | ( | 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()."
Parameter | Description | aSelectionData | "The reference picture selection request message. The message format is
coding-standard specific, and defined separately." |
ReturnBuffer ( TVideoOutputBuffer * )
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()."
Parameter | Description | aBuffer | "The buffer to return." |
SendSupplementalInfoL ( const TDesC8 & )
void | SendSupplementalInfoL | ( | 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()."
Parameter | Description | aData | "Supplemental information data to send." |
SendSupplementalInfoL ( const TDesC8 &, const TTimeIntervalMicroSeconds & )
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()."
Parameter | Description | 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 & )
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()."
Parameter | Description | aOptions | "The buffering options." |
SetChannelBitErrorRate ( TUint, TReal, TReal )
void | SetChannelBitErrorRate | ( | TUint | aLevel, |
| TReal | aErrorRate, |
| TReal | aStdDeviation |
| ) | [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()."
Parameter | Description | 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 )
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()."
Parameter | Description | 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 & )
void | SetCodingStandardSpecificOptionsL | ( | 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."
Parameter | Description | aOptions | "The options to use. The data format for the options is coding-standard specific,
and defined separately." |
SetErrorProtectionLevelL ( TUint, TUint, TUint )
void | SetErrorProtectionLevelL | ( | TUint | aLevel, |
| TUint | aBitrate, |
| TUint | aStrength |
| ) | [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()."
Parameter | Description | 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 )
void | SetErrorProtectionLevelsL | ( | TUint | aNumLevels, |
| TBool | aSeparateBuffers |
| ) | [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()."
Parameter | Description | 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 )
void | SetErrorsExpected | ( | TBool | aBitErrors, |
| TBool | aPacketLosses |
| ) | [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."
Parameter | Description | aBitErrors | "True if bit errors can be expected." |
aPacketLosses | "True if packet losses can be expected." |
SetGlobalReferenceOptions ( TUint, TUint )
void | SetGlobalReferenceOptions | ( | TUint | aMaxReferencePictures, |
| TUint | aMaxPictureOrderDelay |
| ) | [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().
Parameter | Description | 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 & )
void | SetImplementationSpecificEncoderOptionsL | ( | 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."
Parameter | Description | 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 > & )
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()."
Parameter | Description | 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 * )
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()."
Parameter | Description | aDevice | "The input pre-processor device to use." |
SetLayerPromotionPointPeriod ( TUint, TUint )
void | SetLayerPromotionPointPeriod | ( | TUint | aLayer, |
| TUint | aPeriod |
| ) | [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.
Parameter | Description | 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 )
void | SetLayerReferenceOptions | ( | TUint | aLayer, |
| TUint | aMaxReferencePictures, |
| TUint | aMaxPictureOrderDelay |
| ) | [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()."
Parameter | Description | 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 )
void | SetMinRandomAccessRate | ( | TReal | aRate | ) | [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."
Parameter | Description | 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 )
void | SetNumBitrateLayersL | ( | TUint | aNumLayers | ) | [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()."
Parameter | Description | aNumLayers | "The number of bit-rate scalability layers to use, set to 1 to disable
scalability." |
SetOutputFormatL ( const CCompressedVideoFormat &, TVideoDataUnitType, TVideoDataUnitEncapsulation, TBool )
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()."
Parameter | Description | 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 & )
void | SetOutputRectL | ( | 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."
Parameter | Description | aRect | "The encoder output rectangle." |
SetProxy ( MMMFDevVideoRecordProxy & )
Set the proxy implementation to be used. Called just after the object is constructed.
Parameter | Description | aProxy | "The proxy to use." |
SetRateControlOptions ( TUint, const TRateControlOptions & )
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()."
Parameter | Description | 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 )
Sets the scalability type for a bit-rate scalability layer.
-
leave
- " The method will leave if an error occurs. Typical error codes used:
Parameter | Description | 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 )
void | SetSegmentTargetSize | ( | TUint | aLayer, |
| TUint | aSizeBytes, |
| TUint | aSizeMacroblocks |
| ) | [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.
Parameter | Description | 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 & )
void | SliceLoss | ( | TUint | aFirstMacroblock, |
| TUint | aNumMacroblocks, |
| const TPictureId & | aPicture |
| ) | [pure virtual] |
Indicates a slice loss to the encoder.
Parameter | Description | 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 ( )
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."