MCameraBuffer Class Reference
Class used for passing camera picture data between camera and client in the V2 observer. Used for viewfinder, image capture and video capture.
The class offers APIs for the client to access the data as a descriptor, a bitmap or a handle to a kernel chunk. Depending on the format previously requested by the client, one or more of the API choices may be inappropriate e.g. an image will not be avaiable as a bitmap in the FBS unless the client has specifically requested it.
The buffer may contain multiple frames.
Member Functions Documentation
BitmapL(TInt)
CFbsBitmap & | BitmapL | ( | TInt | aFrameIndex | ) | [pure virtual] |
Returns a reference to a FBS bitmap containing a frame of image data.
-
leave
- KErrArgument if aIndex is out of range and
-
leave
- KErrNotSupported if the picture data is not a FBS bitmap.
Parameters
TInt aFrameIndex | The index of the required frame. For a still image this should be 0. |
ChunkL()
RChunk & | ChunkL | ( | ) | [pure virtual] |
Returns a handle for the chunk that contains the camera data. The RChunk is exposed so that it can potentially be shared between multiple processes. The ptr returned by DataL(aFrameIndex) is effectively derived from this RChunk (where both are supported simulataneously). The equivalent ptr would be: TPtrC8* ptr; ptr.Set(ChunkL().Base() + ChunkOffset(aFrameIndex), FrameSize(aFrameIndex));
-
leave
- KErrNotSupported if the chunk is not available.
ChunkOffsetL(TInt)
TInt
| ChunkOffsetL | ( | TInt | aFrameIndex | ) | [pure virtual] |
Returns the offset into the chunk that contains the frame specified by aFrameIndex. The client would add this offset to the ptr returned by ChunkL().Base() to get the address of the start of the frame data.
-
leave
- KErrNotSupported if the chunk is not available
-
leave
- KErrArgument if aIndex is out of range.
DataL(TInt)
Returns a pointer to a descriptor containing a frame of camera data. The format will have been previously specified by a CCamera class method.
-
leave
- KErrArgument if aIndex is out of range and
-
leave
- KErrNotSupported if the camera data is actually bitmaps in the FBS.
Parameters
TInt aFrameIndex | The index of the required frame. For a still image this should be 0. |
FrameSize(TInt)
TInt
| FrameSize | ( | TInt | aFrameIndex | ) | [pure virtual] |
Returns the size of the data in bytes that comprises the frame specified by aIndex.
-
leave
- KErrArgument if aIndex is out of range.
Parameters
TInt aFrameIndex | The index of the required frame. For a still image this should be 0. |
NumFrames()
TInt
| NumFrames | ( | ) | [pure virtual] |
Returns the number of frames of image data contained within the buffer. This would be 1 for a image capture, and match the requested count for video capture. For other methods in this class that take a aFrameIndex param, 0 <= aFrameIndex < NumFrames()
Release()
void | Release | ( | ) | [pure virtual] |
Releases the buffer. Once the client has processed the picture data it should use this method to signal to CCamera that the buffer can be re-used.
Member Data Documentation
TTimeIntervalMicroSeconds
iElapsedTime
TInt
iIndexOfFirstFrameInBuffer
TInt
| iIndexOfFirstFrameInBuffer |
Sequential frame number of the first frame in the buffer, counting from when CCamera::StartVideoCapture() was called and including frames dropped due to lack of buffers. Always zero for still images. May also be used by client viewfinders.
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.