|
||
class CMMFVideoRecordHwDevice : public CMMFVideoHwDevice;
A base class for all video recording (encoding and pre-processing) hardware devices. Since both encoders and pre-processors can implement pre-processing functionality, this class includes all pre-processing related methods.
CBase
-
Base class for all classes to be instantiated on the heap.
CMMFVideoHwDevice
- CMMFVideoHwDevice is a base class for all video hardware devices.
CMMFVideoRecordHwDevice
- A base class for all video recording (encoding and pre-processing) hardware devi...
Defined in CMMFVideoRecordHwDevice
:
CommitL()
Commit all changes since the last CMMFVideoRecordHwDevice::CommitL(), CMMFVideoR...Freeze()
Freezes the input picture. Normal encoding can be continued using CMMFVideoRecor...GetFrameStabilisationOutput(TRect &)
Reads the frame stabilisation output picture position. This information can be u...Initialize()
Initializes the device, and reserves hardware resources. If direct capture is us...InputEnd()
Notifies the hardware device that the end of input data has been reached and no ...NumComplexityLevels()
Retrieves the number of complexity control levels available for this hardware de...Pause()
Pauses video recording. Recording can be resumed using CMMFVideoRecordHwDevice::...PreProcessorInfoLC()
Retrieves information about the pre-processing capabilities of this hardware dev...RecordingPosition()
Returns the current recording position. The position is the capture timestamp fr...ReleaseFreeze()
Releases a frozen input picture. Video capturing and encoding continues normally...Resume()
Resumes video recording after a pause. Revert()
Revert all changes since the last CMMFVideoRecordHwDevice::CommitL(), CMMFVideoR...SetClockSource(MMMFClockSource *)
Sets the clock source to use for video timing. When video recording is synchroni...SetColorEnhancementOptionsL(const TColorEnhancementOptions &)
Sets color enhancement pre-processing options.SetComplexityLevel(TUint)
Sets the complexity level to use for video processing in a hardware device. The ...SetCustomPreProcessOptionsL(const TDesC8 &)
Sets custom implementation-specific pre-processing options.SetFrameStabilisationOptionsL(const TSize &,TBool)
Sets frame stabilisation options.SetInputCropOptionsL(const TRect &)
Sets pre-processing options for input cropping. Input cropping is typically used...SetInputFormatL(const TUncompressedVideoFormat &,const TSize &)
Sets the hardware device input format. If both a pre-processor and an encoder ar...SetOutputCropOptionsL(const TRect &)
Sets pre-processing options for output cropping. Output cropping is performed af...SetOutputPadOptionsL(const TSize &,const TPoint &)
Sets pre-processing options for output padding. Output padding is performed as t...SetPreProcessTypesL(TUint32)
Sets the pre-processing types to be used.SetRgbToYuvOptionsL(TRgbRange,const TYuvFormat &)
Sets pre-processing options for RGB to YUV color space conversion. By default, i...SetRotateOptionsL(TRotationType)
Sets pre-processing options for rotation.SetScaleOptionsL(const TSize &,TBool)
Sets pre-processing options for scaling.SetSourceCameraL(TInt,TReal)
Sets the data source to be a camera, and sets the device to use direct capture f...SetSourceMemoryL(TReal,TBool,TBool)
Sets the data source to be memory buffers.SetYuvToYuvOptionsL(const TYuvFormat &,const TYuvFormat &)
Sets pre-processing options for YUV to YUV data format conversion. By default, t...Start()
Starts recording video. This includes capturing pictures from the camera (if dir...Stop()
Stops recording video. No new pictures will be captured, pre-processed, or encod...WritePictureL(TVideoPicture *)
Writes an uncompressed input picture. When the picture has been used, it must be...Inherited from CBase
:
Delete(CBase *)
Deletes the specified object.Extension_(TUint,TAny *&,TAny *)
Extension function operator new(TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TAny *)
Initialises the object to binary zeroes.operator new(TUint,TLeave)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TLeave,TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TUint)
Allocates the object from the heap and then initialises its contents to binary z...Inherited from CMMFVideoHwDevice
:
CustomInterface(TUid)
Retrieves a custom interface to the device. virtual CPreProcessorInfo* PreProcessorInfoLC()=0;
Retrieves information about the pre-processing capabilities of this hardware device.
|
|
virtual void SetInputFormatL(const TUncompressedVideoFormat &aFormat, const TSize &aPictureSize)=0;
"This method may only be called before the hwdevice has been initialized using Initialize()."
Sets the hardware device input format. If both a pre-processor and an encoder are used, the pre-processor output format and the encoder input format must be the same. The input format for the first device in the system is the input format for video input data. The method has to be called for both direct capture as well as memory buffer input.
|
|
virtual void SetSourceCameraL(TInt aCameraHandle, TReal aPictureRate)=0;
"This method may only be called before the hwdevice has been initialized using Initialize()."
Sets the data source to be a camera, and sets the device to use direct capture for input.
|
|
virtual void SetSourceMemoryL(TReal aMaxPictureRate, TBool aConstantPictureRate, TBool aProcessRealtime)=0;
"This method may only be called before the hwdevice has been initialized using Initialize()."
Sets the data source to be memory buffers.
|
|
virtual void SetClockSource(MMMFClockSource *aClock)=0;
"This method may only be called before the hwdevice has been initialized using Initialize()."
Sets the clock source to use for video timing. When video recording is synchronized with audio, the clock source is implemented by the audio playback subsystem, otherwise the clock source should get the time from the system clock.
If no clock source is set, video recording will not be synchronized, but will proceed as fast as possible, depending on input data and output buffer availability. If direct capturing is used without a clock source, the timestamps in the output data may not be valid.
|
virtual void SetRgbToYuvOptionsL(TRgbRange aRange, const TYuvFormat &aOutputFormat)=0;
"This method may only be called before the hwdevice has been initialized using Initialize()."
Sets pre-processing options for RGB to YUV color space conversion. By default, input RGB data is assumed to use the full value range ([0…255]), and the output YUV format is the hardware device output format, so typically calling this method is not necessary.
|
|
virtual void SetYuvToYuvOptionsL(const TYuvFormat &aInputFormat, const TYuvFormat &aOutputFormat)=0;
"This method may only be called before the hwdevice has been initialized using Initialize()."
Sets pre-processing options for YUV to YUV data format conversion. By default, the hardware device input and output data formats are used. For encoder devices, the device input format and a the closest matching format supported by the encoding process are used. Typically calling this method is not necessary.
|
|
virtual void SetPreProcessTypesL(TUint32 aPreProcessTypes)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets the pre-processing types to be used.
|
|
virtual void SetRotateOptionsL(TRotationType aRotationType)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets pre-processing options for rotation.
|
|
virtual void SetScaleOptionsL(const TSize &aTargetSize, TBool aAntiAliasFiltering)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets pre-processing options for scaling.
|
|
virtual void SetInputCropOptionsL(const TRect &aRect)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets pre-processing options for input cropping. Input cropping is typically used for digital zooming.
|
|
virtual void SetOutputCropOptionsL(const TRect &aRect)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets pre-processing options for output cropping. Output cropping is performed after other pre-processing operations but before output padding. Output cropping and padding can be used in combination to prepare the picture size to suit the encoder, typically video encoders only support picture sizes that are multiples of 16 pixels.
|
|
virtual void SetOutputPadOptionsL(const TSize &aOutputSize, const TPoint &aPicturePos)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets pre-processing options for output padding. Output padding is performed as the last pre-processing operation, and typically used to prepare the picture size to suit the encoder. The image is padded with black pixels.
|
|
virtual void SetColorEnhancementOptionsL(const TColorEnhancementOptions &aOptions)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets color enhancement pre-processing options.
|
|
virtual void SetFrameStabilisationOptionsL(const TSize &aOutputSize, TBool aFrameStabilisation)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets frame stabilisation options.
|
|
virtual void SetCustomPreProcessOptionsL(const TDesC8 &aOptions)=0;
"This method can be called either before or after the hwdevice has been initialized with CMMFVideoRecordHwDevice::Initialize()
. If called after initialization, the change must only be committed when CMMFVideoRecordHwDevice::CommitL()
is called."
Sets custom implementation-specific pre-processing options.
|
|
virtual void Initialize()=0;
Initializes the device, and reserves hardware resources. If direct capture is used, this method also prepares the camera API
for capture by calling PrepareVideoCaptureL(). This method is asynchronous, the device will call MMMFDevVideoRecordProxy::MdvrpInitializeComplete(CMMFVideoHwDevice *,TInt)
after initialization has completed. Video capturing and encoding can be started with CMMFVideoRecordHwDevice::Start()
with a relatively low delay since the hardware has already been set up.
Error handling: Errors are reported using the MdvrpInitializeComplete() callback method. Typical error codes used:
KErrHardwareNotAvailable - Not enough free video processing hardware resources
KErrNotSupported - The current configuration is not supported.
virtual void CommitL()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Commit all changes since the last CMMFVideoRecordHwDevice::CommitL()
, CMMFVideoRecordHwDevice::Revert()
or CMMFVideoRecordHwDevice::Initialize()
to the hardware device. This only applies to methods which can be called both before AND after DevVideoPlay has been initialized.
|
CMMFVideoEncodeHwDevice::SetOutputRectL(const TRect &)
Sets the encoder output rectangle. This rectangle specifies the part of the inpu...CMMFVideoRecordHwDevice::SetPreProcessTypesL(TUint32)
Sets the pre-processing types to be used.CMMFVideoRecordHwDevice::SetRotateOptionsL(TRotationType)
Sets pre-processing options for rotation.CMMFVideoRecordHwDevice::SetScaleOptionsL(const TSize &,TBool)
Sets pre-processing options for scaling.CMMFVideoRecordHwDevice::SetInputCropOptionsL(const TRect &)
Sets pre-processing options for input cropping. Input cropping is typically used...CMMFVideoRecordHwDevice::SetOutputCropOptionsL(const TRect &)
Sets pre-processing options for output cropping. Output cropping is performed af...CMMFVideoRecordHwDevice::SetOutputPadOptionsL(const TSize &,const TPoint &)
Sets pre-processing options for output padding. Output padding is performed as t...CMMFVideoRecordHwDevice::SetColorEnhancementOptionsL(const TColorEnhancementOptions &)
Sets color enhancement pre-processing options.CMMFVideoRecordHwDevice::SetFrameStabilisationOptionsL(const TSize &,TBool)
Sets frame stabilisation options.CMMFVideoRecordHwDevice::SetCustomPreProcessOptionsL(const TDesC8 &)
Sets custom implementation-specific pre-processing options.CMMFVideoEncodeHwDevice::SetCodingStandardSpecificOptionsL(const TDesC8 &)
Sets coding-standard specific encoder options.CMMFVideoEncodeHwDevice::SetImplementationSpecificEncoderOptionsL(const TDesC8 &)
Sets implementation-specific encoder options.virtual void Revert()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Revert all changes since the last CMMFVideoRecordHwDevice::CommitL()
, CMMFVideoRecordHwDevice::Revert()
or CMMFVideoRecordHwDevice::Initialize()
back to their previous settings. This only applies to methods which can be called both before AND after DevVideoPlay has
been initialized.
CMMFVideoEncodeHwDevice::SetOutputRectL(const TRect &)
Sets the encoder output rectangle. This rectangle specifies the part of the inpu...CMMFVideoRecordHwDevice::SetPreProcessTypesL(TUint32)
Sets the pre-processing types to be used.CMMFVideoRecordHwDevice::SetRotateOptionsL(TRotationType)
Sets pre-processing options for rotation.CMMFVideoRecordHwDevice::SetScaleOptionsL(const TSize &,TBool)
Sets pre-processing options for scaling.CMMFVideoRecordHwDevice::SetInputCropOptionsL(const TRect &)
Sets pre-processing options for input cropping. Input cropping is typically used...CMMFVideoRecordHwDevice::SetOutputCropOptionsL(const TRect &)
Sets pre-processing options for output cropping. Output cropping is performed af...CMMFVideoRecordHwDevice::SetOutputPadOptionsL(const TSize &,const TPoint &)
Sets pre-processing options for output padding. Output padding is performed as t...CMMFVideoRecordHwDevice::SetColorEnhancementOptionsL(const TColorEnhancementOptions &)
Sets color enhancement pre-processing options.CMMFVideoRecordHwDevice::SetFrameStabilisationOptionsL(const TSize &,TBool)
Sets frame stabilisation options.CMMFVideoRecordHwDevice::SetCustomPreProcessOptionsL(const TDesC8 &)
Sets custom implementation-specific pre-processing options.CMMFVideoEncodeHwDevice::SetCodingStandardSpecificOptionsL(const TDesC8 &)
Sets coding-standard specific encoder options.CMMFVideoEncodeHwDevice::SetImplementationSpecificEncoderOptionsL(const TDesC8 &)
Sets implementation-specific encoder options.virtual void WritePictureL(TVideoPicture *aPicture)=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Writes an uncompressed input picture. When the picture has been used, it must be returned to the client with MMMFDevVideoRecordProxy::MdvrpReturnPicture(TVideoPicture *)
. This method must not be called if direct capture is used.
|
|
virtual void InputEnd()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Notifies the hardware device that the end of input data has been reached and no more input pictures will be written. The hardware device can use this signal to ensure that the remaining data gets processed, without waiting for new data. After the remaining data has been processed, the hardware device must call the proxy callback MdvrpStreamEnd().
virtual void Start()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Starts recording video. This includes capturing pictures from the camera (if direct capture is used), pre-processing and encoding. Recording will proceed until it is stopped or paused. Initally recording is stopped.
virtual void Stop()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Stops recording video. No new pictures will be captured, pre-processed, or encoded. If input pictures are written while recording is stopped, they will be returned immediately.
virtual void Pause()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Pauses video recording. Recording can be resumed using CMMFVideoRecordHwDevice::Resume()
.
virtual void Resume()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Resumes video recording after a pause.
virtual void Freeze()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Freezes the input picture. Normal encoding can be continued using CMMFVideoRecordHwDevice::ReleaseFreeze()
.
virtual void ReleaseFreeze()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Releases a frozen input picture. Video capturing and encoding continues normally.
virtual TTimeIntervalMicroSeconds RecordingPosition()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Returns the current recording position. The position is the capture timestamp from the latest input picture, or the capture timestamp for the latest picture captured from the camera when direct capture is used.
|
virtual void GetPictureCounters(CMMFDevVideoRecord::TPictureCounters &aCounters)=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Reads various counters related to processed video pictures. See the definition of TPictureCounters for a description of the
counters. The counters are reset when CMMFVideoRecordHwDevice::Initialize()
or this method is called, and thus they only include pictures processed since the last call.
|
virtual void GetFrameStabilisationOutput(TRect &aRect)=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Reads the frame stabilisation output picture position. This information can be used for positioning the viewfinder. The position returned is the stabilisation result for the most recent input picture.
|
virtual TUint NumComplexityLevels()=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Retrieves the number of complexity control levels available for this hardware device. Devices can support processing the same input data with different computational complexity levels. The complexity level can affect, for example, the motion vector search range used in an encoder.
|
virtual void SetComplexityLevel(TUint aLevel)=0;
"This method can only be called after the hwdevice has been initialized with Initialize()."
Sets the complexity level to use for video processing in a hardware device. The level can be changed at any time.
|