Symbian developer community

 
wiki

ECAM Implementation

From Symbian Developer Community

Jump to: navigation, search

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!

ISB, the contributor

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.

Multimedia Package: S^1 to S^4

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.

ECAM Architecture

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).
  • 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

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…