Symbian3/SDK/Source/GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
child 8 ae94777fff8f
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This section provides an overview of the Camera Framework. </p> <section><title>Purpose</title> <p>The ECam component supplies a header file (<filepath>.h</filepath>) and library definition files (<filepath>.def</filepath>). 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. </p> </section> <section><title>Required background</title> <p>ECam is a component of the Multimedia subsystem. </p> </section> <section><title>Architectural relationships</title> <p>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. </p> <p>Platform security requires that applications have the <codeph>UserEnvironment</codeph> capability to create a Camera object. Clients with the <codeph>MultimediaDD</codeph> capability are given a higher priority. </p> <p> <b>Note</b>: The process by which a client passes a handle to another client is beyond the scope of this Camera Framework guide. </p> <p>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 <xref href="GUID-487CF3A9-6B4B-3140-8A09-70DBEC1B15E2.dita"><apiname>CCameraplugin</apiname></xref> class. </p> </section> <section><title>API summary</title> <p>The Camera Framework includes the following APIs. </p> <p><b>ECam APIs </b> </p> <ul><li id="GUID-A35FED19-B5AE-5134-8EB6-A00F0B7A53C9"><p>Camera </p> <p>This provides functionality to control a digital camera and to request and receive specific image data from it. </p> <p>See also <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita#GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D/GUID-1AC509C3-E1D9-5DB4-9C09-90E0DCE576CB">Key Onboard ECam API Classes</xref>  </p> </li> <li id="GUID-5327CE4E-6BA6-5602-8D17-0ADFDFBEA5DA"><p>Advanced Settings </p> <p>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. </p> </li> <li id="GUID-646EBF1D-FF4F-5C2E-8D87-DD1CE9072A00"><p>Camera Viewfinder </p> <p>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. </p> <p>See also <xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita#GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D/GUID-FD016694-527F-5009-81FC-B5D8AD1A3A05">Key Viewfinder Classes</xref>  </p> <p> <b>Note</b>: The direct viewfinder is applicable only for viewfinders that use Ccamera viewfinder methods. </p> </li> <li id="GUID-F63B7492-08A2-5129-B89B-06CCC459EF04"><p>Camera Histogram </p> <p>This gets the histogram data in a specified format for an image (for example, luminance based histogram, average colour value histogram and so on). </p> </li> <li id="GUID-EC209FE8-B8B2-59E0-80DA-13801366F03B"><p>Camera Overlay </p> <p>This overlays an image onto the viewfinder, snapshots, still images and video. A client can create multiple overlays, each one with different properties. </p> </li> <li id="GUID-05130CA9-EFCD-59EA-871E-923E89122234"><p>Camera plug-in Support </p> <p>All cameras are ECom plug-ins sub-classed from <xref href="GUID-6C1CF515-15D2-3E7D-8826-CD944352BD91.dita"><apiname>Ccameraplugin</apiname></xref> class and register support for the interface <xref href="GUID-BFD9F9DE-6FFD-342C-BCDD-F30F1FCF39BB.dita"><apiname>KuidOnboardCameraplugin</apiname></xref> 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. </p> </li> <li id="GUID-EB2D5447-2D4F-5413-B0A8-17AA86982B0A"><p>Camera Snap Shot </p> <p>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. </p> </li> </ul> </section> <section><title>Typical uses</title> <p><b>Camera Component Users </b> </p> <ul><li id="GUID-D2AD15FD-E2DE-5137-BE77-650CCD5DE9A6"><p>Camera plug-ins </p> </li> <li id="GUID-77873CF0-7319-59D6-9EA6-0B922E7E3A3F"><p>Multimedia Framework plug-ins </p> </li> </ul> <p><b>Camera Component tasks</b> </p> <p>The camera component is used for the following: </p> <ul><li id="GUID-4A7DF7A6-4E35-53DB-9F56-A5D0E2685FBA"><p>Onboard Camera </p> </li> <li id="GUID-DF4050DA-AEC1-5C91-9466-FC685B21EBCC"><p>Camera plug-in Support </p> </li> <li id="GUID-4D9B817A-666C-5A15-B285-5B292C209C5A"><p>Advanced Settings </p> </li> <li id="GUID-E187EEC6-C048-5AB0-944B-BCBFC2CFD986"><p>Camera plug-in </p> </li> <li id="GUID-DD4EB3CF-EEAC-5208-989D-1B9A94320CCF"><p>Histogram </p> </li> <li id="GUID-4F24A091-31CE-592E-9447-A5424FA814C5"><p>Overlay </p> </li> <li id="GUID-7F01D2E4-49E3-53C9-AE0A-D40BB6C8304E"><p>Snapshot </p> </li> <li id="GUID-EBD1D801-E9FE-561D-A656-AE4095B878E4"><p>Viewfinder </p> </li> </ul> <p><b> Onboard Camera </b> </p> <p>The Onboard Camera provides functionality to control a digital camera and to request and receive specific image data from it. </p> <p><b> Advanced Settings </b> </p> <p>The Advanced Settings gets or sets individual setting value as well as retrieve their current ranges. </p> <p><b> Camera plug-in</b> </p> <p>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. </p> <p><b> Histogram</b> </p> <p>The Histogram provides the functionality needed to work with histogram data in a specified format for an image. </p> <p><b> Overlay</b> </p> <p>The Overlay is used to overlay an image onto the viewfinder, snapshots, still images and video. </p> <p><b> Snapshot</b> </p> <p>The Snapshot allows the client to request snapshot data in a specified image format for both still images and video. </p> <p><b> Viewfinder</b> </p> <p>The Viewfinder enables to pause and resume the direct viewfinder which is currently active and has been started using Ccamera methods. </p> </section> <section><title>See also</title> <p><xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard Camera Overview</xref>  </p> <p><xref href="GUID-F25862A3-51E5-581A-9CC9-964791781E69.dita">Camera Plug-in Support Overview</xref>  </p> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Advanced Camera Settings Overview</xref>  </p> <p><xref href="GUID-3074D4E5-25EA-5DA0-877D-6E3086DCBDB5.dita">Histogram Overview</xref>  </p> <p><xref href="GUID-AB5BD17E-F482-54A1-AE6F-4AEC178B2E0E.dita">Overlay API Overview</xref>  </p> <p><xref href="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita">Snapshot API Overview</xref>  </p> <p><xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita">Viewfinder API Overview</xref>  </p> </section> </conbody></concept>