Giter Site home page Giter Site logo

qcmetadataprinter's Introduction

Code that can help to debug metadata_data_t struct used by qualcomm camera code.

It is located in QCamera2/stack/common/cam_intf.h

Main idea is to compare output from functions get_pointer_of() and get_size_of() from binary libmmcamera2_mct.so, (liboemcamera.so for older devices) with values defined in oss header.

To get started, generate the param_ids.h header using struct.py. This creates a FOR_EVERY_PARAM_ID macro read during compile time, which can be easily modified/regenerated later on.

#define FOR_EVERY_PARAM_ID(MACRO) \
    MACRO(CAM_INTF_META_HISTOGRAM) \
    MACRO(CAM_INTF_META_FACE_DETECTION) \
    MACRO(CAM_INTF_META_FACE_RECOG) \

Next build it and copy get_offsets binary to /system/vendor/lib on your device where libmmcamera2_mct.so located.

Run it and it will produce output like this

BLOB: CAM_INTF_META_AUTOFOCUS_DATA index=19 pointer=8784 size=56
OSS : CAM_INTF_META_AUTOFOCUS_DATA index=19 pointer=8784 size=56
FIXME!!!
BLOB: CAM_INTF_META_CDS_DATA index=203 pointer=310378496 size=0
OSS : CAM_INTF_META_CDS_DATA index=203 pointer=8840 size=68
BLOB: CAM_INTF_PARM_UPDATE_DEBUG_LEVEL index=175 pointer=8908 size=4
OSS : CAM_INTF_PARM_UPDATE_DEBUG_LEVEL index=175 pointer=8908 size=4
  • BLOB means values found in libmmcamera2_mct.so
  • OSS means values from your current cam_intf.h
  • FIXME means fields that different by offset or by size. Some BLOB values will be size=0 and big pointer, it means this field not used in blob (but thats not mean you have to remove it from oss HAL).

qcmetadataprinter's People

Contributors

demon000 avatar nichcream avatar highwaystar avatar luca020400 avatar codeworkx avatar

Watchers

James Cloos avatar klozz (TeamMEX) avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.