Overview

This section provides an overview of the Camera Framework.

Purpose

The ECam component supplies a header file (.h) and library definition files (.def). These specify the API and binary interfaces that device creators can implement. They provide an interface for cross-platform, compatible camera clients to access the camera on any given device. The Camera Framework supports any concrete ECam implementation only as a ECom plug-in. The ROM plug-in with the highest version number is selected at instantiation phase. The Symbian version of ECam is a stub for easy replacement by an alternate implementation.

Required background

ECam is a component of the Multimedia subsystem.

Architectural relationships

Clients have specific priorities and may pre-empt others in their interactions with the camera. When a camera client needs to share the camera with another client, it creates a handle to the camera and passes this handle to the component. Clients that share with each other are called collaborative clients.

Platform security requires that applications have the UserEnvironment capability to create a Camera object. Clients with the MultimediaDD capability are given a higher priority.

Note: The process by which a client passes a handle to another client is beyond the scope of this Camera Framework guide.

Application developers and device creators implement the ECam API for the camera hardware on their phone. All cameras are ECom plug-ins sub-classed from the CCameraPlugin class.

API summary

The Camera Framework includes the following APIs.

ECam APIs

  • Camera

    This provides functionality to control a digital camera and to request and receive specific image data from it.

    See also Key Onboard ECam API Classes

  • Advanced Settings

    This provides domain specific getters and setters for well known camera hardware settings. This is used to query the camera for the list of supported and currently active hardware settings. For a specific setting, clients can query the camera for the list of supported values.

  • Camera Viewfinder

    This provides the support for both direct and client viewfinder. It also provides information regarding the current state of that direct viewfinder. The different possible states are active, paused and inactive.

    See also Key Viewfinder Classes

    Note: The direct viewfinder is applicable only for viewfinders that use Ccamera viewfinder methods.

  • Camera Histogram

    This gets the histogram data in a specified format for an image (for example, luminance based histogram, average colour value histogram and so on).

  • Camera Overlay

    This overlays an image onto the viewfinder, snapshots, still images and video. A client can create multiple overlays, each one with different properties.

  • Camera plug-in Support

    All cameras are ECom plug-ins sub-classed from CCameraPlugin class and register support for the interface KUidOnboardCameraPlugin in their resource file. Symbian introduced plug-in support for ECam from v9.1 onwards. Before that, device creators were supposed to re-implement ECam, which was effectively reference code.

  • Camera Snap Shot

    Clients can use snapshots to show captured images on the display almost instantly (while in the background the image may be processed by using some compression algorithm before storing the data). The client can specify the properties of the snapshot, such as size, background colour and position to be used if the snapshot has been scaled and so on. Snapshot object can be created specifically for still images and video APIs.

Typical uses

Camera Component Users

  • Camera plug-ins

  • Multimedia Framework plug-ins

Camera Component tasks

The camera component is used for the following:

  • Onboard Camera

  • Camera plug-in Support

  • Advanced Settings

  • Camera plug-in

  • Histogram

  • Overlay

  • Snapshot

  • Viewfinder

Onboard Camera

The Onboard Camera provides functionality to control a digital camera and to request and receive specific image data from it.

Advanced Settings

The Advanced Settings gets or sets individual setting value as well as retrieve their current ranges.

Camera plug-in

This API, an ECom plug-in, is introduced as an alternative to static linking. This allows the partners to replace the camera implementation more easily.

Histogram

The Histogram provides the functionality needed to work with histogram data in a specified format for an image.

Overlay

The Overlay is used to overlay an image onto the viewfinder, snapshots, still images and video.

Snapshot

The Snapshot allows the client to request snapshot data in a specified image format for both still images and video.

Viewfinder

The Viewfinder enables to pause and resume the direct viewfinder which is currently active and has been started using Ccamera methods.