Summary

  • Camerabin is the gstreamer element catering to camera usecases.This spec intends to enhance camerabin to cater to wide range of applications from simple webcam applications to complex smartphone applications which provide features equivalent to digital camera.This requires analysis of camera bin data flows and its support for advanced camera properties.Also enhancing support for camerabin in applications and frameworks like cheese/QtMobility is targeted.

Rationale

  • Camera framework is not standardised for Linux devices.Some application are based on gstreamer v4l2 video src , some on camera bin.Also different vendor expose camera differently , some provide v4l2 driver , some Omx. Also currently available v4l2 src and camera bin donot expose complex set of features like facetracking , exposure bracketing etc.So this activity targets a camerabin that is usable by all even though maintaining right level of flexibility to plugin lower level camera stacks like v4l2 , omx , proprietary drivers etc.

Camera Bin

  • camerabin.JPG

Design

Camerabin needs to be analyzed for enhancement in data flows to support additional usecases and also needs to be analyzed for enhancements in feature set it supports like camera properties/settings.

  • Camerabin Data Flows Enhancement

    • Enhancement of camerabin for supporting embedding thumnails in exif images
    • Feasibility of supporting video thumnails through camerabin
    • Feasibility of additional dataflows based on feedback from all vendors like panorama stitching ...
    • Feasibility of camera bin usage for videoconferencing applications /VT and assocaiated dataflow enhancements
  • Camerabin Features/properties Enhancement

    • Analysis/identification of additional features support required in camerabin based on feedback from all vendors eg Facerecognition and Tracking , object tracking,Redeye correction etc
    • Analysis/Agreement on standard way to expose these features to Camerabin users
      • Camerabin exposes photography interface to expose features.But discussions with camerabin developers suggests that there is disagreement on extending photography interface to include all kinds of capture/camera settings.
  • Applications identified for enhancement/migration to Camerabin

    • Cheese/QtMobility etc

Managing Vendor specific camera stack and hw encoders

  • Camera Src bin element of camerabin to be vendor specific implementation
  • Vendors to expose hw encoders as Gstreamer plugins
  • To be analysed in future if vendor specifc stacks can also be unified

Implementation

  • Camerabin Implementation

    • Prepare requirement document based on feedback from all vendors
    • Obtain future enhancements planned in Camerabin in opensource community
    • Discuss options on design and collaboration options with camerabin developers (if possible)
    • Prepare design document of enhancements identified/planned
    • Developement and testing of features identified in collaboration with camerabin developers .
  • Application migration/enhancement to Camerabin

    • TBD

Testing

  • Testing requires availability of low level camera stack and associated camera src bin element and vendor specific hardware.Options to be explored with all vendors
  • Explore usage of dummy v4l2 for testing.
  • Development/Enhancements of camera bin test cases
  • Testing camerabin along with targeted applications

Code Hosting

  • TBD

WorkingGroups/Middleware/Multimedia/Specs/1105/StandardizeCamerabin (last modified 2010-11-11 09:05:19)