class CCamera::CCameraVideoCaptureControl : public CBase |
CCamera Video Capture Control class exposes an API for controlling operations related to video capture. This gives priority to the low latency aspect by postponing the post processing activity involved with current video captured data(while stopping the video capture) in order to capture/prepare for next still image.
This class is not intended for sub-classing and used to standardise existing varieties of implementations.
If the class methods leave, any reference argument is not guaranteed to be valid.
Clients must implement an MCaptureVideoObserver in order to use this CCameraVideoCaptureControl API. MCameraObserver2::VideoBufferReady will not be used with this class.
Private Member Functions | |
---|---|
CCameraVideoCaptureControl ( CCamera &) | |
void | ConstructL ( MCaptureVideoObserver &) |
void | GetConversionCoefficientL ( TYuvCoefficients &) |
void | GetSupportedConversionCoefficientsL ( TUint &) |
void | SetConversionCoefficient ( TYuvCoefficients ) |
Public Member Enumerations | |
---|---|
enum | TEmbeddedStillCaptureTypes { EEmbeddedStillCaptureNotSupported = 0x00, EEmbeddedStillCaptureSupported = 0x01 } |
enum | TFadingEffectState { EFadingEffectEnabled , EFadingEffectDisabled } |
enum | TVideoCaptureState { EVideoCapturePrepared , EVideoCaptureActive , EVideoCapturePaused , EVideoCaptureInActive } |
enum | TVideoCaptureType { EVideoCaptureNotSupported = 0x00, EClientVideoCapture = 0x01, EDirectVideoCapture = 0x02 } |
Private Attributes | |
---|---|
MCameraVideoCaptureControl * | iImpl |
CCamera & | iOwner |
CCameraVideoCaptureControl | ( | CCamera & | aOwner | ) | [private] |
CCameraVideoCaptureControl Constructor.
CCamera & aOwner | a reference to a CCamera object. |
IMPORT_C | ~CCameraVideoCaptureControl | ( | ) |
Destructor
The child objects created out of this video capture control class object shall be delete beforehand. Various child objects are snapshot, image processing and histograms.
void | ConstructL | ( | MCaptureVideoObserver & | aCaptureVideoObserver | ) | [private] |
CCameraVideoCaptureControl second phase constructor.
Function used to initialise internal state of the object. Uses reference to the camera to retrieve Camera Video Capture Control interface pointer.
MCaptureVideoObserver & aCaptureVideoObserver | Reference to the capture video observer. |
IMPORT_C CCamera::CCameraV2Histogram * | CreateHistogramHandleL | ( | ) | const |
Retrieve pointer to histogram API in order to use it specifically for the video capture.
Different types of histogram may be used for video capture. Every time this method will be called on the CCameraVideoCaptureControl class object, a new type of histogram will be created.
void | GetConversionCoefficientL | ( | TYuvCoefficients & | aConversionCoefficients | ) | const [private] |
Retrieves the currently used YUV conversion coefficients.
TYuvCoefficients & aConversionCoefficients | Currently used TYuvCoefficients |
IMPORT_C void | GetDisabledSettingsL | ( | RArray < TUid > & | aDisabledSettings | ) | const |
Retrieves the camera settings whose value got affected once the desired video settings (frame rate/frame size) are in place. This method may be called by the client after receiving the notification KUidECamEventVideoCaptureControlSettingsDisabled.
IMPORT_C void | GetEmbeddedStillCaptureSupportInfoL | ( | TInt & | aSupportedEmbeddedStillCaptureTypes | ) | const |
Informs whether or not the 'embedded still capture' feature is supported. Allowing still image capture in between on-going video capture is referred to as embedded still capture.
TInt & aSupportedEmbeddedStillCaptureTypes | Retrieves the supported embedded still capture. The TInt is retrieved as a bit field of supported TEmbeddedStillCaptureTypes. |
IMPORT_C void | GetFadingEffectStateL | ( | TFadingEffectState & | aFadingEffectState | ) | const |
Retrieves the fading effect state for video capture.
TFadingEffectState & aFadingEffectState | Retrieves the current fading effect state for video capture. |
IMPORT_C void | GetPixelAspectsSupportedL | ( | TUint & | aPixelAspectsSupported, |
CCamera::TFormat | aVideoFormat, | |||
const TSize & | aSize | |||
) | const |
Retrieves the supported pixel aspect ratio for a given resolution in case of video.
TUint & aPixelAspectsSupported | A bit field which retrieves the supported pixel aspect ratio for a given resolution. Pixel aspect ratio have been defined as CCamera::CCameraAdvancedSettings::TPixelAspectRatio |
CCamera::TFormat aVideoFormat | The video format for which the supported pixel aspect ratio have to be retrieved. |
const TSize & aSize | The resolution (or size) for which the supported pixel aspect ratio have to be retrieved. |
IMPORT_C void | GetPrepareVideoParametersL | ( | TPrepareVideoParameters & | aPrepareVideoParameters | ) | const |
TPrepareVideoParameters & aPrepareVideoParameters |
IMPORT_C void | GetRangeAffectedSettingsL | ( | RArray < TUid > & | aRangeAffectedSettings | ) | const |
Retrieves the camera settings whose range got affected once the desired video settings (frame rate/frame size) are in place. This method may be called by the client after receiving the notification KUidECamEventVideoCaptureControlSettingsRangeChanged.
IMPORT_C CCamera::CCameraSnapshot * | GetSnapshotHandleL | ( | TInt | aClientViewFinderId | ) | const |
Retrieve pointer to snapshot API in order to use it specifically for the video capture.
TInt aClientViewFinderId | The client viewfinder on which this client snapshot will be displayed. |
void | GetSupportedConversionCoefficientsL | ( | TUint & | aSupportedConversionCoefficients | ) | const [private] |
Retrieves the supported YUV conversion coefficient in case of video.
TUint & aSupportedConversionCoefficients | A bit field which retrieves the supported YUV conversion coefficient. YUV conversion coefficients have been defined as TYuvCoefficients |
IMPORT_C CCamera::CCameraImageProcessing * | GetTransformationHandleL | ( | ) | const |
Retrieve pointer to image processing API in order to use it specifically for the video capture.
IMPORT_C void | GetValueAffectedSettingsL | ( | RArray < TUid > & | aValueAffectedSettings | ) | const |
Retrieves the camera settings whose value got affected once the desired video settings (frame rate/frame size) are in place. This method may be called by the client after receiving the notification KUidECamEventVideoCaptureControlSettingsValueChanged.
IMPORT_C void | GetVideoCaptureStateL | ( | TVideoCaptureState & | aVideoCaptureState | ) | const |
Retrieves the current video capture state.
TVideoCaptureState & aVideoCaptureState | Retrieves the current video capture state. |
IMPORT_C void | GetVideoCaptureSupportInfoL | ( | TInt & | aSupportedVideoCaptureTypes | ) | const |
TInt & aSupportedVideoCaptureTypes | Retrieves the supported video capture type. The TInt is retrieved as a bit field of supported TVideoCaptureType. |
IMPORT_C void | GetVideoFormatsSupportedL | ( | TUint & | aVideoFormatsSupported, |
const TSize & | aSize | |||
) | const |
Retrieves the supported video formats for a given resolution.
IMPORT_C CCameraVideoCaptureControl * | NewL | ( | CCamera & | aCamera, |
MCaptureVideoObserver & | aCaptureVideoObserver | |||
) | [static] |
Factory function for creating the CCameraVideoCaptureControl object.
CCamera & aCamera | A reference to a CCamera object providing the settings. |
MCaptureVideoObserver & aCaptureVideoObserver | Reference to the capture video observer. |
IMPORT_C void | PauseVideoCapture | ( | ) |
Pauses the on-going video capture. MCaptureVideoObserver::VideoBufferReady() callback will not be received by the client until the video capture is resumed.
IMPORT_C void | PrepareVideoCapture | ( | const TPrepareVideoParameters & | aPrepareVideoParameters | ) |
Asynchronous method to prepare for video capture.
Performs setup and allocation of memory prior to calling StartVideoCapture() to keep the latency of that function to a minimum.
Event KUidECamEventVideoCaptureControlPrepareComplete is used to notify clients about completing the preparation for video capture.
Next PrepareVideoCapture can be called only after receiving the notification KUidECamEventReadyForNextPrepare.
If some camera settings get affected because of desired video settings such as frame rate/frame size, specific notifications will be sent to the client about camera settings being affected.
Event KUidECamEventVideoCaptureControlSettingsRangeChanged: informs that range of certain camera settings have been changed. Client may call GetRangeAffectedSettingsL(RArray<TUid>& aRangeAffectedSettings) const to get the list of affected camera settings.
Event KUidECamEventVideoCaptureControlSettingsValueChanged: informs that value of certain camera settings have been changed. Client may call GetValueAffectedSettingsL(RArray<TUid>& aValueAffectedSettings) const to get the list of affected camera settings.
Event KUidECamEventVideoCaptureControlSettingsDisabled: informs that certain camera settings have been disabled. Client may call GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const to get the list of affected camera settings.
const TPrepareVideoParameters & aPrepareVideoParameters | Parameters necessary to prepare for video capture. |
IMPORT_C void | ReleaseVideoResource | ( | ) |
Frees the video resources which were set up as a result of CCameraVideoCaptureControl::PrepareVideoCapture call. If this methid is called while PrepareVideoCapture call is outstanding, then this will be equivalent to cancelling the PrepareVideoCapture call and release any allocated resources.
PrepareVideoCapture(const TPrepareVideoParameters& aPrepareVideoParameters)
IMPORT_C void | ResumeVideoCaptureL | ( | ) |
Resumes the on-going video capture. MCaptureVideoObserver::VideoBufferReady() callback will again be received by the client.
void | SetConversionCoefficient | ( | TYuvCoefficients | aConversionCoefficients | ) | [private] |
Asynchronous method which sets the desired YUV conversion coefficients.
Event KUidECamEventVideoCaptureControlConversionCoefficient is used to notify clients about setting of desired YUV conversion coefficients.
TYuvCoefficients aConversionCoefficients | The desired TYuvCoefficients |
IMPORT_C void | SetFadingEffectState | ( | TFadingEffectState | aFadingEffectState | ) |
Sets the fading effect state for video capture.
Triggers a KUidECamEventVideoCaptureControlFadingEffect event notification.
TFadingEffectState aFadingEffectState | The desired fading effect state for video capture. |
IMPORT_C void | StartVideoCaptureL | ( | ) |
Starts the video capture. This operation gives priority to the low latency aspects.
Video frames are send to client via MCaptureVideoObserver::VideoBufferReady() .
This method is recommended to be used rather than CCamera::StartVideoCaptureL().
IMPORT_C void | StopVideoCapture | ( | ) |
Stops the video capture. This operation gives priority to the low latency aspects.
This method is recommended to be used rather than CCamera::StopVideoCapture() .
Specifies the various embedded still capture support. The enumeration list may be extended in future.
EEmbeddedStillCaptureNotSupported = 0x00 |
Embedded still capture not supported |
EEmbeddedStillCaptureSupported = 0x01 |
Embedded still capture supported |
Specifies the fading effect for video captured frames. The enumeration list may be extended in future.
EFadingEffectEnabled |
The fading effect will be visible on video captured frames as well, whenever the viewfinder fading is enabled |
EFadingEffectDisabled |
The fading effect will not be visible on video captured frames, whenever the viewfinder fading is enabled |
Specifies video capture state. The enumeration list may be extended in future.
EVideoCapturePrepared |
Video Capture has been prepared but not yet started |
EVideoCaptureActive |
Video Capture has been started and is running |
EVideoCapturePaused |
Video Capture has been started and is paused |
EVideoCaptureInActive |
Video Capture has been stopped or not yet prepared |
Specifies the various video capture types. The enumeration list may be extended in future.
EVideoCaptureNotSupported = 0x00 |
Video capture not supported. |
EClientVideoCapture = 0x01 |
Client video capture - Client video capture is a concept under which video buffers will be available to the clients of ECam through the dedicated observer MCaptureVideoObserver::VideoBufferReady() . Video frame formats used under this client video capture can be either compressed video frames or uncompressed video frames which are available through CCamera::TFormat . |
EDirectVideoCapture = 0x02 |
Direct video capture - Direct video capture is a concept under which video buffers will not be available to the clients of ECam through the dedicated observers. Video frames will be used by the ECam adaptation and could be passed internally to other components. Video frame formats used under this direct video capture can be either compressed video frames or uncompressed video frames which are available through CCamera::TFormat . |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.