ECAM Implementation
From Symbian Developer Community
This page gives details of the ECAM contribution from ISB (see also the blog posting). This page will be used as a free-form scratchpad to give updates on this project, and other related information. Please feel free to leave comments!
Contents |
Overview
ECAM is the camera API inside Symbian. It is an OS/middleware interface, but until now was the lowest point camera support existed in Symbian (this is because cameras are a significant source of differentiation among OEMs, and so each had adopted a different approach). However, this wasn't of course very useful for developers, or those trying to make hardware from scratch.
The goals of the contribution are:
- Enable complete end-to-end scenarios for camera-based use-cases, including still image capture and video recording
- Provide an implementation in the QEMU development environment
- Demonstrate the basics of using ECAM, and provide an extendable framework for future work
The contribution doesn't intend to provide a complete, reference ECAM implementation, although it could be used as a starting point. So some things are out of scope:
- Other reference execution environments, e.g Beagleboard
- Apart from basic ECAM activities (start viewfinder, stop viewfinder, capture still, capture burst), the rest of ECAM will not be provided (so, for example, there will be no flash support, no scene mode support etc)
- The camera will be a standard PC webcam, and hence capture resolutions will be in line with such cameras - so the datapath won't be optimised for high Mpix images
- Only one or two webcams will be supported initially
- The only host environment supported initially will be Windows
Of course, we hope to extend the contribution over time - and if you are interested in helping, then get involved!
Webcam Compatibility
We are still selecting which camera will be used. Once this is known, we will add information here.
Architecture
The diagram below shows the architecture of the QEMU version of this contribution, with the QEMU driver acting as the bridge between the Symbian and Host environments.
Availability
As this is an open-source contribution, these dates are best-effort only, and hence may change.
- Stage 1 (webcam simulated by QEMU): TBC
- Stage 2 (QEMU connects to a real webcam): TBC
Status of the Project
- Status
- Implementation of communication between PC and USB webcam
Currently working on obtaining data from USB via QEMU - Implementation of bitmap conversion of webcam image
Data is able to be obtained from webcam. Currently working on bitmap conversion of the data (conversion from YUV).
- Implementation of communication between PC and USB webcam
- Plan
- Implementation of UVC (USB Video Class)
Implement the followings on PDD:- Analysis on obtained data
- UVC header addition
- Implementation of communication between PC and USB webcam
Implement the followings on QEMU:- To obtain data from USB via QEMU
- To pass consecutive frame data to PDD
- Implementation of bitmap conversion of webcam image
Implement the followings on LDD:- Analysis on UVC format data to be obtained from PDD
- Bitmap conversion of obtained data
- Implementation of UVC (USB Video Class)
Contacts
- Multimedia Forum: to discuss the Symbian platform side of this contribution
- QEMU Mailing List: to discuss the QEMU driver implementation, and the bridges between QEMU and Symbian and QEMU and the Host (e.g. if you plan to make a contribution to support another host such as Linux)
- Beagleboard Mailing List: if you want to discuss making a contribution for the Beagleboard reference execution environment
Comments
Sign in to comment…




