Discuz! Board

标题: 镜子的图片有些偏 [打印本页]

作者: zangcf    时间: 2016-1-9 21:15
标题: 镜子的图片有些偏
本帖最后由 zangcf 于 2016-1-9 21:17 编辑

效果如图:

[attach]26[/attach]


作者: zangcf    时间: 2016-1-9 21:19
如何修改呢?
这个apk是Mirror.apk吗?HwMirror.apk
如何使用其他的机器上的是否可用呢?

作者: zangcf    时间: 2016-1-9 21:20
本帖最后由 zangcf 于 2016-1-9 21:24 编辑

首先看看解包之后,再重新打包是否可以使用。重新签名还是可以使用的。


作者: zangcf    时间: 2016-1-9 21:34
下面试用一下荣耀6的这个程序如何?
使用这个程序还是一样的效果。
作者: zangcf    时间: 2016-1-9 22:13
经过研究debug信息,发现,是分辨率的问题导致,
=====================================================================================
D/MtkCam/ParamsManager(  166): [updatePreferredPreviewSize] KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO=1280x720
=====================================================================================
V/Mirror  ( 8012): onPreviewStarted previewSize:1280x720
作者: zangcf    时间: 2016-1-9 22:28
同时更新这三个程序:
doraemon@doraemon-HP-EliteBook-8760w:/media/doraemon/works/android/mtk/6582/a8/alps/out/target/product/ultranix82_a8_kk/system/lib$ adb push libcamera_client.so /system/lib/
1762 KB/s (222576 bytes in 0.123s)
doraemon@doraemon-HP-EliteBook-8760w:/media/doraemon/works/android/mtk/6582/a8/alps/out/target/product/ultranix82_a8_kk/system/lib$ adb push libcameraservice.so /system/lib/
2385 KB/s (513464 bytes in 0.210s)
doraemon@doraemon-HP-EliteBook-8760w:/media/doraemon/works/android/mtk/6582/a8/alps/out/target/product/ultranix82_a8_kk/system/lib$ adb push libcam.paramsmgr.so /system/lib/
2392 KB/s (104668 bytes in 0.042s)
导致不能使用
作者: zangcf    时间: 2016-1-9 23:21
本帖最后由 zangcf 于 2016-1-9 23:22 编辑

修改这个文件:
ParamsManager.update.cpp
=======================================
bool
ParamsManager::
updateDefaultParams1()
{
    MY_LOGD("+");
    //
    if  (
            ! updateDefaultParams1_ByQuery()
        &&  ! updateDefaultParams1_ByDefault()  //  Fail to query => update by default
        )
    {
        //  both fail to update => return false.
        return  false;
    }
    //
    //  Prefferd Preview Size for Video
    if ( ! updatePreferredPreviewSize() )
    {
        return  false;
    }
    //
    updateDefaultFaceCapacity();
    updateDefaultVideoFormat();
    //
    //  For test.
    //mParameters.set("preview-size-values", "176x144,320x240,352x288,480x320,480x368,640x480,720x480,864x480,960x540");
    mParameters.set("zcfdebug updateDefaultParams_zcfdebug:preview-size-values", "176x144,320x240,352x288,480x320,480x368,640x480,720x480,800x480,800x600,864x480,960x540,1280x720,1920x1080");
    //
    MY_LOGD("-");
    return  true;
}
这样,分辨率虽然修改过来了,但是还是不行,我看到了一个问题,就是:
I/BufferQueue(  163): [Starting com.android.hwmirror](this:0xb88649d8,id:21,api:0,p:-1,c:163) setDefaultBufferSize: w=1080, h=1776
这里h的值也是不对的,看看如何调整这个值。

作者: zangcf    时间: 2016-1-9 23:57
I/BufferQueue(  163): [Starting com.android.hwmirror](this:0xb88649d8,id:21,api:0,p:-1,c:163) setDefaultBufferSize: w=1080, h=1776这是值是再BufferQueue.cpp中间定义的:
status_t BufferQueue::setDefaultBufferSize(uint32_t w, uint32_t h) {
#ifndef MTK_DEFAULT_AOSP
    ST_LOGI("zcfdebug_setDefaultBufferSize: w=%d, h=%d", w, h);
#else
    ST_LOGV("zcfdebug_setDefaultBufferSize_1: w=%d, h=%d", w, h);
#endif
    if (!w || !h) {
        ST_LOGE("setDefaultBufferSize: dimensions cannot be 0 (w=%d, h=%d)",
                w, h);
        return BAD_VALUE;
    }

    Mutex::Autolock lock(mMutex);
    mDefaultWidth = w;
    mDefaultHeight = h;
    return NO_ERROR;
}
是谁在调用的呢?

作者: zangcf    时间: 2016-1-10 00:03
frameworks/base/media/effect/java/src/com/mediatek/effect/player/EffectPicturePlayer.java:                            st.setDefaultBufferSize(mWidth, mHeight);
frameworks/base/media/effect/java/src/com/mediatek/effect/player/EffectCameraPlayer.java:                            st.setDefaultBufferSize(mWidth, mHeight);

难道是上面两个调用的?





欢迎光临 Discuz! Board (http://47.89.242.157:9000/bbs/discuz/) Powered by Discuz! X3.2