camera exif make 信息修改

本次要求是把照片exif信息中的make修改为空,其他类似需求可做参考用

vendor/qcom/proprietary/mm-still/jpeg2/src/exif_defaults.c
首先在丐文件中定义了camera 的exif信息列表

static exif_tag_entry_ex_t* default_tags[] =
{
    &default_tag_make,
    &default_tag_model,
    &default_tag_datetime_original,
    &default_tag_datetime_digitized,
    &default_tag_exif_version,
    &default_tag_flash_pix_version,
    &default_tag_components_config,
    &default_tag_resolution_unit,
    &default_tag_tn_resolution_unit,
    &default_tag_tn_compression,
    &default_tag_tn_exif_x_resolution,
    &default_tag_tn_exif_y_resolution,
    &default_tag_exif_x_resolution,
    &default_tag_exif_y_resolution,
    &default_tag_ycbcr_positioning,
    &default_tag_color_space
};

其中MAKE信息的具体定义
static exif_tag_entry_ex_t default_tag_make =
{
    {
        EXIF_ASCII,  // type
        0,           // copy
        8,           // count
        {"QCOM--AA"}, // data._ascii (initialization applies
                     // to first member of the union)
    }, // entry
    EXIFTAGID_MAKE,
};


具体实现的修改:

hardware/qcom/camera/QCamera2/HAL/QCamera2HWI.cpp
QCamera2HardwareInterface::getExifData()函数

该函数的作用:get exif data to be passed into jpeg encoding

所以想要把make信息修改为空只需要在该函数中添加代码,对EXIFTAGID_MAKE进行重新赋值。

本次修改是通过persist.sys.exif.make获取make的值。若不设置persist.sys.exif.make,则make信息为空

    char value[PROPERTY_VALUE_MAX];
    property_get("persist.sys.exif.make", value, "");
    exif->addEntry(EXIFTAGID_MAKE,

                EXIF_ASCII, strlen(value) + 1, (void *)value);

同理,在该函数中也可以对exif信息中的其他项进行设置。

剩余疑问:exif中的信息列表选项只能被修改值,却不能被删除某一个选项,该问题资讯高通也没有给出合理解释,有待进一步学习

并且AP也可以修改exif信息

猜你喜欢

转载自blog.csdn.net/wing12345678910/article/details/79523870
今日推荐