搜索

430

主题

515

帖子

2106

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2106
QQ
发表于 2020-9-27 14:01:50 4818 浏览 0 回复

MT6737&MT6580平台Q版本自拍镜像实现和使用

[DESCRIPTION]
MT6580平台的较新的Q版本已支持自拍镜像的功能,只需要在APP端下"com.mediatek.control.capture.flipmode"字段大于0的值即可。
MT6737平台 尚未支持自拍镜像的功能,需要做以下修改。修改完成后也只需APP端下"com.mediatek.control.capture.flipmode"字段值。
[SOLUTION]
文件:platform/mt6735m/v3/hwnode/JpegNode.cpp

红色部分为新增部分,蓝色部分为注释部分,可运行adb shell setprop vendor.debug.camera.Jpeg.flip 3 检查是否添加成功
第一步:
351行左右,增加 flipMode成员变量

//
MRect cropRegion;
//
MINT32 flipMode;
//


第二步
364行左右,flipMode成员变量赋值
, size_thumbnail(0,0)
//
, cropRegion()
, flipMode(0)
{}
};

第三步
544 行左右 ,添加成员变量mFlip
vector<IImageBuffer*> mvWorkingJpeg_Thumbnail;
//
encode_frame* mpCurEncFrame;
MINT32 mFlip;

private: // static infos

第四步
587 行左右
enableDump = ::property_get_int32("vendor.debug.camera.dump.JpegNode",0);
mFlip = ::property_get_int32("vendor.debug.camera.Jpeg.flip", 0);

第五步
1006 行左右
MY_LOGD("mpJpeg_Main: mFlip=%d, flipMode=%d, orientation=%d", mFlip,
pEncodeFrame->mParams.flipMode, pEncodeFrame->mParams.orientation);

my_encode_params params;
params.pSrc = pInImageBuffer.get();
params.pDst = pEncodeFrame->mpJpeg_Main.get();
if (mFlip || pEncodeFrame->mParams.flipMode) {
if (pEncodeFrame->mParams.orientation == 0
|| pEncodeFrame->mParams.orientation == 180) {
params.transform = eTransform_FLIP_H;
} else {
params.transform = eTransform_FLIP_V;
}
} else {
params.transform = 0;
}

// params.transform = 0; //TODO

第六步
1120行左右
MY_LOGD("mpJpeg_Main: mFlip=%d, flipMode=%d, orientation=%d", mFlip,
pEncodeFrame->mParams.flipMode, pEncodeFrame->mParams.orientation);

//
my_encode_params params;
params.pSrc = pInImageBuffer.get();
params.pDst = pEncodeFrame->mpJpeg_Thumbnail.get();
if (mFlip || pEncodeFrame->mParams.flipMode) {
if (pEncodeFrame->mParams.orientation == 0
|| pEncodeFrame->mParams.orientation == 180) {
params.transform = eTransform_FLIP_H;
} else {
params.transform = eTransform_FLIP_V;
}
} else {
params.transform = 0;
}

// params.transform = 0; //TODO


第七步
1755行左右

getAppParam(MTK_JPEG_THUMBNAIL_SIZE , MSize , rParams.size_thumbnail);
getAppParam(MTK_SCALER_CROP_REGION , MRect , rParams.cropRegion);
getAppParam(MTK_CONTROL_CAPTURE_JPEG_FLIP_MODE , MINT32, rParams.flipMode);

#undef getAppParam

手机微信同号:13682654092
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表