mtk on-line > faq > sw © 2008-2012 mediatek inc. all...

206
FAQ00001 SW MTK on-line > FAQ > SW ------------------------------------------------------------ LEGAL DISCLAIMER © 2008-2012 MediaTek Inc. ALL RIGHTS RESERVED. BY OPENING OR USING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (“MEDIATEK SOFTWARE”) RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON AN “AS IS” BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. NOR DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTIES WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE. RECEIVER AGREES TO LOOK ONLY TO SUCH THIRD PARTIES FOR ANY AND ALL WARRANTY CLAIMS RELATING THERETO. MEDIATEK SHALL NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO RECEIVER’S SPECIFICATION OR CONFORMING TO A PARTICULAR STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER SHALL BE, AT MEDIATEK'S SOLE OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGES PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE. EXCEPT AS EXPRESSLY PROVIDED IN ANY APPLICABLE AGREEMENTS BETWEEN RECEIVER AND MEDIATEK (“APPLICABLE AGREEMENT”), THE MEDIATEK SOFTWARE IS SOLELY PROVIDED FOR USE WITH MEDIATEK CHIPS OR PRODUCTS ONLY. FURTHERMORE, WITHOUT PROCURING THE PROPER APPROVAL FROM MEDIATEK, ANY UNAUTHORIZED USE, REPRODUCTION, OR DISCLOSURE OF THE MEDIATEK SOFTWARE IN WHOLE OR IN PART IS STRICTLY PROHIBITED. EXCEPT AS EXPRESSLY PROVIDED, RECEIVER SHALL NOT DECOMPILE, REVERSE ENGINEER, REVERSE ASSEMBLE, DISASSEMBLE, OR OTHERWISE REVERSE ENGINEER OR REDUCE ANY MEDIATEK SOFTWARE PROVIDED SOLELY IN BINARY OR OBJECT CODE FORM TO A HUMAN-PERCEIVABLE FORM. RECEIVER ACKNOWLEDGES THAT MEDIATEK SOFTWARE MAY BE SUBJECT TO THE LAWS AND REGULATIONS OF RELATED JURISDICTIONS GOVERNING THE EXPORT, RE-EXPORT OR IMPORT OF CONTROL

Upload: hanhan

Post on 04-Apr-2018

254 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

FAQ00001

SW MTK on-line > FAQ > SW

------------------------------------------------------------

LEGAL DISCLAIMER

© 2008-2012 MediaTek Inc. ALL RIGHTS RESERVED.

BY OPENING OR USING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES

THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (“MEDIATEK SOFTWARE”) RECEIVED FROM

MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON AN “AS IS” BASIS

ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED,

INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A

PARTICULAR PURPOSE, OR NON-INFRINGEMENT. NOR DOES MEDIATEK PROVIDE ANY WARRANTY

WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTIES WHICH MAY BE USED BY,

INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE. RECEIVER AGREES TO LOOK ONLY

TO SUCH THIRD PARTIES FOR ANY AND ALL WARRANTY CLAIMS RELATING THERETO. MEDIATEK SHALL

NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO RECEIVER’S SPECIFICATION

OR CONFORMING TO A PARTICULAR STANDARD OR OPEN FORUM.

RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE LIABILITY

WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER SHALL BE, AT MEDIATEK'S SOLE

OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE OR REFUND ANY SOFTWARE

LICENSE FEES OR SERVICE CHARGES PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK

SOFTWARE.

EXCEPT AS EXPRESSLY PROVIDED IN ANY APPLICABLE AGREEMENTS BETWEEN RECEIVER AND MEDIATEK

(“APPLICABLE AGREEMENT”), THE MEDIATEK SOFTWARE IS SOLELY PROVIDED FOR USE WITH

MEDIATEK CHIPS OR PRODUCTS ONLY. FURTHERMORE, WITHOUT PROCURING THE PROPER APPROVAL

FROM MEDIATEK, ANY UNAUTHORIZED USE, REPRODUCTION, OR DISCLOSURE OF THE MEDIATEK

SOFTWARE IN WHOLE OR IN PART IS STRICTLY PROHIBITED. EXCEPT AS EXPRESSLY PROVIDED,

RECEIVER SHALL NOT DECOMPILE, REVERSE ENGINEER, REVERSE ASSEMBLE, DISASSEMBLE, OR

OTHERWISE REVERSE ENGINEER OR REDUCE ANY MEDIATEK SOFTWARE PROVIDED SOLELY IN BINARY OR

OBJECT CODE FORM TO A HUMAN-PERCEIVABLE FORM.

RECEIVER ACKNOWLEDGES THAT MEDIATEK SOFTWARE MAY BE SUBJECT TO THE LAWS AND REGULATIONS

OF RELATED JURISDICTIONS GOVERNING THE EXPORT, RE-EXPORT OR IMPORT OF CONTROL

Page 2: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

COMMODITIES. RECEIVER SHALL NOT EXPORT, RE-EXPORT, IMPORT OR OTHERWISE SELL, TRANSFER,

DIRECTLY OR INDIRECTLY, MEDIATEK SOFTWARE ACQUIRED HEREUNDER EXCEPT IN STRICT

COMPLIANCE WITH ALL SUCH APPLICABLE LAWS AND REGULATIONS. RECEIVER EXPRESSLY AGREES

THAT MEDIATEK SOFTWARE SHALL NOT BE DOWNLOADED OR OTHERWISE EXPORTED OR RE-EXPORTED

INTO (OR TO A NATIONAL OR RESIDENT OF) ANY EMBARGOED COUNTRIES, NOR TO ANYONE ON

RELATED DENIAL LISTS, INCLUDING BUT NOT LIMITED TO THE U.S. TREASURY DEPARTMENT’S LIST

OF SPECIALLY DESIGNATED NATIONALS OR THE U.S. COMMERCE DEPARTMENT’S TABLE OF DENIAL

ORDERS. RECEIVER HEREBY REPRESENTS AND WARRANTS THAT IT IS NOT LOCATED IN, UNDER THE

CONTROL OF, OR A NATIONAL OR RESIDENT OF, ANY SUCH COUNTRY, OR ON ANY SUCH LIST.

WITHOUT LIMITING THE FOREGOING, RECEIVER AGREES THAT MEDIATEK SOFTWARE PROVIDED

HEREUNDER SHALL NOT BE EXPORTED, RE-EXPORTED, OR TRANSFERRED BY RECEIVER TO ANY END-

USER ENGAGED IN ACTIVITIES, OR FOR ANY END-USE, DIRECTLY OR INDIRECTLY RELATED TO THE

DESIGN, DEVELOPMENT, PRODUCTION, USE, OR STOCKPILING OF WEAPONS OF MASS DESTRUCTION

(E.G., NUCLEAR, CHEMICAL, OR BIOLOGICAL WEAPONS, AND THE MISSILE TECHNOLOGY TO DELIVER

THEM).

ANY AND ALL INTELLECTUAL PROPERTY RIGHTS (INCLUDING WITHOUT LIMITATION, PATENT,

COPYRIGHT, AND TRADE SECRETS) IN AND TO MEDIATEK SOFTWARE, SAVE FOR THIRD PARTY

SOFTWARE, SHALL REMAIN THE EXCLUSIVE PROPERTY OF MEDIATEK INC. EXCEPT AS EXPRESSLY

PROVIDE IN APPLICABLE AGREEMENT, NO LICENSE IS GRANTED BY IMPLICATION OR OTHERWISE

UNDER ANY MEDIATEK OR ANY THIRD PARTY’S INTELLECTUAL PROPERTY RIGHTS INCLUDING, BUT

NOT LIMITED TO PATENT, TRADEMARK, COPYRIGHTS, OR TRADE SECRET CONTAINED IN MEDIATEK

SOFTWARE. NOTHING HEREIN SHALL BE CONSTRUED AS ANY TRANSFER OF ANY TITLE OR ANY

INTELLECTUAL PROPERTY RIGHTS IN MEDIATEK SOFTWARE TO RECEIVER. RECEIVER EXPRESSLY

ACKNOWLEDGES THAT IT IS RECEIVER’S SOLE RESPONSIBILITY TO OBTAIN ALL PROPER LICENSES

CONTAINED IN MEDIATEK SOFTWARE FROM MEDIATEK OR ALL APPLICABLE THIRD PARTIES.

Page 3: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

FAQ00009

MAUI Welcome for using SW MAUI FAQ, all sub categories are listed as below

Page 4: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

FAQ01355

Camera 包含相机(预览,拍照)、网络摄像头驱动相关的常见问题:

如常见的拍照死机,摄像头预览失败,图像异常,颜色花掉,拍照失败等。双摄像头,开横拍等问

题以及摄像头使用过程中的死机等问题。

【MT6255】必看FAQ:

1、MT6255 使用YUV Sensor预览(Preview)OK,但拍照(Capture)死机或是其它Camera问题

Page 5: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01320][Camera Driver]网络摄像头(Web

Camera)预览时底部有一条黑线 [DESCRIPTION] Webcam在预览的时候图像底端有一条黑线,使用Windows自带的Webcam预览工具拍下来的图片也存在此黑线的问题,具

体现象如下图所示:

[KEYWORD] Webcam

[SOLUTION] 这个问题我们经过分析是Window端自带的图像解码器被破坏,不是手机端问题,我们有将USB送到PC端的JPEG数据

Dump出来查看过是正常的。

另Microsoft的PC_camera:Microsoft LifeCam NX6000也会在图像的底端有一条黑线。

但也有一些专门的Webcam没有这条黑线的现象可能是因为使用的YUV/RGB的格式传送数据,而MediaTek目前所有的平台

的Webcam都是使用Motion JPEG的方式。

所以碰到这个问题需要跟你们的客户解释了。

Page 6: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00765][Camera Driver]进入相机

Camera/Camcorder 提示设备未就绪(Camera

module is not ready) or 预览失败(Failed to

review) [DESCRIPTION] 客户端反馈的问题中当数读不到Sensor ID和Preview Fail的问题最多,所以我们专门整理了一条FAQ来讲述如何一步一

步的查这类问题(这是我们多年的经验总结出来的)。如果你有碰到类似的问题,如果你有认真阅读下面的资料,相信大

部分的问题你可以在短时间内解决的同时伴随着Debug能力的提高,当然如果你们觉得哪一条写的不够清楚的地方,也

请随时反馈给我们,我们将即时更新。

进入照相机(Camera)时出现"Camera module not ready" or "Failed to preview"一般是有以下两种情况:

Case1. I2C(SCCB) 通信失败,即Sensor ID没有读到,若很快就提示"Failed to preview",则一般属于这种情况。

Case2. I2C(SCCB) 通信是OK的,但是Sensor没有输出正确的Vsync/Hsync/PCLK等信号。若过几秒才提示"Failed to

preview",则一般属于这种情况。

[KEYWORD] Camera MMI [SOLUTION] Case1. I2C 通信错误,即Sensor ID没有读到。

一般出现这类问题请按照下面的步骤逐一进行检查:

a、先检查Power是否正确,即Sensor的三路电压AVDD, DVDD, DOVDD 遇到I2C通信问题的时候最先需要Check的是电压,先Check三路电压是否正确?以及Power On/Off Sequence是否满足

Sensor Spec。 b、Reset & Power Down Pin的极性是否正确,量信号确认? 仔细的Check Sensor Datasheet以及HW Application Notes,如果你手边没有ICD工具,可以在Read Sensor ID的前面

加一个While(1);然后量信号,因为有些工程师会在显示Failed to preview的这个界面来量信号,这个时候实际上已经

调用了Power Off的API了,这些Pin的极性已经是Power Off的状态了。 c、I2C Pin (SDA, SCL)的GPIO Mode是否正确? 若使用SW I2C,则配置为Mode 0,若使用HW I2C,则请参考各平台的Datasheet来配置对应的Mode,或者将I2C Speed降

低一点再试试看。 d、I2C 的上拉电阻(Pull up Resistor)是否有接,以及电压是否正确(这个电压跟Step5中的IO电压伏值应该一致)。 一般常用的上拉电阻为4.7K,也有使用1.5K, 2.2K, 10K的

Page 7: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

e、BB & Sensor端IO电平是否一致? MT6235, MT6276,MT6255, MT6236, MT6252, MT6250等平台支持1.8V & 2.8V的IO,那BB和Sensor的IO电平需要匹配置

,即要么两边都是1.8V,要么两边都是2.8V BB:VDD33_CAM的电压决定了BB端的IO电平。 Sensor: DOVDD的电压决定了Sensor端的IO电平。 NOTICS: MT6253只支持2.8V的IO。

f、MCLK是否有输出,以及频率是否正确?

为什么把MCLK的检查放在最后面,因为自从11A之后的版本,已经将MCLK的控制放到CAL层,一般客户不会修改到,所以

99%的情况MCLK是可以正常输出的,如果发现没有量到MCLK,请先Check GPIO配置的Mode是否正确。

g、Reset/Power Down & SDA & SCL拉不高的情况

若有量信号的时候有发现Reset Power Down Pin,or SDA & SCL Pin拉不高的情况(即代码有写,也有调用到,但是确

拉不高), 首先Check GPIO Mode是否正确。 若SW都正确的情况下,需要注意一下Power Domain [Note1]的问题。 Ex: MT6235的GPIO 15/16 的IO Power Supply就来源于VDD33_CAM。所以要操作这两个GPIO时,VDD33_CAM要有电。 h、检查HW

若还是有问题,则请检查一下硬件线路连接,比如之前有出现琮SCL & SDA接反的情况。

Case2. I2C 通信是OK的,但是Sensor没有输出正确的Vsync/Hsync/PCLK/Data1等信号。 a、用示波器量信号进行检查

请量这些信号HSYNC, VSYNC, PCLK, Data1(量Data的原因是有可能Control信号正常但是Gain or Shutter设置错误导

致图像是黑的。)看是否是正常的,若你不知道正常的波形是怎样的,那么你可以找一下能正常Preview的板子,来量

这些Pin对比信号。 VSYNC – 请不要超过30fps.

查看这些信号的时候请一并查看频率和振幅(IO Level),下面几个波形图也供你们参考:

Page 8: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

b、若出现概率性的不能Preview,或者概率性花屏,等概率性的问题。 请先Check I2C是否Stable,请直接尝试读/写5000~10000次,看I2C是否每次都能成功。若I2C还是比较稳定的情况下

,再Double Check Power On/Off Sequence(量信号出来检查)是否有满足Sensor的Spec。 c、Vsync & Hsync极性

Page 9: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

若你是自己Porting新的Sensor,那么也请跟Sensor FAE Double Check Initial Setting是否正确,以及VSYNC/HSYNC

极性(Polarity)设置是否正确。若是使用MTK Release的Sensor Driver,则请跳过这一步。

Note1:

Power Domain: 从MT6235开始,以及后面的MT6238/39/68/52/55/76/50等这些平台,我们引入了Power Domain的概念。

就是各个模块的Power可以单独去Control。

就拿Camera来讲,Camera Interface的这一组IO的Power Domain就隶属于VDD33_CAM。具体可以Check MT6235 的

Datasheet,或附件的文档。VDD33_CAM这根Pin是Input pin, 一般是由PMU给电。而MT6235的GPIO 15/16 的IO

Supply就来源于VDD33_CAM。所以要操作这两个GPIO时,VDD33_CAM要有电。

Page 10: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ04436][MMI]camcorder中横屏UI滚动菜单显

示异常 [DESCRIPTION] 进入相机,拍摄一张照片,点击选项转发,进入到转发界面后,除了转发菜单下的“彩信发送”菜单,还会在垂直方向

上出现另外一条滚动的“彩信发送”方框,在此界面上滚动 [操作步骤]Menu->Camcorder->拍摄一张照片->点击右下角的选项键->Forward->出现异常的“彩信发送”滚动方框

该问题只要在camcorder中有过长的字符串,需要用滚动条的方式显示时就会有,效果如下如:

[KEYWORD] [SOLUTION] 请在Camcorderosd.c文件中做如下3处修改:

1、替换mmi_camco_osd_scrolling_text_handle函数成如下

static void mmi_camco_osd_scrolling_text_handle(void) {    /*----------------------------------------------------------------*/    /* Local Variables                                                */    /*----------------------------------------------------------------*/    mmi_camco_osd_menulist_struct *menulist_p = mmi_camco_osd_p->act_menulist_p;

   /*----------------------------------------------------------------*/    /* Code Body                                                      */

Page 11: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

   /*----------------------------------------------------------------*/ #ifdef MMI_CAMCO_OSD_ROTATE_LCD_270_SELF gdi_layer_push_and_set_active(mmi_camco_osd_p->osd_layer_draw_h); #else gdi_layer_push_and_set_active(mmi_camco_osd_p->osd_layer_h); #endif

   gui_handle_scrolling_text(&menulist_p->scrolling_item);

   gdi_layer_pop_and_restore_active(); #ifdef MMI_CAMCO_OSD_ROTATE_LCD_270_SELF gdi_layer_push_and_set_active(mmi_camco_osd_p->osd_layer_h); #ifndef __GDI_BLT_WITH_DOUBLE_BUF_SUPPORT__    gdi_layer_toggle_double(); #endif    gdi_layer_lock_frame_buffer();

   mmi_camco_osd_rotate_for_hw_rotate(mmi_camco_osd_p->osd_layer_draw_h, mmi_camco_osd_p->osd_layer_h);

   gdi_layer_unlock_frame_buffer();    gdi_layer_pop_and_restore_active();

   mmi_camco_osd_blt(); #endif }

2、替换mmi_camco_osd_scrolling_text_redraw_bg函数成如下

static void mmi_camco_osd_scrolling_text_redraw_bg(S32 x1, S32 y1, S32 x2, S32 y2) {    /*----------------------------------------------------------------*/    /* Local Variables                                                */    /*----------------------------------------------------------------*/    mmi_camco_osd_menulist_struct *menulist_p = mmi_camco_osd_p->act_menulist_p;    S32 offset_x;    S32 offset_y;

   /*----------------------------------------------------------------*/    /* Code Body                                                      */    /*----------------------------------------------------------------*/    offset_x = menulist_p->menulist_offset_x;    offset_y = menulist_p->menulist_offset_y;

   offset_y += menulist_p->title_height;    offset_y += menulist_p->item_height * menulist_p->highlighted_idx;

#ifdef MMI_CAMCO_OSD_ROTATE_LCD_270_SELF

Page 12: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

gdi_layer_push_and_set_active(mmi_camco_osd_p->osd_layer_draw_h); #else gdi_layer_push_and_set_active(mmi_camco_osd_p->osd_layer_h); #endif

   if (r2lMMIFlag)    {        gdi_image_draw_resized_id(offset_x - menulist_p->item_width + 1, menulist_p->item_width,

menulist_p->item_height, offset_y, menulist_p->hilite_img_id);    }    else    {    #ifndef MMI_CAMCO_OSD_ROTATE_LCD_270_SELF     gdi_image_draw_resized_id(offset_x, offset_y, menulist_p->item_width, menulist_p->item_height,

menulist_p->hilite_img_id); #else        gdi_image_draw_resized_id(offset_x, offset_y, menulist_p->item_width, menulist_p->item_height -

1, menulist_p->hilite_img_id); #endif    }    gdi_layer_pop_and_restore_active(); }

3、在mmi_camco_osd_draw_osd函数中做如下修改

case MMI_CAMCO_OSD_STATE_OPTION_MENU:

把以下代码注释掉

/* gdi_layer_push_and_set_active(mmi_camco_osd_p->osd_layer_draw_h);

    mmi_camco_osd_clear_bg();     mmi_camco_osd_draw_focus_hint();     gdi_layer_pop_and_restore_active();

    gdi_layer_push_and_set_active(mmi_camco_osd_p->osd_layer_h);     #ifndef __GDI_BLT_WITH_DOUBLE_BUF_SUPPORT__        gdi_layer_toggle_double();     #endif     gdi_layer_lock_frame_buffer();

    mmi_camco_osd_rotate_for_hw_rotate(mmi_camco_osd_p->osd_layer_draw_h, mmi_camco_osd_p->osd_layer_h);

    gdi_layer_unlock_frame_buffer();     gdi_layer_pop_and_restore_active();*/

Page 13: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

做好以上3处修改后,请remake media_app模块

Page 14: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ04437][MMI]自动测试中反复重测camera出现

花屏,按挂机键死机 [DESCRIPTION] 工程模式中,自动测试摄像头时,第一次正常,多按几次send key重测后,会花屏一会然后又回到

重测界面,

这时按挂机键重启。 [KEYWORD] [SOLUTION] 请在mmi_fm_camera_entry_preview_screen函数一进去加上

mmi_frm_scrn_close(g_fm_gourp_id, SCR_ID_FM_AUTO_TEST_START);//添加这行

mmi_frm_scrn_close(g_fm_gourp_id, SCR_ID_FM_CAMERA);。。。

然后 remake mmi_app这个模块后测试一下

Page 15: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01497][MMI]进入Cosmos/Pluto MMI

Camera/Camcorder Preview后2分钟不操作会自动

退出Camera应用 [DESCRIPTION] 进入Camera or Camcorder Preview之后120秒不按键(Key),或不触摸Touch Panel,则会自动退出Preview,这个是为

了省电做的一个Feature(因为有可能User忘记退出Camera而将手机放在一旁,则很快就会把电耗完).

注:若是Cosmos Camcorder也是2分钟没有操作才会自动退出,其用意是一样的。

[KEYWORD] Camera MMI [SOLUTION] A、Pluto MMI (Camera)

1. 在函数mmi_camera_preview_start()中有如下代码: #ifdef __    mmi_camera_restart_app_watchdog(); #endif 在这行代码中,如果在2分钟之内没有做任何操作,则会自动退出camera preview,所以可以把上述语句去掉来解决此

问题。 2. 或者直接将宏__MMI_CAMERA_FEATURE_WATCHDOG_TIMEOUT__定义注释掉,这个宏是可以Switchable的。 3. 若要调整Time Out的时间,则修改:

#define MMI_CAMERA_APP_WATCHDOG_DURATION  (1000*60*2)

单位是ms,即Default Time Out的时间是2分钟。

B、Pluto MMI (Camcorder)

1. Pluto MMI Camcorder的这个Feature可以透过宏 __MMI_CAMCO_FEATURE_PREVIEW_WATCHDOG_TIMEOUT__来开关

2. 若要调整Time Out的时间,则可以修改:

plutommi\mmi\inc\MMI_features_camcorder.h

#define MMI_CAMCO_PREVIEW_WATCHDOG_TIMEOUT_DUR   (120000)

这个时间的单位是ms,120000也即2分钟。

C、Cosmos MMI (Camcorder)

Page 16: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

1. Cosmos Camcorder这边目前没有提专门的宏来开关这个Feature。

2. 不过这个Time Out的时间是可以调整的,具体调整的位置为:

venusmmi\app\Cosmos\Camcorder\vapp_camco_osd_state.h

#define VAPP_CAMCO_OSD_AUTO_EXIT_TIME    120000

这里的120000就是Time Out的时间,单位是ms,即Time Out时间为120 * 1000ms,也就是两分钟,若希望把这个时间变

短,则修改这个值即可。

Page 17: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03595][MT6250 COSMOS]camcorder中从相机

切换到录像显示预览失败或只显示下部分图像 [DESCRIPTION] 在MT6250 cosmos camcorder中设置拍照大小为Wallpaper,切换camera到video recorder时,

出现预览失败或只是显示出下部分的图像,如下图:

[KEYWORD] MT6250

Camera MMI

Image/Video Garbage

Page 18: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[SOLUTION] 请申请Patch:MAUI_03207589

Page 19: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02866][Others]Camera/Video相关问题如何

抓取Catcher.exe Log and Memory Dump [DESCRIPTION] 当碰到Camera/Webcam相关的问题时,可能会不知道如何抓取有用的Catcher.exe Log & Memory Dump,那这条FAQ将供

您参考。

[KEYWORD]Others

[SOLUTION] 一、PLUTO MMI 1). Catcher.exe Log (打开Default Filter中的"Camera/Video/TV Out/WebCam..."). 2). Memory Dump (设置CUSTOM_DEBUG_MODULE = init nvram media mmi_app media_app camera gdi drv_display

drv_idp custom) 3). 并帮忙提供如下代码:    custom\drv\yuv_sensor\xxx\*.* or custom\drv\image_sensor\xxx\*.*    make\$Project.mak    media\camera\*.*    media\common\*.*    hal\camera\*.*    plutommi\mtkapp\camera\*.*    plutommi\mtkapp\camcorder\*.*    plutommi\mtkapp\factorymode\*.*    (若是Factory Mode相关的问题则提供)

二、COSMOS MMI 1). Catcher.exe Log (打开Default Filter中的"Camera/Video/TV Out/WebCam..."). 2). Memory Dump (设置CUSTOM_DEBUG_MODULE = init nvram media cosmos_media_app camera gdi drv_display

drv_idp custom) 3). 并帮忙提供如下代码:    custom\drv\yuv_sensor\xxx\*.* or custom\drv\image_sensor\xxx\*.*    make\$Project.mak    media\camera\*.*    media\common\*.*    hal\camera\*.*    plutommi\mtkapp\factorymode\*.*    (若是Factory Mode相关的问题则提供)    venusmmi\app\Cosmos\Camcorder\*.*

Page 20: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03779]MT6250 camcorder中插拔耳机弹框背

景为蓝色 [DESCRIPTION] MT6250 camcorder中在预览界面插拔耳机或其他的情况弹框背景为蓝色,需要在exit app screen函数中把base

layer清成黑色。 [SOLUTION] 在mmi_camco_exit_app_screen函数中做如下修改: static void mmi_camco_exit_app_screen(void) { 。。。 mmi_camco_set_base_layer(&g_mmi_camco_cntx.base_layer_handle, MMI_TRUE);    mmi_camco_osd_set_base_layer(g_mmi_camco_cntx.base_layer_handle);          gdi_layer_push_and_set_active(g_mmi_camco_cntx.base_layer_handle);         gdi_layer_clear(GDI_COLOR_BLACK);    gdi_layer_pop_and_restore_active(); //添加以下代码   gdi_layer_push_and_set_active(GDI_LAYER_MAIN_BASE_LAYER_HANDLE);         gdi_layer_clear(GDI_COLOR_BLACK);    gdi_layer_pop_and_restore_active(); //end    mmi_camco_osd_enter_state(MMI_CAMCO_OSD_STATE_EXIT);    mmi_camco_osd_reset_environment(); 。。。 } 请用make r media_app命令编译

Page 21: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03227]开机后进入MEDIA PLAYER后退出,再

进CAMCORDER会提示内存不足 [DESCRIPTION] 开机后进入MEDIA PLAYER后退出,再进CAMCORDER会提示内存不足,弹出OOM(Out of Memory)管理界面,提示Stop

Media Player。但有些客户不想弹OOM,想每次都可以进入Camcorder。

[KEYWORD] Camera MMI [SOLUTION] 这个是因为Media Player有打开了Background Play的功能,所以当退出Media Player的时候其实还有些Memory没有释

放,所以这个问题有两种修改方案: 1、    将Media Player的Background Player Disable掉。 2、    设置Media Player & Camcorder为Concurrent Run的Application。 A、Pluto MMI不是在.res文件里面修改,是修改下面这支文件: applib\mem\include\app_mem_config.h kal_uint8 APP_CAMCO[APPLIB_MEM_AP_POOL_SIZE_CONFIG(APPMEM_CAMCO_POOL_SIZE)]; 修改为: kal_uint8 APP_CAMCO[APPLIB_MEM_CONC2_AP_POOL_SIZE(APPMEM_CAMCO_POOL_SIZE, APP_MEM_MEDPLY_POOL_SIZE)]; B、若是Cosmos MMI,则修改方案如下: 可以使用的方式是将Music Player & Camcorder设置为Concurrent(即同时存在的意思)的方式,但是这样子总共的需要

的Memory会加大许多,设置Concurrent的方式如下: File: venusmmi\app\Cosmos\interface\app\vapp_package_concurrent.res #if defined(__MMI_CAMCORDER__) 因为显示的关系,下面的<>使用[]代替    [APPCONCURRENT concurrent_w_order="VAPP_CAMCO, VAPP_GALLERY_IMAGE_VIEWER"/]    [APPCONCURRENT concurrent_w_order="VAPP_CAMCO, VAPP_GALLERY_VIDEO_PLAYER"/]    [!-----------加入下面这一行---------------------]    [APPCONCURRENT concurrent_w_order="VAPP_MUSIC_PLAYER, VAPP_CAMCO"/] #endif

Page 22: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03226]相同场景,相同Quality设置拍出的照

片比对比机大30K Bytes左右 [DESCRIPTION] 使用11B的版拍出来的照片(VGA Resolution)要比10A的照片大30K Bytes左右,相同场景,相同Quality设置,Camera

Module & Setting都相同,对比机只有40KB,客户手机拍下来确有70KB左右。

[KEYWORD] JPEG File [SOLUTION] 解析两张图片对比发现异常的照片里面的APP9这个Marker,经确认,这个Marker是用来存放QVI(Quick View Image

—— 拍照的时候生成,跟LCD Size一样大,用来加速JPEG回显)的,并且带有QVI的JPEG文件如下分布:

因为VGA的图片本身只有640x480,所以Quick View Image若是320x240,在回显的时候加速不是特别明显,若客户不需

要QVI的话,则在JaiaMergeHandle()里将QuickViewImageEnable强制设置为KAL_FALSE即可。

Page 23: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02868][Exif]照相机WB(白平衡)设置为

Incandescent(白炽灯)拍照图片信息显示为

Tungsten(钨丝灯) [DESCRIPTION] 照相机WB(白平衡)设置为Incandescent(白炽灯)拍照图片信息显示为Tungsten(钨丝灯)

[KEYWORD] JPEG File [SOLUTION] 1、经过查证,这是因为Incandescent & Tungsten这两种光源的色温比较接近,所以在Exif里显示的Light Source的值

就都是3: 2、使用对比机验证,也是显示钨丝灯。 http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif/lightsource.html IFD         Exif         Name        LightSource                         The specification defines these values: 0 = Unknown 1 = Daylight 2 = Fluorescent 3 = Tungsten (incandescent light) 4 = Flash 9 = Fine weather 10 = Cloudy weather 对应到我们的代码里是如下Mapping关系: void ExifUpdateCamParaStruct(exif_cam_para_struct *pExifPara) { ……               /* awb setting */               else if((CAM_WB_TUNGSTEN== IspPreviewConfigData.pCalIspPreviewPara->WbMode) ||                               (CAM_WB_INCANDESCENCE==IspPreviewConfigData.pCalIspPreviewPara->WbMode))               {                               lightsource=3;               }

Page 24: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch
Page 25: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02867][Others] Camera 相关的Makefile

Option详解 [DESCRIPTION] 列举了所有Camera相关的Makefile Option,并对其功能含义和Option Values做了详细的解释。

[KEYWORD] Others [SOLUTION] YUVCAM_INTERPOLATION # Description:  #   决定是否需要插值以及用什么方式进行插值(所谓插值就是拍照的照片比Sensor实际的像素还要大,如Sensor是

2M的,但实际上拍出的照片是3M的)。  # Option Values:  #   SW:                      软件(即Sensor进行CRZ之后encode成jpeg阶段进行软件向上一级插值)向上插值一

级,这个宏打开后,会影响到buffer的分配以及菜单的显示,SW的方式优点是省Memory,缺点是速度比HW要慢。  #   HW                       硬件(即使用Capture Resize的Scale Up功能)向上插值一级,该宏打开后,会影

响到buffer的分配以及菜单的显示  #   NONE:                  sensor不进行插值。 注:这个宏打开只能实现向上插值一级,并且某些平台只能软件插值 ,这个宏不打开,手动进行插值也可以,当需要

向上插值多级时,需要改变某些宏的定义并添加菜单。

CONTOUR_IMPROVEMENT_SUPPORT # Description:  #   决定是否打开Dithering的功能,为了解决由于RGB888或YUV422转换为RGB565造成的Color Lost导致图像一圈一

圈的现象(也叫Color Banding或牛顿环),主要是Improve相机预览时的效果。  # Option Values:  #  TRUE:                      往画面中随机插入一些噪点,会降低一点清晰度,但是能有效改善Color

Banding现象,LCM的Gamma推荐使用Gamma 2.2.  #   FALSE                    如果光晕现象不明显,可以选择关闭此宏 注:在某些平台上不能将此宏和face detect同时打开,是因为CPU的限制,都打开会影响Performance,目前只有

MT6235 & MT6253才需要打开这个宏,其它平台Camera Preview使用YUV422的格式,不会有Contour的现象。

SENSOR_ROTATE # Description:  #   该宏决定preview的时候按照sensor的模组输出还是需要进行旋转。              Rotate: preview的layer作rotate,在11A、11B前只有0度和90度生效。在11A、11B后与

Horizontal_camera配合使用    度数为顺时针的度数              # Option Values:  #  SENSOR_ROTATE_0                      不做旋转  #  SENSOR_ROTATE_90                   顺时针旋转90度 #  SENSOR_ROTATE_180                   顺时针旋转180度 #  SENSOR_ROTATE_270                   顺时针旋转270度 注:11A之前的版本只有0度和90度的才有效,其他方向的无效。11A,11B之后的版本横装的sensor打开横拍模式的宏时

Page 26: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

同时要打开rotate 90度

JPEG_SENSOR_SUPPORT # Description:  #   该宏决定是否支持JPEG sensor        Jpeg sensor:拍照时sensor吐出的数据是jpeg格式的,但preview的不是jpeg数据,一般是YUV的。Jpeg

senor拍照时的数据量很小(省Memory),帧率可以比较大,但前提是该sensor有jpeg encode这个模块,像MT6255平台

最大可以支持3M的YUV Sensor,若要支持5M的Sensor,则需要使用JPEG Sensor。  # Option Values:  #  TRUE:       当前选择的是jpeg sensor  #  FALSE:     当前选择的不是jpeg sensor 注:目前有MT6276 & MT6255可以支持jpeg sensor。

FLASHLIGHT_MODULE # Description:  #  闪光灯模组和sensor模组类似,这个宏包了闪光灯模组的代码,不同的闪光灯模组需要不同的driver驱动,需要

定义宏变量来控制 ,这个Option只有使用XENON Flash(氙气闪光灯的时候才需要,一般的LED闪光灯该 Option设置为

NONE)  # Option Values:  #  IMCR3603_S010A0:       跑该模组的driver  #  NONE:     没有flashlight模块 注:

ISO_PRIORITY_MODE_SUPPORT # Description:  # 这个宏只有在Camera/Video分开的版本里有作用,在Camcorder的版本里不使用这个宏了,如果设置这个Option为

TRUE,那么在Option Menu中将会出现ISO Auto, ISO 100, ISO 200, ISO 400等这样些菜单。而在Camcorder的代码中

已经改成从Sensor Driver去Query当前Sensor支持的ISO能力。  # Option Values:  #  TRUE:        #  FALSE:     

ISP_SUPPORT # Description:  #  ISP(Image Signal Processing) 图像信号处理。主要用来对前端图像传感器输出信号处理的单元,以匹配不同厂

商的图象传感器。             # Option Values:  #  TRUE:       表示BB有ISP模块处理数据  #  FALSE:     BB没有ISP模块,不支持图像信号处理 注:当需要Camera功能的时候,这个宏都是设为TRUE

MSHUTTER_SUPPORT

Page 27: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

# Description:  #      快门英文名称为Shutter,快门是相机上控制感光片有效曝光时间的一种装置。   MSHUTTER是机械快门  # Option Values:  #  TRUE:      使用的是MSHUTTER  #  FALSE:    使用的是电子shutter 注:因为我们使用的都是CMOS sensor,所以这个宏都是FALSE

SENSOR_LOCATION # Description:  #   Sensor一般可以装在后盖上,也可以装在前盖上,或者翻盖手机的里面,设置这个宏会影响前面的

SENSOR_ROTATE最终生效的值。(会对应的做Mirror或Flip)  # Option Values:  #  SENSOR_ON_:         #  SENSOR_ON_CLAM:      #  SENSOR_INSIDE_CLAM

EXIF_SUPPORT # Description:  #   用来打开和关闭EXIF功能,EXIF是Exchangeable Image File Format的缩写,是数码相机的一种特殊文件格式。

拍照完成后可以将快门速度,曝光时间等信息集成到图像文件中,目前支持的版本是Exif Version 2.2.  # Option Values:  #   TRUE:                     打开 #   FALSE:                  关闭

CAMCORDER_SUPPORT # Description:  #  该宏用来控制打开摄录像机应用,如果打开则关闭camera和video recorder,其值有4种:FULL、STANDAND、

SLIM、CUSTOM、NONE,不同的值表示camcorder所支持的拍照模式不一样。  # Option Values:  #   FULL:                      说明camcorder支持的功能比较全,包括add frame、bss、 burstshot、ebs、

panaroma,HDR等所有的拍照模式都支持。  #   STANDARD:            支持add frame, bss。  #   SLIM:               只支持normal 和 contshot。  #   CUSTOM:              默认支持add frame, burstshot, ebs,HDR; 如果您想自己选择实现哪几个功能,可以

把值赋为CUSTOM,它所支持的功能是可以去客制化的。 #   NONE:              关闭camcorder应用。

CAMCORDER_FACE_DETECTION_MODE_SUPPORT # Description:  #  用来打开或关闭camcorder应用中的人脸检测功能。  # Option Values:  #   TRUE:                     打开  #   FALSE:                  关闭

Page 28: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

CAMCORDER_SMILE_SHUTTER_MODE_SUPPORT # Description:  #  用来打开或关闭camcorder应用中的笑脸拍摄功能。  # Option Values:  #   TRUE:                     打开  #   FALSE:                  关闭

PANORAMA_VIEW_SUPPORT # Description:  #  用来打开或关闭camcorder应用中的全景拍照功能,全景拍即拍三张照片再合成一张宽画幅的照片。  # Option Values:  #   TRUE:                      打开  #   FALSE:                   关闭

JPG_DECODE # Description:  #  用来打开或关闭jpeg Decorder, 会在Option.mak里根据Platform HW 的Capability来决定是使用HW还是SW的

Codec。  # Option Values:  #   TRUE:                     打开  #   FALSE:                  关闭

JPG_ENCODE # Description:  #  用来打开或关闭jpeg Encorder,会在Option.mak里根据Platform HW 的Capability来决定是使用HW还是SW的

Codec。  # Option Values:  #   TRUE:                   打开  #   FALSE:                 关闭

CFG_MMI_CAMERA_RECORDER_ONE_KEY_TOGGLE # Description:  #  用来打开或关闭camera和recorder间的一键切换功能。  # Option Values:  #   __ON__:                     打开 #   __OFF__:                  关闭 AF_AUXI_LED_SUPPORT # Description:  这个是AF辅助对焦灯的功能(因为环境很暗的时候找不到Edge,所以没法实现对焦,需要将物体照

亮才行),可以使用LED灯来作为AF的辅助对焦灯,这个在Lowlight的环境会自动打开,亮的环境不会打开。 # Option Values:            TRUE: 支持自动对焦

Page 29: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

           FALSE:不支持自动对焦 AF_SUPPORT # Description: #决定是否采用自动对焦功能            TRUE: 支持自动对焦            FALSE:不支持自动对焦

BACKUP_SENSOR_SUPPORT # Description: #决定是否支持备用型号sensor,即同一个软件包可以支持不同的Sensor,当更换了Sensor之后,不需要重新

Download,但需要重新Format FAT(因为不同Sensor需要Load不同的Parameter)。 目前支持Backup一颗Sensor。            TRUE:支持            FALSE:不支持

DUAL_CAMERA_SUPPORT # Description: #决定是否支持双camera sensor,一般在3G的版本里面因为会有前置和后置两颗Sensor,都会设置为TRUE。            TRUE:支持            FALSE:不支持

CMOS_SENSOR # Description: #对应camera sensor的型号,若该Sensor型号是以SERIAL结尾,则说明这是一颗Serial Sensor,会在Option.mak中定

义__SERIAL_SENSOR_SUPPORT__的宏            CMOS_SENSOR = (sensor 型号)

CMOS_SENSOR_BAK1 # Description: #主sensor的备用sensor            NONE:不支持            (OTHER: sensor型号):子sensor的型号

SENSOR_TYPE # Description: #支持的主camera sensor的类型            YUV: YUV SENSOR,除了MT6251之外的所有BB都支持。        对应的Sensor Driver位于mcu\custom\drv\yuv_sensor\xxx\*.*            RAW: RAW SENSOR,目前有MT6236/MT6268平台可以支持        对应的Sensor Driver位于:mcu\custom\drv\image_sensor\xxx\*.* DIRECT: 用于MTK平台较老的没有ISP的baseband MT6223C,其它平台都不支持。

Page 30: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

NONE:不支持camera

CMOS_SENSOR_SUB # Description: #对应子sensor的型号            CMOS_SENSOR_SUB = (子sensor型号)

CMOS_SENSOR_SUB_BAK1 # Description: #子sensor的备用型号            NONE:不支持            (OTHER: sensor型号):备用子sensor的型号 SENSOR_SUB_ROTATE # Description: #子sensor的旋转角度            SENSOR_ROTATE_0:子sensor不作旋转            SENSOR_ROTATE_180:子sensor对应的画面旋转180度

SENSOR_TYPE_SUB #子sensor的类型 YUV: 子sensor类型为YUV SENSOR            RAW: 子sensor类型为RAW SENSOR NONE:不支持子camera CAPTURE_SCENARIO [DESCRIPTION] #决定Capture的时候是走On the fly还是Off line的方式。        Off Line概念:即Sensor 输出的数据会先Dump到Memory里面再进行处理,以提高拍照帧率。        On the Fly概念:Sensor输出的数据直接以Pipe line的方式给BB进行处理。 [Option Values] #   OFFLINE:    因为Digital Zoom的时候,Resizer需要更多的时间来处理,若以Pipe line(On the fly)的方式

,则需要降低Sensor输出的帧率,为了提高Capture的帧率(可以减小Shutter Delay)从而引入了这种拍照模式。 #   STANDARD:     没有Digital Zoom(即1X)的时候走On the fly的流程(用以提高Capture帧率),当Zoom倍数不

为0的时候走Off Line的流程(从而Capture不需要降你帧率)。  #  ON_THE_FLY:     YUV Sensor只可以使用On the fly的流程,Raw Sensor,这种拍照流程都可以设置。

FLASHLIGHT_TYPE [DESCRIPTION] # 设置flashlight的类型。根据有无Flash LED以及Flash LED的操作模式可以分为LED_ONOFF_SUPPORT、

LED_FLASHLIGHT_SUPPORT和NONE三种。 [Option Values] #   LED_ONOFF_SUPPORT:    如果Flash LED的操作模式为Torch mode,则FLASHLIGHT_TYPE宏设为

Page 31: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

LED_ONOFF_SUPPORT。在Torch mode下,不支持峰值电流或峰值电流的时间较短,补光效果较差,常应用于手电筒。并

且该模式下,用UI上的LED菜单来控制LED,当设置为on时,LED会一直保持开的状态直至设置为off。 #   LED_FLASHLIGHT_SUPPORT:     如果Flash LED的操作模式为Flash mode,则FLASHLIGHT_TYPE宏设为

LED_FLASHLIGHT_SUPPORT。在Flash mode下,支持峰值电流并且峰值电流的时间较长,补光效果较好,常应用于闪光灯

。并且该模式下,用UI和算法共同控制LED的开关,可以实现先预闪再主闪的功能(类似相机的做法),闪两次。 #   NONE:   不支持FLASHLIGHT。

HORIZONTAL_CAMERA [DESCRIPTION] #决定是否打开horizontal camera功能,若设置为TRUE,定义它为全局编译宏。 [Option Values] #   TRUE:    Camera或者 Camcorder 用水平的UI界面。当设置为TRUE时, 11A(含)之后该宏只控制UI的部分,需要与SensorRotate配合才能将 preview画面旋转。 10A(含)之前的版本打开横拍的功能只需要设置该宏为TRUE即可。 #   FALSE:  camera 或者camcorder用竖直的 UI界面。

LENS_MODULE [DESCRIPTION] #设定主camera的lens module。它的值要么为NA,即特定的lens module,要么为NONE。如果它的值从NA变为NONE,则

AF_SUPPORT必须设置为FALSE;若它的值从NONE变为NA,则AF_SUPPORT必须设置为TRUE。 [Option Values] #   NA:    特定的lens module。对于RAW sensor,外挂lens module,需要正确设置。 #   NONE:     不支持LENS_MODULE。对于YUV sensor,集成了AF功能,不需要lens module.

LENS_MODULE_BAK1 [DESCRIPTION] # 设置主备用camera的lens module。它的值要么为NA,即特定的lens module,要么为NONE。如果它的值从NA变为

NONE,则AF_SUPPORT必须设置为FALSE;若它的值从NONE变为NA,则AF_SUPPORT必须设置为TRUE。 [Option Values] #   NA:    特定的lens module。对于RAW sensor,外挂lens module,需要正确设置。 #   NONE:  不支持LENS_MODULE。对于YUV sensor,集成了AF功能,不需要lens module

WEBCAM_SUPPORT [DESCRIPTION] #决定是否打开webcam(网络摄像头)这个功能,会使用Motion JPEG的方式,即BB端会将Sensor过来的每帧数据都

Encode成JPEG,再将些JPEG数据透过USB Cable传到PC端进行Decode,若设置为TRUE,定义它为全局编译宏 [Option Values] #   TRUE:    打开webcam功能。 #    FALSE:   不打开webcam功能。

YUVCAM_ENCODE_DIRECT_WRITE_FILE [DESCRIPTION]

Page 32: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

#决定YUVCAM编码时,是边编码边写到文件中,还是编码完成以后再写到文件中去。 [Option Values] #   TRUE:    YUVCAM编码时,边编码边写到文件中,可以节省memory,但缺点是速度慢。 #   FALSE:   YUVCAM编码时,编码完成以后再写到文件中。一般都将YUVCAM_ENCODE_DIRECT_WRITE_FILE设置为

FALSE。

Page 33: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02956]MT6255 使用YUV Sensor预览

(Preview)OK,但拍照(Capture)死机或是其

它Camera问题 [DESCRIPTION]        出现的问题是预览(Preview)和录像(Video)都没有问题,但是拍照(Capture)的时候就会发生死机的现象(特别

是Full Size); 进入Webcam时出现Assert; 以及其它一些camera issue,看起来像跟memory有关的问题。

Platform : MT6255/MT6276

SW Version:11B.W12.12MP(含)以前的版本。 出现这个问题的原因有可能是Makefile Option JPEG_SENSOR_SUPPORT配置不正确导致[关于JPEG_SENSOR_SUPPORT这个

Option的详细解释见"[Others] Camera 相关的Makefile Option详解"],因为MT6255的Demo Phone用的是JPEG

Sensor,所以默认提供给客户的代码包中的JPEG_SUPPORT_SUPPORT = TRUE,当拿到代码之后需要根据实际选用

Sensor进行配置。

[KEYWORD] MT6255

Camera Hang [SOLUTION]        请先检查自己的Sensor是不是YUV SENSOR(即Capture的时候Sensor输出的是YUV格式的数据),如果是YUV

SENSOR,请把JPEG_SENSOR_SUPPORT定义成了FALSE. 然后New 整个project。

另外:在11B1212MP(不含)之后的版本,为了防止此问题再发生。在makefile有做稍微的修改。

        1、Phase out JPEG_SENSOR_SUPPORT这个Makefile Option宏。

        2、当使用的Camera是jpeg sensor时,需要正确定义 SENSOR_TYPE = JPEG. makefile 通过这个Option来生成

原来代码上使用的宏_JPEG_SENSOR_SUPPORT_

        3、jpeg sensor driver 代码要放在custom/drv/jpeg_sensor/ .

Page 34: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03225][Driver]Sub Camera拍下来的照片有

均匀的绿色竖向条纹 [DESCRIPTION] 这个问题比较容易是出现在Sub Camera上面,通常是Main Camera没有问题(因为通客户上忘记添加Sub Camera的部分

),但Sub Camera拍下来的照片会有绿色的条纹,现象如下图所示:

[KEYWORD] Dual camera

Image/Video Garbage [SOLUTION] 分析: Memory Dump发现出现问题的原因还是因为下面这三块Buffer的地址设置的不正确导致的,这几块Buffer存放Capture下

来Encode之前的数据. fullsize_image_buffer_y_addr = 0x0059E120

Page 35: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

fullsize_image_buffer_u_addr = 0x0059E144 fullsize_image_buffer_v_addr = 0x0059E14D 上面Memory不正确的原因是客户没有在sensor_capability.h中加上对应的Sub Sensor Part Number。

解决方案:

1、    针对已经Release给客户的版本,请客户加上在sensor_capability.h中Sub Sensor定义即可。 2、    后续处理方案,修改sensor_capability.h,若没有定义,则在编译的时候报Error。 Check In CR: MAUI_03185773 Check In Branch: 11B 11A.W11.12MP 11B.W11.32MP / 11B.W11.32.SP / 11B.W11.44MP / 11B.W11.44SP / 11B.W12.12MP / 11B.W12.16MP

Page 36: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02293][MMI]Camera版本如何修改Capture

Size顺序,并且将默认的Capture Size修改为最

大的Capture Size [DESCRIPTION] 有些客户希望将默认的Capture Size设置为最大,并且按Hot Key切换Image Size的时候逐渐变小,以VGA Sensor为例

。希望默认Capture Size为640x480,按Hot Key切换的时候变换为:640x480、320x240、160x120……

[KEYWORD] Camera MMI [SOLUTION] 直接修改mmi_features_camera.h文件里的对应平台,对应LCD Size下的下面的宏,直接将LL和SS对应的值对换,S和L对应

的值对换.            #define CAMERA_FEATURE_IMAGE_SIZE_LL_WIDTH             (640)            #define CAMERA_FEATURE_IMAGE_SIZE_LL_HEIGHT             (480)            #define CAMERA_FEATURE_IMAGE_SIZE_L_WIDTH             (320)            #define CAMERA_FEATURE_IMAGE_SIZE_L_HEIGHT             (240)            #define CAMERA_FEATURE_IMAGE_SIZE_M_WIDTH             (160)            #define CAMERA_FEATURE_IMAGE_SIZE_M_HEIGHT             (120)            #define CAMERA_FEATURE_IMAGE_SIZE_S_WIDTH             (80)            #define CAMERA_FEATURE_IMAGE_SIZE_S_HEIGHT             (60)            #define CAMERA_FEATURE_IMAGE_SIZE_SS_WIDTH             (128)            #define CAMERA_FEATURE_IMAGE_SIZE_SS_HEIGHT             (128) 修改为下面这个样子            #define CAMERA_FEATURE_PREVIEW_SIZE_LL_WIDTH            (128)            #define CAMERA_FEATURE_PREVIEW_SIZE_LL_HEIGHT        (96)            #define CAMERA_FEATURE_PREVIEW_SIZE_L_WIDTH            (128)            #define CAMERA_FEATURE_PREVIEW_SIZE_L_HEIGHT            (96)            #define CAMERA_FEATURE_PREVIEW_SIZE_M_WIDTH            (128)            #define CAMERA_FEATURE_PREVIEW_SIZE_M_HEIGHT            (96)            #define CAMERA_FEATURE_PREVIEW_SIZE_S_WIDTH            (128)            #define CAMERA_FEATURE_PREVIEW_SIZE_S_HEIGHT            (96)            #define CAMERA_FEATURE_PREVIEW_SIZE_SS_WIDTH            (128)            #define CAMERA_FEATURE_PREVIEW_SIZE_SS_HEIGHT        (128)

Page 37: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02294][MMI]照相机预览界面,屏幕上显示的

剩余拍照张数显示的不准确 [DESCRIPTION] Camera Preview界面,屏幕上会显示一个剩余可拍照张数,但是拍了一两张之后查看该数字,没有变化。

[KEYWORD] Camera MMI [SOLUTION] Q:请问是否有什么好的办法使得该数字更精准一些呢? A: 这个我们当初设计这个剩余照片的张数的时候就知道会有这个问题,一直也没有什么好的方法来避免这个问题,这种

问题在其它平台也同样会出现. 主要的原因是JPEG压缩出来的文件大小跟场景关系比较大,比如同样是3M 的JPEG文件,不同的场景,从150K到1.6M都有可

能出现.完全估计不准.

Page 38: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02448][MMI]设置Horizontal Camera为

TRUE后,拍照Size设置为640x480,保存的照片为

480x640 [DESCRIPTION] Makefile Option中的 HORIZONTAL_CAMERA = TRUE  设置后,拍照后照片的方向是错误的(转了90度),甚至

640X480照片大小的设置,拍照保存的图片的尺寸是480X640.

并且录像录下来的Video播放的时候是花的。 [KEYWORD] Horizontal Camera

[SOLUTION] 11A(含)以后要使用Horizontal Camera的方式,SW需要配置两个Option: 1. HORIZONTAL_CAMRA = TRUE (只Rotate UI部分) 2. SENSOR_ROTATE = SENSOR_ROTATE_90 or SENSOR_ROTATE_270 (Rotate Camera Preview的画面)

10A(含)以前要使用Horizontal Camera的方式,SW只需要配置一个Option: 1. HORIZONTAL_CAMRA = TRUE (同时控制UI & Preview画面的部分)

Page 39: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02291][Others] 240x320的LCD,竖屏显示时

,Camera需要全屏显示时存在的问题 [DESCRIPTION] 这是一个经常被问到的问题,其实Camera不管怎么摆,其输出的图像都是4:3不会改变,改变的只是取景的内容。

这里以640x480(VGA)的Sensor为例,讲述如果240x320的LCD竖拍时需要全屏会有什么影响,因为两者比例不一致,所以

实际情况如下图:

红框的大小加Sensor输出的大小:640x480(4:3)

蓝框的大小为显示到LCD上看到的大小:360x480(3:4),然后再经由Resizer Resize成240x320(3:4)的大小,即蓝色框

外的画面都是看不到的。

所以这个Sensor实际的使用率只有56% = 360x480 / 640x480,即只能看到一半左右的画面,就像100块钱只能当50块钱

使用,很不经济!

竖屏显示全屏:

横屏显示全屏:

Page 40: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[KEYWORD] Others

[SOLUTION] 所以最好的做法就是: 1、重新打样模组,将Camera模组转90度打样。 2、或者重新Layer Out HW,将Camera Module横着装,然后将Horizontal Camera功能打开。

Page 41: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02292][Others] Digital Zoom(数字变焦)

Zoom In/Out时间隔不一致,Ex:1.02, 1.05,

1.11 [DESCRIPTION] 使用ZOOM时,ZOOM的比率会按照1.02,  1.05, 1.07, 1.11 ...这样变化,间隔不一致。

我们之所以这样子做是为了Zoom In/Out(放大缩小)这个功能看起来更Smooth,特别是在Fast Zoom的时候用户体验更

佳。

先说一下一般的想法和我们目前的做法到底差在哪里吧,注意红色的部分。

以640x480来举例,如下蓝色的框为实际的Grab Window。

一般做法:

从上面的图示你们可以看出来,均匀Step会导致的一个问题是从Step1->Step2,会给人的感觉画面变化很小的范围。

[KEYWORD] Digital Zoom [SOLUTION] 下面的480x360只是举例的值,不是实际算出来的值。

MTK Design:

Page 42: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

从上面的图示你们可以看出来,均匀Step会导致的一个问题是从Step1->Step2,每一次的变化给人的感觉都是一样的

,在Fast Zoom上就体现出优势来了。

Page 43: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02296][Others]如何修改JPEG图片中的

EXIF信息中的设备制造商的名称,目前显示

”N/A” [DESCRIPTION] 如下图中的Equipment Make & Camera Model如何修改?  

[KEYWORD] JPEG File

[SOLUTION] 1、首先需要确认$(Project).mak中的Feature Option EXIF_SUPPORT是打开的 EXIF_SUPPORT = FALSE 修改为 EXIF_SUPPORT = TRUE 若打开EXIF_SUPPORT编译报错,或Link时有Error,则需要申请Flavor Build。

2、EXIF_SUPPORT打开的情况下,只需要修改下面这个即可. exif_custom.c 中的, 即可. exif_ASCII*        Make="N/A"; exif_ASCII*        Model="N/A";

Page 44: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch
Page 45: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02295][Others]当后台播放MP3、FM时,进入

Camera会自动暂停,希望退出后继续播放MP3、

FM实现 [DESCRIPTION] 在Cosmos的版本,当后台在播MP3或FM的时候进入Camera/Video,是会将MP3或FM停止(Teminate)掉(但在非Cosmos的

版本是Suspend,退出时再Resume)。有些客户希望跟HTC一样,在退出Camera/Video之后还继续播MP3、FM。这个需求

,修改为跟非Cosmos版本一样即可。 [KEYWORD] Camera MMI

[SOLUTION] 添加了一个宏, 所有的修改都使用宏包起来. CUSTOM_OPTION      += __CAMCO_SUSPEND_RESUME_BG_AUDIO__

并且更新下面两个函数. void VappCamcoPage::initEnv(void) {    MMI_TRACE(TRACE_GROUP_2, TRC_VAPP_CAMCO_INIT_ENV);         #ifdef __CAMCO_SUSPEND_RESUME_BG_AUDIO__    // Suspend bg ply    mdi_audio_suspend_background_play(); #else    // stop bg ply    mdi_audio_terminate_background_play();   #endif        /* stop MMI sleep */    srv_backlight_turn_on(SRV_BACKLIGHT_PERMANENT); …… } void VappCamcoPage::deinitEnv(void) {    ……    /* let MMI can sleep */    srv_backlight_turn_off();    /* resume background audio */ #ifdef __CAMCO_SUSPEND_RESUME_BG_AUDIO__    mdi_audio_resume_background_play(); #endif    /* re-enable keypad tone */

Page 46: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

   mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_ENABLED); }

Page 47: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00473][Camera Driver]MT6236 10A1032上打

静电分屏,如何实现打静电时定屏,干扰消失后

继续预览的效果 [DESCRIPTION] 如果在MT6236 10A1032上,打静电的时候,或者把HSYNC ,VSYNC信号直接接地等干扰情况时出现camera 的分屏如何实

现定屏,干扰消失后,继续预览的效果 [KEYWORD] MT6236

10A

Others

[SOLUTION] 可以申请该patch MAUI_03049488 实现在camera preview,video录制的display 以及录制下的video,三个scenario下camera信号受干扰定屏 需要注意一点是,对video 录制下的文件定屏的相关的修改有点风险,如果sensor的dummy line/pixel太少會造成drop

frame,也就是sensor 上一帧结束到下一帧开始的时间不可以太短。

Page 48: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00766][Camera Driver]10A上CAMERA如何开

横拍 [DESCRIPTION] 10A上CAMERA如何开横拍

[KEYWORD] 10A Horizontal Camera [SOLUTION] 第一,硬件上SENSOR模组要横装。 第二,将make file中的宏HORIZONTAL_CAMERA设为TRUE。

Page 49: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00480][Camera Driver]11A 36平台全景拍死

机 [DESCRIPTION] 11A 36全景拍在拍完三张图片后,merge时发生assert:hal\camera\cal\src\cal_low_task_main.c 下的

CalJpegEncHandle 函数内ASSERT(JpegStatus == JPEG_STATUS_OK);  

[SOLUTION] MT6236

11A [SOLUTION] 经过分析是CRZ HW limitation,在input和output宽都一样高也一样的情况下,做了bypass CRZ。 这个问题的patch id:MAUI_2995451

Page 50: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00471][Camera Driver]11A Camera拍照后返

回界面时间长 [DESCRIPTION] 11A camera 拍照后返回界面时间长.同样的Sensor Setting,11A拍照完之后返回Preview的时间比10A要长600ms左右。

[KEYWORD] 11A

Others [SOLUTION] 通过Trace最终定位到是下面这里加了 Delay,因为Capture返回时m_state为VAPP_CAMCO_STATE_CAM_SAVE_DONE。

这个Delay是因为从Setting Menu回到Preview时会有一逐渐变小的动画。 若直接Preview,则动画会卡住直接跳到Preview画面。 但是Capture返回Preview是没有动画的, 可修改为如下:

Page 51: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

Patch ID: MAUI_03053931

Page 52: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01163][Camera Driver]11A1112 back up

sensor can not work [DESCRIPTION] 11A代码中开启back up sensor功能,backup sensor无法工作。不开启backup sensor功能两颗sensor单独能正常工作. [KEYWORD] Sensor/Serial Sensor [SOLUTION] release 出去的code中Image_sensor.c文件,sensorlist []中没加上back up sensor

sensorlist []中加上back up sensor即可。 以MT9P012_RAW为例:

Page 53: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

patch ID: MAUI_02937875

Page 54: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01164][Camera Driver]11A1112MP 硬件不接

sensor,第2次进入会assert重启 [DESCRIPTION] 11A112MP,如果硬件没有接sensor,则第一次进camera 时,会"fail to preview",而第二次进入则会assert 在

sccb.c line 837。Assert 位置:

void CameraSccbOpen( )

{

.....................

Info = &CameraSccbData.InfoOwner];  

/* must not be multi opened, must be call CameraSccbInit before CameraSccbOpen */  

if (Info->Handle || !CameraSccbData.Mode)  

 {    

     ASSERT(0);  

  }

........................

}

[KEYWORD] 11A

Camera Hang [SOLUTION] 需打patch id : MAUI_02909046 或修改以下: calopen() { .......................    ErrorCode=pfImageSensor->SensorOpen();    if (MM_ERROR_NONE != ErrorCode)    {

Page 55: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

       CalErrorTrace(ErrorCode);                // Close Sensor        pfImageSensor->SensorClose();// add it        ///Deinit ISP HW        pfIspFunc->IspFeatureCtrl(ISP_FEATURE_DEINIT_HW, (void *) &CurrentSensorInfo, NULL, 0,

&FeatureOutLen);        return ErrorCode;    } ................... }

Page 56: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01192][Camera Driver]11A代码中开启back

up sensor功能,backup sensor无法工作。不开

启backup sensor功能两颗sensor单独能正常工作

。 [DESCRIPTION] 11A代码中开启back up sensor功能,backup sensor无法工作。不开启backup sensor功能两颗sensor单独能正常工作 [KEYWORD] 11A

Sensor/Serial Sensor [SOLUTION] Image_sensor.c中 sensorlist []中没加上back up sensor

   sensorlist []中加上back up sensor即可。 以MT9P012_RAW为例:

Page 57: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

   已check in到MAUI 11A W11A1112MP Patch id:  MAUI_02937875

Page 58: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01166][Camera Driver]11A及以后的

camera中如何修改最大zoom倍数 [DESCRIPTION] 11A及以后的camera中如何修改最大zoom倍数. [KEYWORD] Digital Zoom [SOLUTION] 11A及以后将不会把zoom info放在sensor driver去给上层query,因为这是chip dependent,具体修改方式如下: 请在isp_if.h里修改如下: #if (defined(MT6253) && defined(__EMI_CLK_52MHZ__) ) #define ISP_MAX_DIGITAL_ZOOM_FACTOR  (200) #define ISP_MAX_DIGITAL_ZOOM_STEP (20) #elif (defined(MT6253)||defined(MT6235)||defined(MT6235B)||defined(MT6252H)||defined(MT6252)) #define ISP_MAX_DIGITAL_ZOOM_FACTOR  (400) #define ISP_MAX_DIGITAL_ZOOM_STEP  (40) #else #define ISP_MAX_DIGITAL_ZOOM_FACTOR  (800) #define ISP_MAX_DIGITAL_ZOOM_STEP  (40) #endif 请根据不同的平台修改ISP_MAX_DIGITAL_ZOOM_FACTOR和ISP_MAX_DIGITAL_ZOOM_STEP

Page 59: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01020][Camera Driver]53 webcam后在

windows xp中点击视频设备时重启 [DESCRIPTION] 53平台使用2M  sensor,连接webcam后在window xp中点击视频设备时重启。

从log上看,发生assert,assert位置在RESZ_webcam_config()函数中,

如下:

RESZ_webcam_config(    RESZ_CFG_STRUCT *RESZ_struct)

{

#if defined(__MTK_TARGET__)    

RESZ_struct->trigger_lcd = KAL_FALSE;    

RESZ_struct->continous = KAL_FALSE;    

RESZ_struct->int_en = KAL_TRUE;   

RESZ_struct->pass2_enable = KAL_FALSE;

RESZ_struct->source1_width = isp_capture_jpeg_data.source_width;

RESZ_struct->source1_height = isp_capture_jpeg_data.source_height;  

RESZ_struct->target1_width = isp_capture_jpeg_data.target_width;  

RESZ_struct->target1_height = isp_capture_jpeg_data.target_height;  

RESZ_struct->y_tar_base = (kal_uint32) isp_capture_jpeg_data.y_address;

RESZ_struct->u_tar_base = (kal_uint32) isp_capture_jpeg_data.u_address;   

RESZ_struct->v_tar_base = (kal_uint32) isp_capture_jpeg_data.v_address;     

RESZ_struct->wmsize = (IDP_WEBCAM_MAXIMUM_RESZ_WM_SIZE/(RESZ_struct->target1_width*2));   

ASSERT(640 >= isp_capture_jpeg_data.source_width);   

RESZ_struct->wmbase = (kal_uint32) display_intmem_get_buffer(IDP_WEBCAM_MAXIMUM_RESZ_WM_SIZE);  

Page 60: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

RESZ_struct->input1_src = RESZ_INPUT_ISP;   

RESZ_struct->output1_fmt = RESZ_OUTPUT_FMT_YUV420;    

RESZ_struct->resize_cb = _rszr_webcam_pass_1_done_cb;//isp_capture_jpeg_data.cam_capture_jpeg_cb;

#endif // #if defined(__MTK_TARGET__)    

return;

}

[KEYWORD] MT6253

Webcam

Camera Hang [SOLUTION]   #define IDP_WEBCAM_MAXIMUM_RESZ_WM_SIZE (640 * 2 * 4) 改成 #define IDP_WEBCAM_MAXIMUM_RESZ_WM_SIZE (800 * 2 * 4)

   ASSERT(640 >= isp_capture_jpeg_data.source_width); 改成    ASSERT(800 >= isp_capture_jpeg_data.source_width);

Page 61: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01214][Camera Driver]8 bit sensor 图像

偏色或画面极亮 [DESCRIPTION]

硬件接错,8bit sensor应该接在camera interface高8位 [KEYWORD] Image/Video Garbage

[SOLUTION] 遇到这样的问题,检查到sensor信号无误以后, 请检查硬件原理图,是否camera data interface有接错位

Page 62: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01221][Camera Driver]camera Capture 花

屏,死机 [DESCRIPTION]

1) Capture帧率太快,没有正常完成JPEG

2) Capture 时,sensor 输出速度过快,导致resizer 时间不够,死机 [KEYWORD] Camera Hang

[SOLUTION] 修改在image_sensor_XXX.c XXXX_capture()函数 找到相应的代码 1)加大dummy_pixel 2)加大dummy pixel无效就降低sensor端PCLK

Page 63: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01226][Camera Driver]Camera preview

/capture时不定时出现闪烁的绿色线条或者粉红

色区域块 [DESCRIPTION] 此问题是由于BB在latch data 时与sensor 输出数据的极性 不同步,导致获得抓取出错  

[KEYWORD] Image/Video Garbage [SOLUTION] 需要修改sensor寄存器,Inverse the sensor PCLK polarity

Page 64: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00927][Camera Driver]Camera preview

/capture时左边有几条竖的黑线 或者 1M size以

上capture 颜色丢失严重(现象见图)[OV2640] [DESCRIPTION] 此问题是由于BB提供给sensor的电压不满足要求造成的,2640的DVDD需要1.3V,但是提供了1.8V电压,造成这种情况!

黑线:

提供1.5V 电压给 DVDD, 1M size以上capture 颜色丢失严重

Page 65: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[KEYWORD] Image/Video Garbage [SOLUTION] 需要提供1.3V的供电电压

Page 66: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00769][Camera Driver]Camera Preview

Zoom in 分屏/花屏 [DESCRIPTION] BB做图像resize时间不够   [KEYWORD] Image/Video Garbage

[SOLUTION] 修改image_sensor_XXX.c XXXX_preview()函数 YUV sensor请加大dummy pixel Raw sensor请加大dummy line 如果还不行,请降低PCLK Freq

Page 67: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00768][Camera Driver]Camera Preview 分

屏 [DESCRIPTION]

BB做图像resize时间不够   [KEYWORD] Image/Video Garbage [SOLUTION] 修改image_sensor_XXX.c XXXX_preview()函数 YUV sensor请加大dummy pixel Raw sensor请加大dummy line

Page 68: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00770][Camera Driver]Camera Preview 图

像的顶端或底端有一条黑线 [DESCRIPTION] 从sensor端抓取的图像边缘数据无效   [KEYWORD] Image/Video Garbage

[SOLUTION] 修改image_sensor_XXX.c XXXX_preview()函数 1)顶端有黑线 grab_start_y 这个赋值加大 2)底端有黑线 exposure_window_height 这个赋值减小

Page 69: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01217][Camera Driver]camera preview出现

满屏颜色反色 [DESCRIPTION] 从sensor端抓取的图像与ISP bayer pattern不匹配

[KEYWORD] Image/Video Garbage [SOLUTION] 修改image_sensor_XXX.c XXXX_preview()函数 1) YUV sensor: 修改 image_window->grab_start_x ,测试 0/1/2/3四组值 2)RAW sensor: 修改 image_window->grab_start_x 与image_window->grab_start_y 测试 image_window->grab_start_x  =0; image_window->grab_start_y=0; 或者 image_window->grab_start_x  =1; image_window->grab_start_y=0; 或者 image_window->grab_start_x  =0; image_window->grab_start_y=1; 或者 image_window->grab_start_x  =1; image_window->grab_start_y=1; 四组值

Page 70: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01215][Camera Driver]camera preview出现

镜像/反转 [DESCRIPTION] 镜像寄存器写错 或是 sensor倒置安装 [KEYWORD] Image/Video Garbage

[SOLUTION] 修改image_sensor_XXX.c XXXX_preview()函数    switch (sensor_config_data->image_mirror)    {        case IMAGE_NORMAL:        //正常        …        break;        case IMAGE_H_MIRROR:        //上下翻转        …        break;        case IMAGE_V_MIRROR:        //左右翻转        …        break;        case IMAGE_HV_MIRROR:    //上下左右翻转        …            break;    }    

Page 71: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00476][Camera Driver]main jpeg

sensor+sub yuv sensor zoom in/out错误 [DESCRIPTION] Platform: MT6276.

main sensor切换到sub sensor再切回来,导致main sensor的zoom info异常。原本5M jpeg sensor在5M capture

size下不能zoom in/out,在这样切换后变成可以zoom in/out。 [KEYWORD] Digital Zoom

[SOLUTION] jpeg sensor的zoom in/out和capture size相关,但是camcorderapp那边没有做到这样。 patch id:MAUI_03021385

Page 72: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00477][Camera Driver]main jpeg

sensor+sub yuv sensor引起sub sensor拍照死机 [DESCRIPTION] Platform:MT6276

main jpeg sensor+sub yuv sensor引起sub sensor拍照死机 [KEYWORD] Camera Hang

Dual Camera

[SOLUTION] 原因是jpeg sensor相关代码没有包好,导致jpeg sensor切换到sub yuv sensor后,capture时还是跑jpeg sensor

path,导致死机。

Patch id: MAUI_03012871

Page 73: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01169][Camera Driver]Makfile中

SENSOR_TYPE设置为YUV 时,CAPTURE_SCENARIO只

能设置为OTF [DESCRIPTION] 如果SENSOR_TYPE设置为YUV 时,CAPTURE_SCENARIO设置为OFFLINE或Standard,在拍照的时候确实会申请offline使用的

buffer。从而导致在Capture时cam_capture_from_isp()申请memory申请不到,发生了Assert。而该Buffer实际上只有

在Raw Data Sensor才需要使用。 [KEYWORD] Others

[SOLUTION] 如果遇到该问题,请设置CAPTURE_SCENARIO = ON_THE_FLY Make c,u media 即可。 最新的代码已经在Option.mak中加上了Dependency Check的机制,若Sensor Type为YUV,只能设置为

OTF(ON_THE_FLY)。 Patch id: MAUI_02894985

Page 74: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01257][Camera Driver]MT6235 在 Burst

Shot 完成之后,接Back键返回 Preview时发生

Data Abort [必现] [DESCRIPTION] MT6235 在 Burst Shot 完成之后,接Back键返回 Preview时发生Data Abort [必现]。

Platform: MT6235 + CamcorderSW

Version: 10A.W11.08MP   (10A.W10.32MP的版本也会有这个问题)  

Analysis:

分析Memory Dump发现是发生了Data Abort,Data Abort的位置是:

Cam_preview_req_hdlr分配Internal Memory的时候,发生bl_prev & bl_next被踩坏了。 原因是这块 Buffer 已经被

Free了  (0x40008E0,最低位为0表示Free,最低位为1表示In Use),但是后面又被使用了,将bl_prev & bl_next踩坏

了,从而在下次分配Memory的时候发生了Data Abort。

Root Cause:

在cam_sw_capture_event_ind_hdlr里会直接call camera_capture_jpeg_process()这个函数,而该函数里面配置

Resizer的Working Memory的时候会使用Internal Memory,但是cam_sw_capture_event_ind_hdlr()里面没有分配

int_mem_start_address. [KEYWORD] MT6235

Camera Hang

[SOLUTION] Patch ID : MAUI_02980675 或函数cam_sw_capture_event_ind_hdlr()里上下面红色的代码。

Page 75: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch
Page 76: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01171][Camera Driver]MT6236 11A1112MP

上回显和查看图片的网格,请patch

:MAUI_03039413 [DESCRIPTION] MT6236 11A1112上,查看图片以及拍照回显的时候有网格,而拍下的图片在电脑上查看没有问题, [KEYWORD] MT6236

11A

Image/Video Garbage

[SOLUTION] 请patch:MAUI_03039413, 或请抓GDI snapshot,看网格是什么样的,分别用如下的方式解决 1. 查看图片,或者jpeg sensor 回显时候的网格,如果如下图

Page 77: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

请做如下修改  , 把jpegDecStart()函数中的JPEG_DECODE_MODE_AUTO的case分支完全修改成如下形式  switch (handle->decodeMode)   {      case JPEG_DECODE_MODE_AUTO:         if ((JPEG_THUMBNAIL_TYPE_NONE != tnInfo->tn_type) || (JPEG_THUMBNAIL_TYPE_NONE != qviInfo-

>tn_type))         {            if (handle->outputWnd.w <= tnInfo->tn_width)            {               handle->decodingSource = JPEG_DECODE_MODE_THUMBNAIL;            }            else            {               if (handle->outputWnd.w <= qviInfo->tn_width)               {                  handle->decodingSource = JPEG_DECODE_MODE_QUICK_VIEW_IMAGE;               }               else               {

Page 78: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

                 handle->decodingSource = JPEG_DECODE_MODE_MAIN_IMAGE;               }            }         }         else         {            handle->decodingSource = JPEG_DECODE_MODE_MAIN_IMAGE;         }      break;      case JPEG_DECODE_MODE_MAIN_IMAGE:         handle->decodingSource = JPEG_DECODE_MODE_MAIN_IMAGE;      break; 2. 在拍照回显的瞬间有网格,拍下来的图片及查看图片都没有问题 抓,网格状大致如下

请在  cal_task_main.c文件中修改ImageY2RDitheringHandle()函数,把函数调用 iul_csc_yuv422itlv_to_rgb565_fxp_dithering 修改为

Page 79: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

iul_csc_yuv422itlv_to_rgb565_mwc_dithering

Page 80: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01266][Camera Driver]MT6236 ASTRO 视频

通话中,如果先关闭本地camera再挂机,会有

15mA漏电,patch ID: MAUI_02967891 [DESCRIPTION] 如果video call过程中先关闭本方图像再挂断电话,或者在video call过程中插拔耳机,待机后会有10 - 15mA的漏电

流,按照上述的操作步骤必现,

[KEYWORD] MT6236

Others [SOLUTION] 漏电的原因是,按照如上的操作,会先关闭CRZ在关闭PRZ,之前写法的漏洞会造成RESZ_LB的漏关,导致无法真正进

sleep mode 请patch  MAUI_02967891 修改如下

Page 81: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch
Page 82: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch
Page 83: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01258][Camera

Driver]MT6236,11AW1112,preview zoom死机

(assert,KAL_TRUE==crz_done_flag) [DESCRIPTION] 11AW1112,preview zoom死机,死机的位置:Idp_scen_cp_mt6236.c的_idp_scen_cp_isp_timeout_timer_hdlr里发生

assert(KAL_TRUE==crz_done_flag)(该问题目前发现仅发生在HORIZONTAL_CAMERA=FALSE) [KEYWORD] MT6236

11A

Camera Hang

[SOLUTION] Patch ID:MAUI_02840888 问题的原因是zoom到某倍率时,CRZ的src和target宽和高相等,导致CRZ进入bypass。因此CRZ停止发出interrupt,导

致程序认为CRZ没有收完数据而发生assert。 解法是: 将Idp_rez_crz_mt6236.c中的idp_resz_crz_config_real()中的 if ((p_crz_struct->src_width == p_crz_struct->tar_width) &&      (p_crz_struct->src_height == p_crz_struct->tar_height))  {    p_crz_struct->bypass = KAL_TRUE;    SET_BIT(p_crz_struct->mask, IDP_RESZ_CRZ_MASK__BYPASS); // [MAUI_02363994] If this bit is not set, bypass bit will not be set to CRZ HW register...  } 注释掉,改成: if (p_crz_struct->bypass == KAL_TRUE) {    SET_BIT(p_crz_struct->mask, IDP_RESZ_CRZ_MASK__BYPASS); // [MAUI_02363994] If this bit is not set, bypass bit will not be set to CRZ HW register...

Page 84: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

}

Page 85: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01282][Camera Driver]MT6236/68 Raw 设置

连拍,打开LED Flashlight拍照后返回Preview除

0错 [DESCRIPTION] 复现该问题的必要步骤,该问题的复现概率很低。  

1、Raw Sensor,且设置为连拍(Continue Shot)

2、设置Flash light Auto,且必须是LED Flashlight (LED_FLASHLIGHT_SUPPPORT)  

死机的原因是除0错误,位置如下:

Root Cause:

在返回Camera Preview的时候没有将AVSYNC的中断Disable掉,导致time_tick_buff被记了两次,从而在计算frame

rate的时候就有一定机率除0错。 [KEYWORD] MT6236

Camera Hang

[SOLUTION] 在回Preview的时候Always将AVSYNC_INT Disable掉。

Page 86: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

Patch ID: MAUI_02966382

Page 87: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01189][Camera Driver]MT6236在10A1032上

进不了webcam [DESCRIPTION] 插入usb线,选webcam,打开webcam,电脑端webcam显示黑屏,按挂机键死机。在进入webcam时会调用

isp_grab_size_config()函数去配置grab window,在这个函数的webcam分支下会根据sensor_window-

>exposure_window_width与isp_grab_width的值计算Isp_grab_start_x、Isp_grab_start_yisp_grab_start_x +=

(((sensor_window->exposure_window_width )&0xFFFE – isp_grab_width)>>1)&0xFFFE;isp_grab_start_y +=

(((sensor_window->exposure_window_height)&0xFFFE – isp_grab_height)>>1)&0xFFFE;上述算式有时会按如下的过

程运算,1. 0xFFFE – isp_grab_width2. 按位与上sensor_window->exposure_window_width3. 右移一位再按位与

0xFFFE导致Isp_grab_start_x过大再加上isp_grab_width,超出实际范围 [KEYWORD] MT6236

10A

Webcam

[SOLUTION] 加入括号让sensor_window->exposure_window_width首先和0xFFFE进行按位与运算 isp_grab_start_x += ((((sensor_window->exposure_window_width )&0xFFFE) – isp_grab_width)>>1)&0xFFFE; isp_grab_start_y += ((((sensor_window->exposure_window_height)&0xFFFE) – isp_grab_height)>>1)&0xFFFE; Patch id:  MAUI_02855533 Check in Branch: 10A                 10A1032MP                 10A1032MP_ASTRO                 10A1048MP                 10A1052MP

Page 88: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01289][Camera Driver]MT6252串口Sensor影

响到FM进不去或4 sim Card掉卡 [DESCRIPTION] 注意,这个问题最明显的标识如下:

1、只有打开了Serial Sensor才有这个问题,Parallel是OK的。

2、进入Serial Camera再退出之后才有问题。

3、进入Serial Camera再退出之后发现GPIO64 ~ GPIO70的GPIO Mode不正确了。总之就是只跟Serial Sensor有关. [KEYWORD] MT6252

Sensor/Serial Sensor

[SOLUTION] 是由于下面的代码影响到了: init_isp_if()

power_off_isp()

因为0x80020230这个寄存器是32bit的,但是DRV_GPIO_SetData实际是上操作16bit寄存器的Macro. •若将DRV_GPIO_SetData 修改为 DRV_GPIO_SetData32则不会上面的问题。 •Spec上0x80020230这个寄存器的 bit8是Reserved. MT6252上不去操作0x80020230这个寄存器。

Page 89: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

Patch ID: MAUI_02949789

Page 90: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01165][Camera Driver]MT6252平台使用

Serial Sensor,SW应该如何配置 Step by

Step? [DESCRIPTION] MT6252平台使用Serial Sensor,SW应该如何配置Step1 ~ Step6。 支持的Serial Sensor有SIC320A_SERIAL,

GC6113_SERIAL, HM0155_SERIAL, PAS6180_SERIAL。 [KEYWORD] MT6252 Sensor/Serial Sensor

[SOLUTION] Step 1 下面这个Folder,你们参考一颗现有的Sensor(比如SIC320A_SERIAL) Copy一份就OK了。 Custom\drv\camera_common\*.* 注意需要 在 custom\drv\camera_common\image_sensor.h中Define 正确的Sensor ID #define SIC320A_SERIAL_SENSOR_ID          0x0011 //#define GC6113_SERIAL_SENSOR_ID         0x00B8 //#define HM0155_SERIAL_SENSOR_ID         0x1055 //#define PAS6180_SERIAL_SENSOR_ID        0x6179 Step 2 只需要将Makefile中的 CMOS_SENSOR设置即可。 CMOS_SENSOR = XXXXX_SERIAL          # XXXXX 为对应的Sensor Part No. 编译:Make c,u custom media image_sensor_sec Step 3 剩下的就是Driver Tool(codegen.dws)的配置了。 若使用2.8V IO

Page 91: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

若使用1.8V IO

Page 92: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

Step 4 I2C的部分需要选择正确的IO Level。

Page 93: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

Step 5 当使用HW I2C(Default)的时候需要根据Step 4选择的I2C的GPIO配置正确的I2C Mode。 File: custom\drv\camera\$(Project)\camera_hw.c Ex:若使用GPIO22(SCL) & GPIO23(SDA),则定义如下: #ifndef SCCB_GPIO_SCL_MODE        #define SCCB_GPIO_SCL_MODE (3)        // GPIO Mode 3 #endif #ifndef SCCB_GPIO_SDA_MODE        #define SCCB_GPIO_SDA_MODE (3)        // GPIO Mode 3 #endif Step 6 如何Debug,简单的判断:            1). 若很快的就弹出“Camera not ready!” Debug:这种情况一般是Sensor ID没有读到,请检查AVDD, DVDD, DOVDD和Power Down/Reset Pin以及I2C的Mode是否正

确。 2). 若过一会才弹出“Camera not ready!” Debug:这种情况一般是Sensor ID的正确读到,I2C是OK的,则Check Step3的配置是否正确,或者检查HW是否OK. 3). 若现象是进入Preview黑屏,若按返回键,过一会退出Camera Debug:这种情况一般是Sensor的正常的数据输出,BB端也有正确的收到数据,但是没有刷到屏上去,可能的原因是

Makefile中有打开 SYNC_LCM_SUPPORT = TRUE 但是实际上TE Function不Work,若是这种情况,则Play Video时也会定屏,所以若出现Case C,可以Play Video来简

单判断是否是LCD没有将数据刷到屏上去导致。

Page 94: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00929][Camera Driver]MT6253 插值到3M的

修改方法 [DESCRIPTION]–   1.客户MMI菜单已经修改好,可以出现3M Capture Size; –   2.客户希望通过SW插值Camera到3M。 [KEYWORD]MT6253Interpolation[SOLUTION]–   1. 目前53平台支持最大Camera分辨率为2M,可支持SW插值到3M;

–   2. 具体在代码中的修改方法整理如下:

–   Makefile:

–   YUVCAM_INTERPOLATION = SW–   YUVCAM_ENCODE_DIRECT_WRITE_FILE = FALSE–   Drv_features_6253.h–   将HW Resize Support这个宏注释掉;

–   //#define DRV_YUV_HW_RESIZE_SUPPORT–   执行New操作。

–   3. 补充说明一下,在MMI实现3M Menu的Display:

–   (Camera MMI)

(1)在对应的sensor的.h文件:image_sensor.h中定义: #define __IMAGE_SENSOR_3M__   // 3M

(2)在mmi_features_camera.h(路径为:plutommi\customer\custresource\pluto_mmi)中替换:    #define CAMERA_FEATURE_IMAGE_SIZE_LL_WIDTH   (2048)    #define CAMERA_FEATURE_IMAGE_SIZE_LL_HEIGHT  (1536) (3)New Project.–   (Camcorder MMI) –   修改camera_sensor_para_xxx.c中的xxx_get_capture_size_ability().

Page 95: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00931][Camera Driver]MT6253上使用

WQVGA的屏,capture size为wallpaper时preview

zoom in到3点几倍时ASSERT in lib [DESCRIPTION]MT6253上,240×400的屏,把capture image size切为LCD size时,全屏preview,然后做zoomin到3倍多时候,会ASSERT 在lib里面,filename:resizer_6253_series.c    Line:522[KEYWORD]MT6253Camera Hang[SOLUTION]                                              第一,   在preview 且capture size 为wallpaper 时 zoom in 到3倍把MCLK降一半,从

而降一半帧率

在isp_yuv_if_v2.c中,yuv_isp_digital_zoom_config()开始处加如下代码 void yuv_isp_digital_zoom_config(ISP_OPERATION_STATE_ENUMisp_state,kal_uint8 zoom_step) {    //add #if 1    if (isp_preview_config_data.target_height == 400)    {      if (isp_digital_zoom_factor >= 30)        {             SET_TG_OUTPUT_CLK_DIVIDER(7);   //3             SET_CMOS_RISING_EDGE(0);                              SET_CMOS_FALLING_EDGE(4); // 2        }    } #endif 第二,限制zoom in的倍数

[RootCause]CRZ HW limitation,做竖向up scale 时两倍多附近是CRZ的瓶颈

ASSERT 是因为CRZ 处理速度相对慢,但一直有数据过来,处理不过来,从而丢点,丢点过多,就会触发此处

ASSERT在wallpaper时 preview zoom in到3倍,CRZ在做竖向的up scale, ISP grab window 大致为

110×184 ,經過 CRZ到240×400,竖向时CRZ中Vertical resize的负担比较大,由于没有dedicate memory,比较

容易达到处理上的瓶颈, 处理不过来,但sensor 输出的速度是不变的,一直有数据过来,这个时候就会丢点触发中断

(lib中),丢点的个数多了就会触发此处的ASSER

Page 96: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00918][Camera Driver]Preview掉线 ,出现

一半绿,一半红的现象 [DESCRIPTION]

PCLK Driving Capability  1x

Page 97: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

PCLK Driving Capability  3x [KEYWORD]

Image/Video Garbage

[SOLUTION]

将PCLK的Driving Capability调到3x后问题会更明显, 问题可能是MCLK引起

将MCLK Driving Current从8mA降低到2mA~4mA. 问题解决.

驱动电流大可能会有Over-shoot,一般在EVB上才会用到8MA(因为走线比较长,信号有衰减,所以需要加大Driving Current以加大

抗干扰力),手机上一般2~4MA就够了。

Page 98: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

因为驱动电流大,所以上升延的时间就短。即斜率会有变化。

Page 99: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01325][Camera Driver]VIDEO ENCODE格式为

MJEPG的工程,进入video recorder开始录像,此

时插上USB,选择webcam,在PC端点击USB视频设

备,手机死机 [DESCRIPTION] 进入video录影的时候ISP是ISP_MJPEG_ENCODE_MODE,进webcam没有切换到preview mode,导致ISP状态机乱掉 [KEYOWRD] Webcam

System Hang

[SOLUTION] 在usbvideo_cam_if.c line521加上以下一行 sensor_config_data.isp_op_mode=ISP_PREVIEW_MODE;  //add this line    sensor_config_data.image_mirror=usbvideo_param->image_mirror;    sensor_config_data.frame_rate=0xF0;        // webcam mode    image_sensor_func->sensor_preview_setting(&exposure_window,&sensor_config_data);

Page 100: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01324][Camera Driver]WebCamera 发生data

abort,死机 [DESCRIPTION] [KEYWORD] Webcam

Camera Hang [SOLUTION] 使用USB2.0, 需将USB_HS_SUPPORT = TRUE

Page 101: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01307][Camera Driver]Webcam拍照全部删除

后,pc端缩略图不能及时刷新 [DESCRIPTION]  Webcam拍照全部删除后,pc端缩略图不能及时刷新,pc机上显示为删除前拍最后拍摄的照片,不显示当前拍摄的照片

如下步骤可复现问题:1.测试机和PC机通过网络摄像机建立连接;2.打开我的计算机->usb视频设备 ->拍照->删除相机

上的所有照片->再次拍照;3.观察pc机上显示的缩略图 [KEYWORD] Webcam

[SOLUTION] 此时请双击缩略图,就会出现第二次拍照的照片。或是退出webcam重新进入,缩略图就会是第二次拍的照片。 出现这种情况是因为在Windows缩略图中有一个Bug,Windows在第一次显示缩略图时先读当前目录中的“Thumbs.db”这

个文件,其实这是一个缩略图数据库,从而来判断是否有该图片的缩略图。如果不存在“Thumbs.db”文件或者该库中

不存在该图片的缩略图,那么Windows会尝试取图片中的EXIF信息,判断是否存在缩略图数据。如果图片中EXIF信息中

不存在缩略图信息或信息错误,那么Windows就会用插值的方法重新生成缩略图(如果可能则保存到当前目录中的

“Thumbs.db”缩略图数据库中)。 删掉照片而没有退出webcam之时,“Thumbs.db”这个文件存在,不会根据新拍的照片生成缩略图,所以会出现上述问

题。 此网页供您参考:http://blog.cfan.com.cn/html/01/263901-113575.html

Page 102: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01317][Camera Driver]修改連接Web

Camera之後,電腦端的提示設備名稱,應該如何

修改? [DESCRIPTION] 修改連接Web Camera之後,電腦端的提示設備名稱,應該如何修改? [KEYWORD] Webcam

[SOLUTION] 例如,需要显示“FLY 120”,请在usb_custom.c里面做如下修改 static const kal_uint16 USB_VIDEO_VC_INTERFACE_STRING[] = { 0x0310, 'F', 'L', 'Y', ' ', '1', '2', '0' }; 注意:数组中的第一个数字,0x0310,其中高八位03请勿修改,低八位表示字符串长度。此例中“FLY 120”长度为

7,(7+1)*2=16=0x10。

Page 103: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01167][Camera Driver]如何申请彻底关闭

Camera模块的Flavor Build [DESCRIPTION] 如何申请关闭Camera模块的Flavor Build? [KEYWORD] Camera

[SOLUTION] 因为目前有些代码还是包在Library里面的,Customer Release的代码是不能将Camera关闭的,若需要关闭,则需要申

请Flavor Build 重新release codebase, Makefile Option需设置如下: MJPG_ENCODE = FALSE MP4_ENCODE     = FALSE ISP_SUPPORT      = FALSE CMOS_SENSOR  = NONE SENSOR_TYPE     = NONE YUVCAM_INTERPOLATION   = NONE ATV_SUPPORT = FALSEWEBCAM_SUPPORT = FALSECAMCORDER_FACE_DETECTION_MODE_SUPPORT = FALSEHIGH_DYNAMIC_RANGE_SUPPORT = FALSEAUTOCAP_PANORAMA_SUPPORT = FALSEMULTIPLE_ANGLE_VIEW_SUPPORT = FALSECAMCORDER_ZERO_SHUTTER_DELAY_SUPPORT = FALSEEXIF_SUPPORT = FALSE

Page 104: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00478][Camera Driver]手机连上USB选择

webcamera,然后按返回键退出webcam进入idle界

面,这个时候如果不拔掉USB线,不能进sleep

mode [DESCRIPTION] 手机连上USB选择webcamera,然后按返回键退出webcam进入idle界面,这个时候如果不拔掉USB线,不能进sleep mode [KEYWORD] Webcam

[SOLUTION] patch ID: MAUI_03015707 或者修改\venusmmi\app\Cosmos\Webcam\vapp_webcam.cpp  extern "C" void vapp_webcam_enter(void) {    gWebcamContext.is_plugout = VFX_FALSE; //    srv_backlight_turn_on(SRV_BACKLIGHT_PERMANENT);    vapp_webcam_launch(); } extern "C" void vapp_webcam_exit(void) {       gWebcamContext.is_plugout = VFX_TRUE;    VappWebcamApp::cablePlugOut(); //    srv_backlight_turn_off(); } void VappWebcamScreen::onEnter(VfxBool isBackward) {    VfxMainScr::onEnter(isBackward); #ifdef  __MMI_BACKGROUND_CALL__    if (srv_ucm_query_call_count(SRV_UCM_INCOMING_STATE, SRV_UCM_CALL_TYPE_ALL, NULL) > 0 ||        srv_ucm_query_call_count(SRV_UCM_OUTGOING_STATE, SRV_UCM_CALL_TYPE_ALL, NULL) > 0 ||               srv_ucm_query_call_count(SRV_UCM_CALL_STATE_ALL, SRV_UCM_CALL_TYPE_NO_CSD, NULL) > 0)    {        m_isInCall = VFX_TRUE;

Page 105: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

   } #endif    srv_backlight_turn_on(SRV_BACKLIGHT_PERMANENT);    mmi_frm_cb_reg_event(EVT_ID_GPIO_BEFORE_LCD_SLEEP_IN, cbEventHandler, this);    enterScr(); } void VappWebcamScreen::onExit(VfxBool isBackward) {       exitScr(isBackward);    mmi_frm_cb_dereg_event(EVT_ID_GPIO_BEFORE_LCD_SLEEP_IN, cbEventHandler, this);    srv_backlight_turn_off();        VfxMainScr::onExit(isBackward); }

Page 106: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00773][Camera Driver]进入camera

preview正常,按键反应非常慢 [DESCRIPTION] 1)初始化值不对

2)LCD驱动问题 [KEYWORD] Others

[SOLUTION] 1)把sensor初始化寄存器的值都打印出来,看是否全部初始化成功。 2)确认不是初始化代码问题以后,检查lcd.c文件XXX_BlockWrite()函数中是否加了很多delay。

Page 107: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00772][Camera Driver]非全屏Camera

Preview 滚屏 [DESCRIPTION] LCD驱动没有使用DMA方式 [KEYWORD] Image/Video Garbage

[SOLUTION] 1.在lcd_sw.h中#define LCD_CMD_DMA_MODE 2.修改在lcd.c XXXX_BlockWrite()函数 使用DMA方式实现驱动 ENABLE_LCD_TRANSFER_COMPLETE_INT; SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n); ENABLE_LCD_ROI_CTRL_CMD_FIRST; while (LCD_IS_RUNNING) {}; START_LCD_TRANSFER

Page 108: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ07982][camera]60A工程camera连拍死机 [DESCRIPTION]   60A平台,打开连拍拍照会死机,单拍没有问题。死机类型为fatal error, 错误码0x4. [SOLUTION]  遇到类似问题,可以先check __CAMCO_QUICK_VIEW_ROTATE_SHRAE_APP_MEM__这个宏是否打开?如果

CAMCODER_SUPPORT 设置为NONE,这个宏也应该同时关闭,否则会引起med 那边配置的memory 不足,而导致memory 被

踩,引起死机。

Page 109: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ06930][Camera]camera sensor 横装的情况

下拍摄wall paper时,保存下来的图片有90度旋

转 [DESCRIPTION] camera sensor 横装的情况下拍摄wall paper时,保存下来的图片有90度旋转 [SOLUTION] 在camera sensor 横装的情况下拍摄wall paper时,MDI这边应该image_resolution设置为 MDI_CAMERA_CAP_SIZE_WALLPAPER,这样底层在生成照片时会自动将照片旋转90度以适应wall paper的需要, 但是在当前的设计中,MDI不会将image_resolution设置为MDI_CAMERA_CAP_SIZE_WALLPAPER,底层不会去 帮忙旋转照片,所以保存下来的照片会有90度旋转。 在mdi_camera_update_para_image_size()中 cap_size.image_resolution = camera_setting_p->image_resolution;    cap_size.image_width = camera_setting_p->image_width = image_width;    cap_size.image_height = camera_setting_p->image_height = image_height; 前面加上:  if (camera_setting_p->image_width == LCD_WIDTH && camera_setting_p->image_height == LCD_HEIGHT)            camera_setting_p->image_resolution = MDI_CAMERA_CAP_SIZE_WALLPAPER;

Page 110: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ06932][Camera]其他app调用camera 的时候

死机 [DESCRIPTION] 其他app调用camera 的时候死机 [SOLUTION] Camera 有dcm机制,其他app在使用camera 的时候,需要先load camera的code到dcm pool, 具体方法是在调用cui_camera_create()之前先调用cui_camera_check_and_display_popup(),

同时还需要在CameraCui.c中添加 #include "MMI_ap_dcm_config.h"

Page 111: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ06931][Camera]在

__MMI_CAMERA_4_OSD_LAYER__关闭

,HORIZONTAL_CAMERA打开的情况下进camera 会

死机 [DESCRIPTION] 在__MMI_CAMERA_4_OSD_LAYER__关闭,HORIZONTAL_CAMERA打开的情况下进camera 会死机 [SOLUTION] 修改mmi_camera_post_init_app(),在__MMI_CAMERA_4_OSD_LAYER__关闭的情况下,要先create resource,再config

layer orientation。修改后的code如下: static void mmi_camera_post_init_app(void) {    /*----------------------------------------------------------------*/    /* Local Variables                                                */    /*----------------------------------------------------------------*/    /*----------------------------------------------------------------*/    /* Code Body                                                      */    /*----------------------------------------------------------------*/    MMI_TRACE(MMI_MEDIA_TRC_G2_APP, MMI_TRC_CAMERA_POST_INIT_APP);    /* init advanced dsc mode */    mmi_camera_preview_update_capture_size(); #ifndef __MMI_CAMERA_4_OSD_LAYER__ /* create preview resource */    mmi_camera_preview_create_resource(); /* config layer/lcd orientation if HORIZONTAL_CAMERA */ #if defined(__CAMERA_OSD_HORIZONTAL__)    mmi_camera_config_layer_orientation(); #endif #else /* config layer/lcd orientation if HORIZONTAL_CAMERA */ #if defined(__CAMERA_OSD_HORIZONTAL__)    mmi_camera_config_layer_orientation(); #endif /* create preview resource */ mmi_camera_preview_create_resource(); #endif }

Page 112: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ05799][Camera]如何将手机拍到的照片直接

通过MMS发送到指定号码 [DESCRIPTION] 在拍完照片以后,可以直接将拍到的照片通过MMS发送到指定号码 [SOLUTION] 请参考如下流程实现: 1)camera forward下添加相关菜单项 2)camera中添加全局变量; MMI_bool auto_send_flag=false; 3) 点击贵司添加的自动发送的菜单项后,在其handler中,首先设置标志位:auto_send_flag = true;  Call mms_content_insert_hdlr(),参数带 g_camera_cntx.captured_filepath; 4)在函数mmi_uc_get_mms_setting()中,屏蔽启UC Editor的部分: if(GetExitScrnID() == SCR_ID_UC_PROCESSING && auto_send_flag != true)     mmi_uc_entry_write_msg(); 4)设置自动发送的指定接收人: U16 special_addr[20]= L"13500000000";//指定接收人号码; U16 add_addr[20]; mmi_ucs2cpy((U8 *)add_addr,(U8 *)special_addr); //TO收件人为一个指定地址;        result = srv_uc_add_address(                    g_uc_p->main.instance,                    //g_uc_p->done.to,                    (U8*)add_addr,                    MMI_UC_ADDRESS_TYPE_PHONE_NUMBER,                    g_uc_p->done.current_addr_type); srv_uc_update_msg_size(g_uc_p->main.instance); 5)选择通过那张卡发送MMS:  可参考mmi_uc_pre_entry_sim_option()的实现,根据当前插卡的情况(即:g_uc_p->srv_sim_info-

>is_sim1/2_valid),去分别设置g_uc_p->srv_send_info->send_sim_id的值; 当双卡都有效时,需要指定一张卡发送彩信; 6)最后,Call API:mmi_uc_process_send()完成发送;

Page 113: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01622][MMI] Camera Setting子菜单按

Back键不直接退回Preview界面 [DESCRIPTION] 进入camera后,按option进入setting菜单,进入任何一下setting选项,按右键back返回,此时返回preview界面,而

不是返回option的上一级菜单 [KEYWORD] 10A

Camera MMI

[SOLUTION] 在函数mmi_camera_entry_option_menu_screen()中把 g_camera_cntx.setting_menu_gid = cui_menu_create(                                                g_camera_cntx.cur_gid,                                                CUI_MENU_SRC_TYPE_RESOURCE, CUI_MENU_TYPE_FROM_RESOURCE,                                                MENU_ID_CAMERA_OPTION,                                                MMI_TRUE,                                                NULL);    改为: g_camera_cntx.setting_menu_gid = cui_menu_create(                                                g_camera_cntx.cur_gid,                                                CUI_MENU_SRC_TYPE_RESOURCE,                                               CUI_MENU_TYPE_APPSUB,                                                MENU_ID_CAMERA_OPTION,                                                MMI_TRUE,                                                NULL);

Page 114: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01470][MMI] 如何修改Camera的默认设置? [DESCRIPTION] Camera默认设置的修改 [KEYWORD] Camera MMI

[SOLUTION] 1、进入Camera之后,会进行设置初始值的操作。   mmi_camera_entry_app_screen 函数中,调用mmi_camera_load_setting 函数,先从

NVRAM_EF_CAMERA_SETTING_LID中读取值,因为此条LID默认值是NVRAM_EF_FF_DEFAULT(即0xFF),在代码中就会利用这

个值看是否是第一次进行初始化。如果是的话,那就调用mmi_camera_restore_setting函数,把Camera部分的默认设置

写到NVRAM这条LID中去。    因此真正写Camera部分默认设置是在mmi_camera_restore_setting函数中完成的。NVRAM_EF_FF_DEFAULT 的作用

,只是在mmi_camera_load_setting 函数中用来判断是否是第一次初始化。 如果想修改这个判断标志的话,是可以的,但不建议直接修改NVRAM_EF_FF_DEFAULT,因为有其它LID初始值也用到

NVRAM_EF_FF_DEFAULT。 2、如需要修改,请按以下方法修改:   #if defined (__MMI_CAMERA__) && !defined(__MMI_CAMCORDER__)   {    NVRAM_EF_CAMERA_SETTING_LID,    NVRAM_EF_CAMERA_SETTING_SIZE,    NVRAM_EF_CAMERA_SETTING_TOTAL, NVRAM_EF_FF_DEFAULT, //这里改成您需要的值,并且需要修改mmi_camera_load_setting函数中的判断。    NVRAM_ATTR_AVERAGE,    NVRAM_CATEGORY_USER,    "MP1B",    VER(NVRAM_EF_CAMERA_SETTING_LID),    "CAMERA SETTING\0",     NVRAM_RESERVED_VALUE     }     #endif/* defined (__MMI_CAMERA__) && !defined(__MMI_CAMCORDER__) */

Page 115: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01473][MMI]Add Frame mode下只有VGA

,1MP,2MP三种Capture Size [DESCRIPTION] Normal Capture mode 下有6种image size的,分别为:Wallpaper,WQVGA,VGA,1MP,2MP,3MP ,而Add Frame

mode下却只有三种image size:分别为:VGA ,1MP,2MP。 [KEYWORD] MMI

Others

[SOLUTION] Add frame是用overlay去implement的,由于overlay limitation (overlay的layer必须与capture resolution成比例

)的关系,而 VGA , 1M and 2M 刚好可以用同一个大小的overlay 去 implement,其它resolution就都要implement不

同大小的overlay layer size。 Add frame的图都是GIF,当初08A在做的时候 GDI的 GIF没有support resize with transparent color

[gdi_image_draw_resized_id_with_transparent_color]去让GIF resize到不同大小的overlay layer,所以没办法

support一组图适合所有的capture resolution。如果为所有的resolution都做的话又太浪费ROM size去存这么多图。 不过大约在08B W09.12以后就可以用同一组GIF图去resize到不同overlay layer的dimension。已经请GDI support了。

但是capture resolution越大加框的效果就越差,锯齿状会越明显。

Page 116: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01471][MMI]Camcorder中开启Face

Detection后,某些功能无法使用 [DESCRIPTION] 当Face Detection开启后,某些Capture Mode, Scene mode, AF range, White Balance中的项目会不能使用,比如Add

Frame ,Infinite,landscape, night, sport, document, infinite, [WB]tungsten。 [KEYWORD] Camera MMI

[SOLUTION] 当时会Disable掉一些feature应该是因为一般状况并不会在开启这feature下做face detection,所以才会在face

detection enabled时,自动把这些不必要的feature disable掉,或这些feature enabled时, 把face detection

disabled掉。 另外可能就是face detection本身limitation的问题,如Capture Mode里的panorama主要是应用在拍摄环场远景, 在这

mode下就不需support face detection。而Scene mode与AF range也是同样道理。 White Balance的话, 因为tungsten下的人脸肤色让face detection rate变差许多, 所以才会在当时把它disabled掉。

Page 117: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01485][MMI]Camcorder中的Entry 键实现一

键先对焦后拍照 [DESCRIPTION] Camcorder中的Entry 键实现一键先对焦后拍照 [KEYWORD] Camera MMI

[SOLUTION] 修改Entry 键的callback ,使得流程由最初的直接拍照,变为先对焦,对焦结束后直接拍照。修改方法如下: 请修改CamcorderApp文件: 1、修改mmi_camco_enter_cam_focusing_state函数   注释掉函数最后的如下语句    //  mmi_camco_cam_focus_set_key_hdlr(); 2、修改 mmi_camco_enter_cam_focused_state函数   注释掉最后的如下语句:      //mmi_camco_cam_focus_set_key_hdlr();   函数最后加上如下语句:      mmi_camco_cam_capture_botton_pressed();     3、    mmi_camco_cam_preview_set_key_hdlr函数中:         if (mmi_camco_setting_get_setting_capability(MMI_CAMCO_SETTING_AFRANGE) !=

MMI_CAMCO_SETTING_CAP_DRV_NOT_SUPPORT &&            mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_AFRANGE) != MMI_CAMCO_AFRANGE_INFINTE)        {            SetKeyHandler(mmi_camco_cam_preview_autofocus_button_pressed, KEY_CAMERA,

KEY_HALF_PRESS_DOWN);        }   如上这段code后面加上如下code:               if(mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_CAPMODE) ==

MMI_CAMCO_CAPMODE_CONT_SHOT)       {           SetKeyHandler(mmi_camco_cam_capture_botton_pressed, KEY_ENTER, KEY_EVENT_DOWN);//add this 连

拍则直接拍       }       else       {           SetKeyHandler(mmi_camco_cam_preview_autofocus_button_pressed,KEY_ENTER,KEY_EVENT_DOWN);//add

this 非连拍则先对焦       } //        SetKeyHandler(mmi_camco_cam_capture_botton_pressed, KEY_CAMERA, KEY_EVENT_DOWN);  注释掉 //     SetKeyHandler(mmi_camco_cam_capture_botton_released, KEY_CAMERA, KEY_EVENT_UP);注释掉 原本是最后两句,现在是注释掉,加上前面的这段code,请注意把KEY_ENTER改为 KEY_CAMERA。 4、    mmi_camco_cam_autofocus_result_hdlr函数(6238宏下包的函数)

Page 118: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

       mmi_camco_osd_draw_osd(); 语句后加入如下code                if (result_ind.af_result == MDI_AF_SEARCH_STATUS_FOUND_SUCCESS)                          {                    }         else if (result_ind.af_result == MDI_AF_SEARCH_STATUS_SWITCH_MACRO)         {             mmi_camco_enter_state(MMI_CAMCO_STATE_CAM_PREVIEW);         }        else        {                mmi_camco_cam_capture_botton_pressed();             }。

Page 119: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01483][MMI]Camera 回显界面来电话,挂断

后回到Preview界面,希望可以不回到Preview界

面,还回到回显界面 [DESCRIPTION] Camera 回显界面来电的时候,挂断后回到Preview界面,希望可以不回到Preview界面,还回到回显界面 [KEYWORD] Camera MMI

[SOLUTION] 在保存确认界面,拍照的后encode的jpeg图片是存在一个buffer中的,如果此时来电,则会退出camera,buffer也会被

释放。所以必须在来电前把jpeg buffer保存下来,并且设好flag,当来电结束,再次进入camera时,根据flag来判断

是否进入保存确认界面,显示图片时使用备份的jpeg buffer即可。具体修改方法如下: 1、在CameraApp.c中定义如下全局变量:   int myflag=0;      S32 mywidth;   S32 myheight;       U32 my_capture_size;   PU8 myptr; 2、mmi_camera_entry_app_screen_internal函数中进行如下修改:   else    {        /* entry preview */    if (myflag==1)    {            CAMERA_ENTER_STATE(CAMERA_STATE_SAVE_CONFIRM);    }    else    {        CAMERA_ENTER_STATE(CAMERA_STATE_PREVIEW);    }   } 3、mmi_camera_entry_save_confirm_state函数中进行如下修改:    if (g_camera_cntx.is_tileshot)    {    #ifdef __CAMERA_FEATURE_CONT_SHOT_TILE__    #ifdef __CAMERA_FEATURE_SELF_CAPTURE__        /* draw sublcd icon */        mmi_camera_sublcd_draw_icon();    #endif /* __CAMERA_FEATURE_SELF_CAPTURE__ */        if (g_camera_cntx.osd_rotate == CAMERA_DISPLAY_ROTATE_0 && g_camera_cntx.setting.add_frame != 0)            gdi_layer_set_blt_layer(                g_camera_cntx.tileshot_result_layer_handle,

Page 120: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

               g_camera_cntx.add_frame_layer_handle,                g_camera_cntx.osd_layer_handle0,                0);        else            gdi_layer_set_blt_layer(g_camera_cntx.tileshot_result_layer_handle,

g_camera_cntx.osd_layer_handle0, 0, 0);    #else /* __CAMERA_FEATURE_CONT_SHOT_TILE__ */        MMI_ASSERT(0);    #endif /* __CAMERA_FEATURE_CONT_SHOT_TILE__ */    }    else    {        /* clear base layer background */        mmi_camera_preview_clear_background();        gdi_layer_set_blt_layer(g_camera_cntx.base_layer_handle, g_camera_cntx.osd_layer_handle0, 0, 0);       //以下有改动:        if (myflag==1)         {                g_camera_cntx.capture_size=my_capture_size;                image_width=mywidth;                image_height=myheight;                result = 1;          }    else      {            /* get file dimension */            result = gdi_image_jpeg_get_dimension(                        g_camera_cntx.capture_buf_ptr,                        g_camera_cntx.capture_size,                        &image_width,                        &image_height);                             mywidth=image_width;                     myheight=image_height;             my_capture_size=g_camera_cntx.capture_size;            myptr=(U8*)med_alloc_ext_mem(my_capture_size);             memcpy(myptr,g_camera_cntx.capture_buf_ptr,my_capture_size);             kal_prompt_trace(MOD_BT,"width1=%d",mywidth);                   myflag=1;             }        /* set clip region as content region */        gdi_layer_reset_clip(); #if 0 //DRV_JPG_ENC_DIRECT_COUPLE_SUPPORT        if (g_camera_cntx.is_direct_couple == TRUE)        {            PU8 src;

Page 121: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

           PU8 dest;            U16 src_width, src_height, src_pitch;            S32 src_offset_x=0, src_offset_y=0;            S32 dest_pitch, dest_offset_x, dest_offset_y;            gdi_rect_struct dest_clip;            gdi_layer_get_buffer_ptr(&dest);            src = g_camera_cntx.direct_couple_buffer;            src_pitch = g_camera_cntx.resized_width;            dest_pitch = g_camera_cntx.osd_UI_device_width;            dest_clip.x1 = g_camera_cntx.resized_offset_x;            dest_clip.y1 = g_camera_cntx.resized_offset_y;            dest_clip.x2 = g_camera_cntx.resized_offset_x + g_camera_cntx.resized_width - 1;            dest_clip.y2 = g_camera_cntx.resized_offset_y + g_camera_cntx.resized_height - 1;            src_width = g_camera_cntx.resized_width;            src_height = g_camera_cntx.resized_height;            dest_offset_x = g_camera_cntx.resized_offset_x;            dest_offset_y = g_camera_cntx.resized_offset_y;            /* use 2D copy from cache layer to thumbnail layer */            gdi_2d_memory_blt_without_transpant_check(                src,                src_pitch,                src_offset_x,                src_offset_y,                src_width,                src_height,                dest,                dest_pitch,                dest_offset_x,                dest_offset_y,                dest_clip,                GDI_MAINLCD_BIT_PER_PIXEL);            g_camera_cntx.is_direct_couple = FALSE;        }        else #endif       // {                 /* calc image region */            image_region_width = g_camera_cntx.osd_UI_device_width;            image_region_height = g_camera_cntx.osd_UI_device_height;            image_region_offset_x = 0;            image_region_offset_y = 0;            if (g_camera_cntx.active_camera_osd_ptr->title.is_draw_mmi_title_bar)            {                image_region_height -= (MMI_title_height + MMI_title_y);                image_region_offset_y += (MMI_title_height + MMI_title_y);            }

Page 122: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

           if (g_camera_cntx.active_camera_osd_ptr->softkey.is_draw_mmi_softkey)            {                image_region_height -= (MMI_button_bar_height);            }            if (result >= 0)            {                if ((image_region_width >= image_width) && (image_region_height >= image_height))                {                    /* align preview window at the center of screen */                    offset_x = image_region_offset_x + ((image_region_width - image_width) >> 1);                    offset_y = image_region_offset_y + ((image_region_height - image_height) >> 1);             if(myflag==0)                    gdi_image_jpeg_draw(offset_x, offset_y, g_camera_cntx.capture_buf_ptr,

g_camera_cntx.capture_size);           else              gdi_image_jpeg_draw(offset_x, offset_y, myptr, g_camera_cntx.capture_size);                }                else                {                    gdi_image_util_fit_bbox(                        image_region_width,                        image_region_height,                        image_width,                        image_height,                        &resized_offset_x,                        &resized_offset_y,                        &resized_width,                        &resized_height);                   if(myflag==0)                    gdi_image_jpeg_draw_resized(                        resized_offset_x + image_region_offset_x,                        resized_offset_y + image_region_offset_y,                        resized_width,                        resized_height,                        g_camera_cntx.capture_buf_ptr,                        g_camera_cntx.capture_size);           else           gdi_image_jpeg_draw_resized(                        resized_offset_x + image_region_offset_x,                        resized_offset_y + image_region_offset_y,                        resized_width,                        resized_height,                        myptr,                        g_camera_cntx.capture_size);                }          //  }  4、mmi_camera_save_confirm_rsk_press函数的最后加上如下代码:

Page 123: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

     if(myflag==1)     {        myflag=0;        med_free_ext_mem((void**)&myptr);    } 5、mmi_camera_save_confirm_save_file函数中进行如下更改:    if (file_handle > 0)        {           if(myflag==0)            file_check = FS_Write(file_handle, (void*)g_camera_cntx.capture_buf_ptr,

g_camera_cntx.capture_size, (U32*) & written);            else                {             file_check = FS_Write(file_handle, (void*)myptr, g_camera_cntx.capture_size, (U32*) &

written);         myflag=0;          med_free_ext_mem((void**)&myptr);                }            FS_Close(file_handle); 6、请在mmi_camera_del_scr_callback函数中的 return 0; 前加入如下代码:   if(myflag==1)   {    myflag=0;    med_free_ext_mem((void**)&myptr);   }

Page 124: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01627][MMI]Cosmos版本,当

HORIZONTAL_CAMERA关闭时Preview Layer发生偏

移 [DESCRIPTION] COSMOS版本,当HORIZONTAL_CAMERA关闭时,第一次进入camera preview正常,按advance setting按钮进行设置,返回

后preview layer的位置在LCD的右上角显示 [KEYWORD] Camera MMI

[SOLUTION] 此问题的原因是,advance setting的界面是横屏显示,而当HORIZONTAL_CAMERA关闭时,preview layer界面是竖屏显

示,当横竖屏进行切换时需要重新restart preview,修改方法如下: void OSDCamPreviewState::onCPEffctDoneTick(VfxTimer *source) {    .......    if(m_mode == VAPP_CAMCO_PREVIEW_MODE_ADSETTING)    { //添加如下判断条件        #if defined (HORIZONTAL_CAMERA)                if(m_cntx.setting->getCurrCam() == VAPP_CAMCO_SENSOR_SUB_CAMERA ||           m_cntx.setting->getValue(VAPP_CAMCO_SETTING_CAPSIZE) == VAPP_CAMCO_CAPSIZE_WALLPAPER)        #endif           {            m_cntx.setting->needRestartPreview();            }        evtHdlr->camPreviewHdlr(VAPP_CAMCO_EVT_DE_FORCE_HORZ, NULL);             }   ......      if(previousMode == VAPP_CAMCO_PREVIEW_MODE_ADSETTING)        { //添加如下判断条件        #if defined (HORIZONTAL_CAMERA)                        if(m_cntx.setting->getCurrCam() == VAPP_CAMCO_SENSOR_SUB_CAMERA ||           m_cntx.setting->getValue(VAPP_CAMCO_SETTING_CAPSIZE) == VAPP_CAMCO_CAPSIZE_WALLPAPER)        #endif        {            // vertical v.s. horizontal bar            updateSettingBar(-1);        }    }    

Page 125: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

   ...... } void OSDRecPreviewState::onCPEffctDoneTick(VfxTimer *source) {    ......    if(m_mode == VAPP_CAMCO_PREVIEW_MODE_ADSETTING)        { //添加如下判断条件        #if defined (HORIZONTAL_CAMERA)                        if(m_cntx.setting->getCurrCam() == VAPP_CAMCO_SENSOR_SUB_CAMERA)        #endif            {            m_cntx.setting->needRestartPreview();            }            evtHdlr->recPreviewHdlr(VAPP_CAMCO_EVT_DE_FORCE_HORZ, NULL);    }   ......    if(previousMode == VAPP_CAMCO_PREVIEW_MODE_ADSETTING)        { //添加如下判断条件        #if defined (HORIZONTAL_CAMERA)                if(m_cntx.setting->getCurrCam() == VAPP_CAMCO_SENSOR_SUB_CAMERA)        #endif            {            // vertical v.s. horizontal bar            updateSettingBar(-1);        }    }   ......     }

Page 126: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01488][MMI]Exif Tag Information中哪些是

来自ISP的 [DESCRIPTION] [KEYWORD] JPEG File

[SOLUTION] #define exif_tag_ExposureTime 0x829a /* R, Exposure time */ #define exif_tag_ExposureProgram 0x8822 /* S, Exposure Program */ #define exif_tag_ISOSpeedRatings 0x8827 /* S, ISO speed ratings */ #define exif_tag_ExposureBiasValue 0x9204 /* SR, Exposure bias */ #define exif_tag_MeteringMode 0x9207 /* S, Metering mode */ #define exif_tag_LightSource 0x9208 /* S, Light source */ #define exif_tag_Flash 0x9209 /* S, Flash */ #define exif_tag_PixelXDimension 0xa002 /* L, Valid image width */ #define exif_tag_PixelYDimension 0xa003 /* L, Valid image height */ #define exif_tag_DigitalZoomRatio 0xa404 /* R, Digital zoom ratio */ #define exif_tag_SceneCaptureType 0xa406 /* S, Scene capture type */ 如果是RAW DATA sensor,38平台会调用Aaa_ae_v2.c中的exif_update_cam_para_struct()函数来写exif信息,如果是

YUV sensor,38平台会调用camera_yuv_process_v2.c中定义的exif_update_yuv_cam_para_struct()函数来写exif信息

。前者的exif信息来自于BB的ISP,后者的exif信息来自于sensor的ISP。

Page 127: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01621][MMI]MT6235平台Panorama拍照支持拍

1M与2M大小 [DESCRIPTION] MT6235平台的Panorama拍照默认只支持拍VGA大小,客户要求实现拍1M与2M大小 [KEYWORD] MT6235

Others

[SOLUTION] MT6235平台需要的memory比38要大一些, 因为38是存三张JPEG,decode出来去接的,而35存的是三张YUV420 image直接去接, 原因是35是软解,速度比较慢。 可以按以下方法进行修改: 1、med_global.h: /************************************************************** * 20. Camera Panorama Support **************************************************************/ #if defined(__MED_CAM_PANORAMA_VIEW_SUPPORT__)    #if MT6238_SERIES    #define CAM_BG_STITCH_EXT_MEM_SIZE (2402*1024)    #define MAX_CAM_PANORAMA_INT_MEM_SIZE (96*1024)    #define MAX_CAM_PANORAMA_EXT_MEM_SIZE (4096*1200*2) /* Panorama image buffer */    #else    #define CAM_BG_STITCH_EXT_MEM_SIZE (2402*1024)    #define MAX_CAM_PANORAMA_INT_MEM_SIZE (96*1024)    #define MAX_CAM_PANORAMA_EXT_MEM_SIZE (4096*1200*2) /* Panorama image buffer */    #endif #else    #define CAM_BG_STITCH_EXT_MEM_SIZE (0)    #define MAX_CAM_PANORAMA_INT_MEM_SIZE (0)    #define MAX_CAM_PANORAMA_EXT_MEM_SIZE (0) #endif 2、memory有所增大 MMI_features_camcorder.h (plutommi\customer\custresource\pluto_mmi): #if defined(MT6235) || defined(MT6235B)        #ifdef __MMI_CAMCO_FEATURE_CAM_IMGSZIE_SUPPORT_2M__            #define MMI_CAMCO_FEATURE_CAM_PANORAMA_SHOT_MEM_SIZE (2900*1024*MMI_CAMCO_FEATURE_CAM_PANORAMA_SHOT_IMAGE_COUNT)        #elif defined (__MMI_CAMCO_FEATURE_CAM_IMGSZIE_SUPPORT_1M__)            #define MMI_CAMCO_FEATURE_CAM_PANORAMA_SHOT_MEM_SIZE (1800*1024*MMI_CAMCO_FEATURE_CAM_PANORAMA_SHOT_IMAGE_COUNT)        #else

Page 128: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

           #define MMI_CAMCO_FEATURE_CAM_PANORAMA_SHOT_MEM_SIZE (450*1024*MMI_CAMCO_FEATURE_CAM_PANORAMA_SHOT_IMAGE_COUNT)        #endif #else      …… #endif 3、mcu\media\camera_v2\include\camera_post_process_v2.h #define    PANO_MAX_IMG_NUM                 (8) #if (defined(DRV_ISP_6238_SERIES)) #define    MAX_PANO_IMG_WIDTH              4092                                // maximum panorama img

width #define    MAX_PANO_IMG_HEIGHT             3070                                // maximum panorama img

width #elif(defined(DRV_ISP_6235_SERIES)) #define    MAX_PANO_IMG_WIDTH              4092 //1832                            // maximum panorama

img width #define    MAX_PANO_IMG_HEIGHT             3070 //1374                            // maximum panorama

img width #endif

Page 129: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01789][MMI]MT6252 11B 30W摄像头插值到

130W不生效 [DESCRIPTION] 在MT6252 11B 版本为11BW1132MP上插值,30万摄像头插值到130万,拍照设为1280*960时,照片尺寸仍然是640*480 [KEYWORD] MT6252

11B

Interpolation

[SOLUTION] Need Patch. Patch ID:  MAUI_03037347

Page 130: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01480][MMI]SYNC_LCM_SUPPORT=TRUE,导致

进入Camera或播Video冻屏问题 [DESCRIPTION] n/a [KEYWORD] Others

[SOLUTION] 由于Baseband搬数据到GRAM与LCM把GRAM的数据刷到LCD上不一致造成的,会出现tearing,就是一瞬间屏幕撕裂的现象

。 为了专门解决这个问题,在make文件中设置SYNC_LCM_SUPPORT=TRUE,并且把LCM的VSYNC(HMARK)脚接到Baseband的一

个中断上。这样每一次LCD把GRAM的数据搬完以后,LCM的VSYNC(HMARK)脚会向baseband发送中断,baseband再往

LCD搬数据,刷屏。 如果定义了SYNC_LCM_SUPPORT=TRUE,硬件上没有接VSYNC(HMARK)脚,必然会冻屏。 所以碰到冻屏的问题,最好先确认一下是否该宏设为TRUE了,但是没有接好VSYNC脚。

Page 131: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01635][MMI]在52D(Neptune MMI) Capture

Size只有CIF,如何修改以支持VGA Capture

Resolution [DESCRIPTION] MT6252D默认是使用Neptune MMI,因为Neptune MMI默认只支持到CIF的Capture Resolution,若需要支持VGA

Capture,需要做一些修改。而且若是ULC(Ultra Low Cost)的版本,默认会定义宏__ULC_VGA_PRETEND_CIF__(因为

Demo Phone上接的Sensor是VGA的,但为了规划Neptune MMI只支持CIF,所以为了验证CIF,就加了这个宏。)。 [KEYWORD] MT6252

Interpolation

[SOLUTION] 52D(Neptune MMI)默认是只支持CIF的Sensor, 若需要支持VGA的Sensor或需要插值到VGA, 则需要修改代码, 因为是

Neptune MMI,修改方跟以往法会稍有不同. 1.    mcu\make\option.mak 中将__ULC_VGA_PRETEND_CIF__ 去掉. 2.     mcu\custom\drv\camera_common\sensor_capability.h 中需要保证__IMAGE_SENSOR_03M__有被定义到. 3.     mcu\lcmmi\mtkapp\camera\camerainc\CameraResDefs.h 这个文件里面还是会强制定义__ULC_VGA_PRETEND_CIF__,也得Mark掉. #ifndef __ULC_VGA_PRETEND_CIF__ #define __ULC_VGA_PRETEND_CIF__ #endif

Page 132: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01492][MMI]在Camcorder Preview下去查看

照片会提示insufficient memory的作用 [DESCRIPTION] 在camcorder preview状态下,进入imageviewer去查看所拍照片,单击view查看时会提示insufficient memory。 [KEYWORD] Camera MMI

[SOLUTION] 1、这种提示是一种正常的现象,因为在进入camcorder进行preview的时候会申请很大的一块memory,这样在

camcorder下进入imageview去查看图片就会出现memory不够的情况,所以就需要弹出insufficient memory提示去关闭

camcorder后才能进入imageview。 2、amcorder和imageviewer分配内存都是在ASM分配的,所以可以在文件App_mem_config.h中通过加大

APPLIB_MEM_AP_POOL_SIZE的值来解决此问题。  具体需要加大多少memory可以参考ImageViewerEXApp.c文件mmi_ivex_entry_view_screen_ext()函数中

mmi_ivex_create_app_based_memory_adm (MMI_IVEX_FMGR_APP_BASED_MEM_POOL_SIZE) 所需要分配的memory的大小。

所增加的memory应该比memory MMI_IVEX_FMGR_APP_BASED_MEM_POOL_SIZE要大一些。

Page 133: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01474][MMI]如何修改Camcorder 中camera

的Preview Size [DESCRIPTION] 如何修改Camcorder 中camera 的preview size [KEYWORD] Camera MMI

[SOLUTION] Camcorder 中的camera preview size 修改不同于其他平台的camera,camera的preview size 是在

MMI_features_camera.h 中定义的,而 Camcorder 中是通过mmi_camco_cam_get_preview_window() 函数根据不同的

image size计算来的。所以修改mmi_camco_cam_get_preview_window() 函数中的计算方法既可。

Page 134: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01459][MMI]如何修改MP3,MP4,CAMERA的默认

存储路径 [Description]  修改MP3,MP4,CAMERA的默认路径 [KEYWORD] Camera MMI

[Solution] 1、video的改法:   mmi_vdoply_load_setting()函数的下面部分    if (g_vdoply_cntx.storage == 0xffff)    {        is_inited_before = FALSE;        g_vdoply_cntx.storage = (U16)MMI_PUBLIC_DRV;    }    中的g_vdoply_cntx.storage = (U16)MMI_PUBLIC_DRV; 改为g_vdoply_cntx.storage = (U16)MMI_CARD_DRV; 2、MP3的改法:   mmi_audply_read_settings() 函数的下面部分    if(!mmi_fmgr_is_drive_letter_valid(g_audply.preferred_list))    {        g_audply.preferred_list = (U8)MMI_PUBLIC_DRV;    }    中的g_audply.preferred_list = (U8)MMI_PUBLIC_DRV; 改为g_audply.preferred_list = (U8)MMI_CARD_DRV; 3、CAMERA的改法:   mmi_camera_get_storage_disk_path() 函数的下面部分    else    {        g_imgview_context.storage = (U16) MMI_PUBLIC_DRV;        if (FS_NO_ERROR !=                             FS_GetDevStatus(g_imgview_context.storage

,FS_MOUNT_STATE_ENUM))            return FALSE;        sprintf(buf, "%c:\\", (U8)g_imgview_context.storage );        AnsiiToUnicodeString(drv_buf, buf);        return TRUE;     }    中的g_imgview_context.storage = (U16) MMI_PUBLIC_DRV;改为g_imgview_context.storage = (U16)

MMI_CARD_DRV; 改过之后,请重新REMAKE MTKAPP模块,之后还要FORMAT FAT。

Page 135: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01604][MMI]安装第三方java软件,进入

camera去拍照时发生assert [DESCRIPTION] 安装第三方java软件,进入camera去拍照时发生assert

[KEYWORD] Camera MMI

Camera Hang

[SOLUTION] 从log来看assert的代码如下图所示,原因是camera进行拍照时,如果走的capture from isp流程,则所拍照的width必

须是16的倍数。修改方法为,在函数jma_video_player_set_display_size()中添加如下代码。 jma_video_player_set_display_size() { …… else if (video_player.device_type == JAVA_MEDIA_ANIMA_PLAYER_DEVICE)    {        JMA_CS_LEAVE(KAL_FALSE); /* GIF Player does not support resize */    } if (width %16 != 0)            {                width = ((width +15) >> 4) << 4;             } /* MT622x hardware limitation */ #if ((LCD_WIDTH == 240) && (LCD_HEIGHT == 320))    width = (width > 240) ? 240 : width;    height = (height > 320) ? 320 : height; #elif ((LCD_WIDTH == 176) && (LCD_HEIGHT == 220))    width = (width > 176) ? 176 : width;    height = (height > 220) ? 220 : height; #endif /* LCD_WIDTH & LCD_HEIGHT */ }

Page 136: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01597][MMI]安装第三方的应用软件,运行

QQ或发message,此时去拍照黑屏重启 [DESCRIPTION] 安装第三方的应用软件,运行QQ或发message,此时去拍照黑屏重启 [KEYWORD] Camera MMI

Camera Hang

[SOLUTION] 从MemoryDump分析来看,g_med_ext_mem这块ADM Pool的ADM_MB控制块被踩到引起的,有效数据的指针向前偏移了

4B,从而覆盖了ADM_MB->next指针值,从而在释放时发生异常 。 原因是第三方传下来的preview layer大小不是16的倍数造成的,因为35平resizer有个限制,resizer出来的数据必须

是16的倍数,所以如果传下去的参数大小不是16的倍数,则会和resizer出来的数据不一致,从而会发生memory被踩坏

的问题,解决方法如下,在以下函数中添加红色代码,在传入参数之前,把memory的大小调整为16的倍数。 cam_preview_req_hdlr(ilm_struct *ilm_ptr) { ………. #if defined(__MED_CAM_FD_SUPPORT__)        cam_context_p->fd_enable = preview_param.fd_enable = req_p->fd_enable;        CAM_FD_ENTER_STATE(CAM_FD_STATE_STOPPED);       ……… #endif /* defined(__MED_CAM_FD_SUPPORT__) */ if (req_p->image_buffer_size %16 != 0)            {                req_p->image_buffer_size = ((req_p->image_buffer_size + 15) >> 4) << 4;             }        /* use internal memory for preview buffer if enough */        if (((req_p->image_buffer_size * 2) + MEM_OVERHEAD) < med_int_left_size())        {            CAM_BUFFER_TRACE(1);            …….            cam_context_p->ext_frame_buffer_p = 0;        } ………. }

Page 137: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01645][MMI]当Horizontal Camera打开的时

候,非Wallpaper Size希望Option菜单是竖着显

示 [DESCRIPTION] Camera/Video的版本,有些客户会需望将Horizontal Camera打开的时候,非Wallpaper Size时希望Option菜单还是竖

着显示。 [KEYWORD] 09A

10A

Camera MMI

[SOLUTION] 目前有在下面两个版本上实现,所有修改使用宏__HORIZONTAL_CAMERA_WT_PORTRAIT_OPTION__包起来了,具体修改见下

面的Patch文件: 09A.W09.52MP

10A.W11.08MP

Page 138: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01517][MMI]当Main LCD在Multimedia

App(Camera/Video)时刷新Sub LCD系统黑屏重

启 [DESCRIPTION] 出现这种情况比较常见的现象,Dual LCD项目是在Camera/Video Preview的时候收到信息时会在Sub LCD上显示显示一

个信息提醒,或者是Sub LCD上显示时间,然后在更新时间的时候出现问题。通过Catcher.exe Log或者Memory Dump可

以分析出,出现问题的地方如下:lcd_update_idp_series_6236.clcd_fb_update_19_26_28_series(){

      ……#ifdef DUAL_LCD ……        ASSERT((LCD_STANDBY_STATE == main_lcd_operation_state) ||

(LCD_SLEEP_STATE == main_lcd_operation_state)); ……}通过代码可以看出Main LCD必须处于Sleep或Standby状态

的时候才允许更新Sub LCD。因为Main LCD & Sub LCD是共用Data Bus & Control Pin的,只是通过CS信号来选择当前

需要刷新的LCD,所以在Camera/Video Preview的时候,Main LCD牌HW/FW Update状态,自然不允许Sub LCD更新。若此

时将Camera Preview停下来,那必需Drop掉1~2或再多帧(取决于Sub LCD刷屏速度),这样子就会看到Preview画面卡

一下,是没法接受的。 [KEYWORD] Camera MMI

Camera Hang

[SOLUTION] 解决方案有两种: 1、    从MMI修改,当Camera处于Preview的时候,不让Sub LCD更新。 [建议使用这种方法] A、    在进入Camera/Video Preview的时候加下面的代码 gdi_lcd_set_active(GDI_LCD_SUB_LCD_HANDLE); gdi_lcd_freeze(TRUE);        // Freeze the sub lcd gdi_lcd_set_active(GDI_LCD_MAIN_LCD_HANDLE); B、    在退出的时候加下面的代码 gdi_lcd_set_active(GDI_LCD_SUB_LCD_HANDLE); gdi_lcd_freeze(FALSE);        // Un-freeze the sub lcd. gdi_lcd_set_active(GDI_LCD_MAIN_LCD_HANDLE); 2、    从LCD Interface里挡,判断当前如果处于HW/FW Update状态,则Return,添加下面蓝色部分的代码。 lcd_update_idp_series_6236.c void lcd_fb_update_19_26_28_series(xxx) {                      #ifdef DUAL_LCD                ... ...                        {            if ((KAL_FALSE == lcd_para->block_mode_flag) && (LCD_UPDATE_MODULE_MMI == lcd_para-

>module_id))               lcd_para->lcd_block_mode_cb();            lcd_power_ctrl(KAL_FALSE);

Page 139: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

           return;         }                if (LCD_UPDATE_MODULE_MMI == lcd_para->module_id)                {                        if ((main_lcd_operation_state == LCD_HW_UPDATE_STATE)                                || (main_lcd_operation_state == LCD_FW_UPDATE_STATE)                                || (main_lcd_operation_state == LCD_DC_UPDATE_STATE))                        {                                if (KAL_FALSE == lcd_para->block_mode_flag)                                {                                        if (lcd_para->lcd_block_mode_cb != NULL)                                        {                                                lcd_para->lcd_block_mode_cb();                                        }                                }                                lcd_power_ctrl(KAL_FALSE);                                return;                        }                }                ASSERT((LCD_STANDBY_STATE == main_lcd_operation_state) || (LCD_SLEEP_STATE ==

main_lcd_operation_state));        …… }

Page 140: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01625][MMI]当按拍照键时先实现自动对焦的

功能,再进行拍照 [DESCRIPTION] 模拟两段式拍照键,当按ENTER键拍照时先实现自动对焦的功能,再进行拍照 [KEYWORD] Camera MMI

[SOLUTION] 修改Entry 键的callback ,使得流程由最初的直接拍照,变为先对焦,对焦结束后直接拍照。修改方法如下: 请修改CamcorderApp文件: 1、修改mmi_camco_enter_cam_focusing_state函数   注释掉函数最后的如下语句    //  mmi_camco_cam_focus_set_key_hdlr(); 2、修改 mmi_camco_enter_cam_focused_state函数   注释掉最后的如下语句:      //mmi_camco_cam_focus_set_key_hdlr();   函数最后加上如下语句:      mmi_camco_cam_capture_botton_pressed();     3、    非FTE版本做如下修改: mmi_camco_cam_preview_set_key_hdlr函数中:         if (mmi_camco_setting_get_setting_capability(MMI_CAMCO_SETTING_AFRANGE) !=

MMI_CAMCO_SETTING_CAP_DRV_NOT_SUPPORT &&            mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_AFRANGE) != MMI_CAMCO_AFRANGE_INFINTE)        {            SetKeyHandler(mmi_camco_cam_preview_autofocus_button_pressed, KEY_CAMERA,

KEY_HALF_PRESS_DOWN);        }   如上这段code后面加上如下code:               if(mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_CAPMODE) ==

MMI_CAMCO_CAPMODE_CONT_SHOT)       {           SetKeyHandler(mmi_camco_cam_capture_botton_pressed, KEY_ENTER, KEY_EVENT_DOWN);//add this 连

拍则直接拍       }       else       {           SetKeyHandler(mmi_camco_cam_preview_autofocus_button_pressed,KEY_ENTER,KEY_EVENT_DOWN);//add

this 非连拍则先对焦       } //        SetKeyHandler(mmi_camco_cam_capture_button_pressed, KEY_CAMERA, KEY_EVENT_DOWN);  注释掉 //     SetKeyHandler(mmi_camco_cam_capture_button_released, KEY_CAMERA, KEY_EVENT_UP);注释掉 原本是最后两句,现在是注释掉,加上前面的这段code,请注意把KEY_ENTER改为 KEY_CAMERA。

Page 141: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

FTE版本做如下修改: 把工程中所有调用如下代码的地方进行修改: if (mmi_camco_cam_p->is_drive_available && mmi_camco_cam_p->is_space_enough)        {            if (mmi_camco_setting_get_setting_capability(MMI_CAMCO_SETTING_AFRANGE) !=                MMI_CAMCO_SETTING_CAP_DRV_NOT_SUPPORT &&                mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_AFRANGE) !=

MMI_CAMCO_AFRANGE_INFINTE)            {                SetKeyHandler(mmi_camco_cam_preview_autofocus_button_pressed, KEY_CAMERA,

KEY_HALF_PRESS_DOWN);            } //把如下代码            SetKeyHandler(mmi_camco_cam_capture_button_pressed, KEY_CAMERA, KEY_EVENT_DOWN);            SetKeyHandler(mmi_camco_cam_capture_button_released, KEY_CAMERA, KEY_EVENT_UP); 修改为如下代码:               if(mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_CAPMODE) ==

MMI_CAMCO_CAPMODE_CONT_SHOT)       {           SetKeyHandler(mmi_camco_cam_capture_botton_pressed, KEY_ENTER, KEY_EVENT_DOWN);//add this 连

拍则直接拍       }       else       {           SetKeyHandler(mmi_camco_cam_preview_autofocus_button_pressed,KEY_ENTER,KEY_EVENT_DOWN);//add

this 非连拍则先对焦       }        #ifdef __MMI_CAMCO_EVB_AF_TEST__            if (mmi_camco_setting_get_setting_capability(MMI_CAMCO_SETTING_AFRANGE) !=

MMI_CAMCO_SETTING_CAP_DRV_NOT_SUPPORT                && mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_AFRANGE) !=

MMI_CAMCO_AFRANGE_INFINTE)            {                SetKeyHandler(mmi_camco_cam_preview_autofocus_button_pressed, KEY_1, KEY_EVENT_DOWN);                SetKeyHandler(mmi_camco_cam_capture_button_pressed, KEY_3, KEY_EVENT_DOWN);            }        #endif /* __MMI_CAMCO_EVB_AF_TEST__ */                         g_mmi_camco_cntx.is_camerakey_valid = MMI_TRUE;        } 4、          麻烦您在函数mmi_camco_cam_autofocus_result_hdlr() 中做如下修改后验证一下,谢谢。 else if (result_ind.af_result == MDI_AF_SEARCH_STATUS_SWITCH_MACRO)        {            /* Camera is still in MMI_CAMCO_STATE_CAM_FOCUSING */            mmi_camco_osd_enter_state(MMI_CAMCO_OSD_STATE_FOCUSE_HINT);            mmi_camco_osd_set_center_focus_process_hint_img(IMG_ID_CAMCO_AFRANGE_MACRO); //添加如下代码

Page 142: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

mmi_camco_cam_capture_button_pressed();        }        else        { ..... //最后添加如下代码 mmi_camco_cam_capture_button_pressed(); }

Page 143: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01628][MMI]手机剩余空间为0B时,把

camera的存储位置设为phone,背景显示蓝屏 [DESCRIPTION] 此问题的复现步骤为:首先把手机空间占满,使剩余空间为0B;然后把camera的存储位置设为T卡,进入camera界面

;进入camera setting菜单restore factory,此时会弹出“not enough memory”,然后进入select storage

screen;再次选择phone做为存储位置,弹出“not enough memory”后进入select storage screen,此时界面显示错

误,背景显示为蓝色 [KEYWORD] Camera MMI

[SOLUTION] 此问题的主要原因是选storage失败的逻辑其实很简单:popup-> do nothing->返回select storage。但是原实现由于

在失败的地方没有return导致事情变得复杂:popup-> delete select screen(in history)->enter preview screen-

>insert select screen to history->popup->enter select screen(popup timeout), 由于这一长串调用中是

callback套callback,最终导致framework中screen的关系乱套了。 修改方法如下: 在函数mmi_camera_select_storage_rsp_hdlr()中做如下修改: if (create_result < 0)        {            error_str_id = srv_fmgr_fs_error_get_string(create_result);            mmi_imgview_set_storage(storage);            gdi_layer_get_base_handle(&g_camera_cntx.base_layer_handle);            gdi_layer_push_and_set_active(g_camera_cntx.base_layer_handle);            gdi_layer_clear(GDI_COLOR_BLACK);            gdi_layer_pop_and_restore_active();            MMI_CAMERA_DISPLAY_POPUP((PU8) GetString(error_str_id),

srv_fmgr_fs_error_get_popup_type(create_result), MMI_CAMERA_POPUP_RESULT_PROCESS_NONE); //添加如下语句: return;        } Patch id:  MAUI_02994818

Page 144: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01619][MMI]打开HORIZONTAL_CAMERA后

webcam图像旋转90 [DESCRIPTION] 打开HORIZONTAL_CAMERA来旋转90度. 现在打开了webcam. 但webcam没有被旋转. 现在拍照录像镜像是正的, webcam却

转了90度 [KEYWORD] Webcam

Horizontal Camera [SOLUTION] 此问题的原因是Webcam出来的图像是没有经过rotate直接显示在电脑上的,也就是说它与sensor出来的图像的方式一致

。您可以旋转您的手机,这时您会在电脑上看到图像有旋转,当图像转为正向显示的时候,此时您拿手机的方向应该就

是同sensor安装的方向一致了。

所以应该将手机横着拿。

Page 145: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01468][MMI]拍照流程说明 [DESCRIPTION] Camera中capture 的大体流程描述 [KEYWORD] Others

[SOLUTION] 1、对于非LCD SIZE的图片的拍摄,从cam_capture_from_isp函数中,        capture_isp_param.y_address = cam_context_p->y_address =        (kal_uint32) med_alloc_ext_mem(cam_context_p->channel_size);        capture_isp_param.u_address = cam_context_p->u_address =        (kal_uint32) med_alloc_ext_mem(cam_context_p->channel_size/4);        capture_isp_param.v_address = cam_context_p->v_address =        (kal_uint32) med_alloc_ext_mem(cam_context_p->channel_size/4);        capture_isp_param.y_size = cam_context_p->channel_size;        capture_isp_param.u_size = cam_context_p->channel_size/4;        capture_isp_param.v_size = cam_context_p->channel_size/4; 会通过以上变量准备好YUV数据的存储地址以及大小。 2、然后将capture_isp_param这个局部结构体变量传入camera_capture_jpeg_process函数。   在camera_capture_jpeg_process 函数中,capture_isp_param结构体的值 以isp_data 的形式存在。        isp_capture_jpeg_data.y_address=isp_data->y_address;        isp_capture_jpeg_data.u_address=isp_data->u_address;        isp_capture_jpeg_data.v_address=isp_data->v_address;        isp_capture_jpeg_data.y_size=isp_data->y_size;        isp_capture_jpeg_data.u_size=isp_data->u_size;        isp_capture_jpeg_data.v_size=isp_data->v_size; 这时候,YUV数据的地址及大小又会传给isp_capture_jpeg_data这个结构体。 3、然后在camera_capture_jpeg_process函数中再调用camera_yuv_capture_jpeg_process函数。在

camera_yuv_capture_jpeg_process函数中: sw_jpeg_encode_config_data.jpeg_yuv_data[0]=(kal_uint8  *)isp_capture_jpeg_data.y_address; sw_jpeg_encode_config_data.jpeg_yuv_data[1]=(kal_uint8        *)isp_capture_jpeg_data.u_address; sw_jpeg_encode_config_data.jpeg_yuv_data[2]=(kal_uint8  *)isp_capture_jpeg_data.v_address;        sw_jpeg_encode_config_data.jpeg_yuv_size[0]=isp_capture_jpeg_data.y_size;        sw_jpeg_encode_config_data.jpeg_yuv_size[1]=isp_capture_jpeg_data.u_size;        sw_jpeg_encode_config_data.jpeg_yuv_size[2]=isp_capture_jpeg_data.v_size; 这时候,再将YUV数据的地址及大小再传给sw_jpeg_encode_config_data这个结构体。 4、在camera_yuv_capture_jpeg_process函数中,通过以下语句   image_sensor_func->sensor_capture_setting(&exposure_window,&sensor_config_data); 调用到image_sensor_func->sensor_capture_setting 这个结构体指向的sensor capture所对应的函数。可在

image_sensor.c文件中image_sensor_func_config 函数找到具体的对应。 5、然后在camera_yuv_capture_jpeg_process函数中调用jpeg_encode_process这个函数。   在jpeg_encode_process函数中,sw_jpeg_encode_config_data结构体的值以jpeg_encode_config_data结构体存在

。       for (i = 0; i < jpeg_encode_para.num_of_comp; i++)

Page 146: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

      {        jpeg_encode_para.jpeg_yuv_data[i]=jpeg_encode_config_data->jpeg_yuv_data[i];              jpeg_encode_para.sample_width[i]=((jpeg_encode_para.jpg_encode_width*jpeg_encode_para.h_sam

ple_factor[i])/jpeg_encode_para.max_h_sample_factor);          /* for interleaved scan, sampling factors give # of blocks per component */        jpeg_encode_para.MCU_DU_width[i] = jpeg_encode_para.h_sample_factor[i];        jpeg_encode_para.MCU_DU_height[i] =jpeg_encode_para.v_sample_factor[i];       }     再将jpeg_encode_config_data->jpeg_yuv_data[i]的数据传给jpeg_encode_para.jpeg_yuv_data[i]。 6、然后在jpeg_encode_process函数中调用jpeg_compress函数。再在jpeg_compress函数中调用extract_data_stream

函数,在extract_data_stream函数中,所用到的数据都是存在jpeg_encode_para这个结构体中的。

Page 147: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01487][MMI]无论camera image size设置为

多大,都可以使preview、回显全屏显示 [DESCRIPTION] 无论camera image size设置为多大,都可以使preview、回显全屏显示 [KEYWORD] Camera MMI

[SOLUTION] 1、    preview全屏显示,修改方法是在MMI_features_camer.h中把任何image size下的preview size都设为LCD

SIZE大小就可以了。 2、回显也可以实现全屏显示,但是因为image size 和LCD size比例不一致,所以会出现拉伸现象。修改方法是

:preview的数据放在在心上g_camera_cntx.preview_layer_handle 中,所以您可以在 mmi_camera_capture() 中申请

一块自己的buffer,然后把preview数据放到自己的buffer中,最后在mmi_camera_entry_delete_confirm_state()中回

显自己buffer中的数据就可以了,修改方法如下:此代码是针对35平台,其他平台可以相应的修改所申请buffer的大小

。 (1)在Cameraapp.c 中定义如下变量: PU8 my_buf; U32 my_capture_size; static kal_uint8 my_heap[212000]; KAL_ADM_ID my_dm_id; PU8 myptr; (2)在mmi_camera_capture函数中:            mmi_camera_preview_set_hint((PS8) GetString(STR_ID_CAMERA_NOFIFY_CAPTURING), NULL, 0); //注

意是这里            mmi_camera_preview_draw_osd(); //下面是添加的代码 kal_prompt_trace(MOD_BT,"ENTRY COPY BUFFER"); my_capture_size=240*400*2; my_dm_id = kal_adm_create(my_heap, 212000, NULL, KAL_FALSE); myptr = (U8*)kal_adm_alloc(my_dm_id, my_capture_size);                   gdi_layer_push_and_set_active(g_camera_cntx.preview_layer_handle); gdi_layer_get_buffer_ptr(&my_buf);                                                                         kal_mem_cpy(myptr,my_buf,my_capture_size); gdi_layer_pop_and_restore_active(); 3、在mmi_camera_entry_delete_confirm_state函数中, #ifdef __MMI_CAMERA_DIRECT_COUPLE__        if (g_camera_cntx.is_direct_couple == TRUE && (g_camera_cntx.app_prev_state !=

CAMERA_STATE_FORWARD_TO && !CAMERA_STATE_IN(CAMERA_STATE_FORWARD_TO)))        {         把以前的语句注释掉然后添加如下code: gdi_rect_struct dest_clip1; PU8 dest1;

Page 148: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

                                                        kal_prompt_trace(MOD_BT,"entry show my buffer");               gdi_layer_get_buffer_ptr(&dest1);                   dest_clip1.x1 = 0; dest_clip1.y1 = 0;                             dest_clip1.x2 = 239; dest_clip1.y2 = 390 gdi_2d_memory_blt_without_transpant_check(                myptr,                240,                0,                0,                240,                390,                dest1,                240,                0,               0,                dest_clip1,                GDI_MAINLCD_BIT_PER_PIXEL); }

Page 149: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01616][MMI]自动测试时预览界面被旋转了

90度 [DESCRIPTION] 自动测试时预览界面被旋转了90度 [KEYWORD] Camera MMI

[SOLUTION] 1.在mmi_fm_camera_entry_preview_screen()函数中 gdi_layer_blt_previous(0, 0, UI_device_width - 1,

UI_device_height - 1);语句的前边增加下列语句:                camera_setting_data.lcm_rotate = MDI_CAMERA_LCM_ROTATE_90;    gdi_layer_set_position(0, 0);    gdi_layer_resize(LCD_HEIGHT,LCD_WIDTH);    gdi_lcd_set_rotate_by_layer(TRUE);    gdi_layer_set_rotate(GDI_LCD_LAYER_ROTATE_90); 修改camera_setting_data.preview_width = CAMERA_FACTORY_PREVIEW_WIDTH;    camera_setting_data.preview_height = CAMERA_FACTORY_PREVIEW_HEIGHT; 为 camera_setting_data.preview_width = CAMERA_FACTORY_PREVIEW_HEIGHT;    camera_setting_data.preview_height =CAMERA_FACTORY_PREVIEW_WIDTH ; 2. 在EntryFMCameraTransientScreen函数中起始位置增加   gdi_lcd_set_rotate_by_layer(TRUE);    gdi_layer_set_rotate(GDI_LCD_LAYER_ROTATE_0);    gdi_layer_set_position(0, 0);

Page 150: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01646][MMI]设置YUV Interpolation为

SW,拍QVGA及以上Size回显黑屏,Image View中

查看正常 [DESCRIPTION] 该问题的现象是(Camera版本):拍Wallpaper Size & 160x120的回显是正常的,但拍QVGA及以上Size回显的时候黑屏

,在回显界面按Option再返回显示的画面是正常的。拍下来的图片在Image View中查看也是正常的。 [KEYWORD] MT6252

Interpolation

[SOLUTION] 因为MT6252这边没有Camera版本并没有使用Direct Couple的回显方式,所以回显的画面是在MMI这边将Capture

Buffer中的JPEG数据Decode出来回显的。 该问题产生的原因是MED的Buffer设置的不够大,导致在Capture的时候分配1.02MB左右,然后在回显时在

gdi_image_hwjpg_v2.c中申请Memory申请不到,从而JPEG Decode失败导致显示黑屏。 修改方法,多分配20K的Memory: File: mcu\media\common\include\med_mem.h #define MED_EXT_MEM_SIZE sizeof(med_ext_mem_union) 修改为 #define MED_EXT_MEM_SIZE (sizeof(med_ext_mem_union) + 20*1024)

Page 151: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01631][MMI]选择桌面墙纸时进入camera死机 [DESCRIPTION] 复现步骤为:设置 –>显示设置->壁纸->桌面壁纸->相机,出现死机 [KEYWORD] Camera Hang

[SOLUTION] 此问题的原因是CheckandSet(-1)函数的作用是不给当的设置传入一个固定的值, 而是通过循环判断从当前所有的有效值中选一个合适的来当作默认值; 而当进行VisCodecSetting设置时, 因为所有m_content[idx]->getStatus() 都不为 VAPP_CAMCO_SETTING_CAP_ENABLED, 导致一直在以下代码中反复循环, for (VfxU16 idx = VAPP_CAMCO_MAX_SETTING_ITEM_COUNT - 1; idx >= 0; idx--)            {                if (m_content[idx]->getStatus() == VAPP_CAMCO_SETTING_CAP_ENABLED)                {                    setValue(idx);                    break;                }            } 修改方法如下: 在函数RecSizeSetting :: setDefault()中做如下修改: RecSizeSetting :: setDefault() { for(VfxU32 i=0; i < count; i++)    {        VfxU32 l = 0, m = 0, n = 0;        VfxS32 p =0, q = 0; ….. vapp_camco_recsize_vs_recqty_vs_storage_vs_codec[l][n][p][m] = VFX_TRUE;        vapp_camco_recsize_vs_recqty_vs_storage_vs_codec[l][n][q][m] = VFX_TRUE;                // when ext calling, default use the last setting (lowest) //添加如下代码        if(i == 0 || m_settingMgr->IsExtSetting())            {                   ((RecSizeSetting*)(m_settingMgr->getSetting(VAPP_CAMCO_SETTING_RECSIZE)))-

>resetValue(l);                   ((VisQtySetting*)(m_settingMgr->getSetting(VAPP_CAMCO_SETTING_VISQTY)))-

>resetValue(n);                           ((VisCodecSetting*)(m_settingMgr->getSetting(VAPP_CAMCO_SETTING_VISCODEC)))-

>resetValue(m);                        } //添加如上代码 }

Page 152: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

。。。。。 }

Page 153: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03260][MMI功能简介]微笑快门(smile

shutter)使用 [Description]摄录像机(camcorder)选择为微笑快门模式后,对于使用和功能的介绍[KEYWORD]Others[Solution]在smile shot拍照模式时,需要先按一次物理拍照键对焦,对焦成功后会在屏幕左边,OSD层上会

出现一个笑脸小图标。这个时候才可以真正的进行笑脸拍照,在检测到人脸时会画一个绿框,如果

同时检测到笑脸会出现一个黄色的小框把嘴巴框出来,同时相机会自动拍下照片。

先对焦的目的是为了更好的检测出笑脸,因为在一张模糊的图像上很难做笑脸检测,从而会影响使

用效果。

如果相机有前置摄像头,前摄像头没有加微笑快门的拍照模式。在使用前摄像头时,被拍的人可以

在屏幕上看见拍下的场景,拍照的时机可以自行决定。使用者完全可以在微笑时自行按下拍照键完

成拍照,所以前摄像头没有加微笑快门。

Page 154: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03261][MMI功能简介]摄录像机

(camcorder)连拍(continue shot)使用 [Description]摄录像机(camcorder)连拍模式使用介绍[KEYWORD]Others[Solution]在摄录像机(camcorder)拍照模式设为连拍时,需要一直按着拍照键或是OSD层上的拍照图标,这

样手机会一直拍照直到松开按键或是存储空间满。

Page 155: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ04193][MT6250] Camera ATA 的問題 [DESCRIPTION] MT6250 Camera ATA 的問題

[KEYWORD] MT6250 ATA

Auto Test Assistant

[SOLUTION] MT6250 為了讓客戶能夠節省產線測試的 cost

推出了 ATA(Auto Test Assistant) tool讓自動測試取代人工測試

在 Camera 測試的部份如果有遇到問題

請試著依照下列步驟確認問題

1. 不知如何著手?

請先依照 ATA Camera Programming Guide, 修改過相關 custom driver 的部份

2. 編譯不過?

確認有打上 MAUI_03223422 這個patch

並在make\$Project.mak文件中的CUSTOM_OPTION中加上__CATS_SUPPORT__ Option

CUSTOM_OPTION     += __CATS_SUPPORT__

3. 無法產生Pattern_320x240.yuv or Pattern.yuv?

保存pattern的地方如下,在文件cam_msg_handler.c中,請加Trace看一下代碼有沒有跑到這個地方

。 並且請使用Meta查看你們用戶盤是哪一個盤符,然後針對性的修改下面的D。 CATSSaveFileDebug(pattern_frame->frame_buffer, pattern_frame->frame_buffer_size, \                    L"D:\\Pattern_320x240.yuv", sizeof(L"D:\\Pattern_320x240.yuv")); 例如使用的是可能是C盤, 就將D改成C就可以了

Page 156: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

之後會改成Pattern.yuv, 預設會在SD卡上, 如果沒有插入SD卡就會在預設內存裡面, 就不用去修改

上面的盤符

4. 要如何確認 Pattern_320x240.yuv or Pattern.yuv 的正確性?

這個 file 為了降低 code size, 所以實際大小只有 40x30 的 Resolution

實際上是 40*30*2(UYVY422) = 2400 Bytes.

將之存放到電腦後, 使用 MM tool 的 image viewer

輸入 width = 40, height = 30, color format = UYVY422

即可打開此圖確認是否為 sensor 所出的 color bar

5. Pattern_320x240.yuv or Pattern.yuv 不是 color bar?

請確認 sensor 是否正確被設定為 test pattern mode.

XXXXSensor.OutTestPattern 是否為 KAL_TRUE

存完檔之後會改回 KAL_FALSE, 打印出 message 可以確認流程正確性

另外有也是這個檔案可能是舊的, 不是最新的

建議每次抓 test pattern 的時候, 殺掉此檔再重新抓取

6. Compare 發現測試 fail?

請確認 CATSTestPattern 是否在 sensor driver (image_sensor_xxxxx.c)中有被修改為

Pattern_320x240.yuv 的值

7. Compare 發現測試可能 fail, 也可能 pass?

應該是有一些接觸問題,請排除接觸問題後,重複測試幾次。

若依然還有問題, 就需要 sensor 廠商來幫忙看

例如GC0309 or GC6113, 不同的版本上同樣的GC0309 or GC6113,CATSTestPattern的內容不一樣。

當遇到Test Pattern輸出不是固定的時候, 我們請格科微提供關掉Sensor其它模塊的功能之後就固

定了。

Page 157: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

據說GC0309 or GC6113只是打開Test Pattern的話,Preview的數據還是有影響的。

也就是要跟 sensor vendor 確認每次出的 Pattern 是一樣的

Page 158: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ01019][webcam MMI]Webcamera实现前置后置

摄像头的切换 [DESCRIPTION] webcam实现前后摄像头的切换

[KEYWORD] Webcam

[SOLUTION] 功能实现: 修改mmi_webcam_entry_app_scr_init()函数所在的.c文件,添加如下定义:        #include "CamcorderSetting.h"        extern mmi_camco_setting_cntx_struct    *const mmi_camco_setting_p; 修改mmi_webcam_entry_app_scr_init()函数:

修改之后remake plutommi,进入camcorder切换前置,后置摄像头。

Page 159: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ00928][webcam MMI]无法从Sub Sensor进入

Webcam [DESCRIPTION]–   1. 目前只能从Main Sensor进入Webcam。 –   2. 客户希望实现能够根据Camcorder中的Main/Sub设置,选择Main/Sub进入Webcam。 [KEYWORD]Webcam

Dual Camera

[SOLUTION]–   1. 目前Code中仅设置了默认从Main Sensor进入Webcam:

在mmi_usb_webcam_entry_app_scr()中会先detect Main sensor id:

–   该语句的作用是希望在进入Webcam时,通过Detect Main sensor id 以确定当前工作的

sensor,主要是For Backup senosr的情况。若将该语句去掉,将无法确定当前使用的是哪一颗

sensor。 –   2. 建议修改方法如下: –   在USBDevice.c()中添加头文件:

–   修改mmi_usb_webcam_entry_app_scr()函数,将原来只detect main sensor id的代

码替换为如下Code:

Page 160: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03527]11B版本camera/video preview 界面

zoom按键需要按多次值才变化 [DESCRIPTION] 在11B版本上,camera/video preview界面,对于zoom放大和缩小按键,需要按多次才能使数字变焦加1 [KEYWORD] 11B

Digital Zoom

[SOLUTION] 这个是因为在11B的时候,Camera在Media层以下使用了跟Camcorder一样的100 Base,而在MMI层只显示了小数点后一位

(10 Base),精度损失,所以会有上面的现象。 下面的修改是将MMI的Zoom Base修改为100 Base(即显示1.02, 1.04, 1.07, 1.09, 1.12等),修改代码用宏

__CAM_DIGITAL_ZOOM_100_BASE__包起来:

camera部分的修改方法: 在函数mmi_camera_preview_draw_icon()中参后以下代码修改ZOOM部分, #ifdef __CAMERA_FEATURE_ZOOM__        /* zooming icon */        if ((g_camera_cntx.toggle_updown_key == TRUE) && g_camera_cntx.active_camera_osd_ptr-

>zoom.is_show &&            g_camera_cntx.max_zoom_steps > 0)        {            U32 total_idx, current_idx; #ifdef __CAMERA_FAST_ZOOM_SUPPORT__            if (g_camera_cntx.is_fast_zoom)            {        #ifdef __MTK_TARGET__                mdi_camera_get_fast_zoom_step(¤t_idx);                g_camera_cntx.setting.zoom_idx = (U16)current_idx;        #endif            } #endif /* __CAMERA_FAST_ZOOM_SUPPORT__ */            total_idx = g_camera_cntx.max_zoom_steps;            current_idx = (U32) g_camera_cntx.setting.zoom_idx;            if (g_camera_cntx.active_camera_osd_ptr->zoom_inc.is_show)            {                U16 zoom_inc_icon;

Page 161: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

               if (current_idx == total_idx){                    zoom_inc_icon = IMG_ID_CAMERA_OSD_ZOOM_INC_DIS;                }else if (g_camera_cntx.touch_zoom_inc.is_press){                    zoom_inc_icon = IMG_ID_CAMERA_OSD_ZOOM_INC_SEL;                }else{                    zoom_inc_icon = IMG_ID_CAMERA_OSD_ZOOM_INC;                }                mmi_camera_preview_draw_one_icon(                    &(g_camera_cntx.active_camera_osd_ptr->zoom_inc),                    zoom_inc_icon, 0);            }            if (g_camera_cntx.active_camera_osd_ptr->zoom_dec.is_show)            {                U16 zoom_dec_icon;                if (current_idx == 0){                    zoom_dec_icon = IMG_ID_CAMERA_OSD_ZOOM_DEC_DIS;                }else if (g_camera_cntx.touch_zoom_dec.is_press){                    zoom_dec_icon = IMG_ID_CAMERA_OSD_ZOOM_DEC_SEL;                }else{                    zoom_dec_icon = IMG_ID_CAMERA_OSD_ZOOM_DEC;                }                mmi_camera_preview_draw_one_icon(                    &(g_camera_cntx.active_camera_osd_ptr->zoom_dec),                    zoom_dec_icon, 0);            }        #ifndef __MMI_CAMERA_SIMPLE_UI__            {            S32 num_width, num_height, num_x, num;            U32 cur_zoom_factor;        #ifdef __CAM_DIGITAL_ZOOM_100_BASE__            camera_osd_icon_struct zoom_osd_backup;            zoom_osd_backup = g_camera_cntx.active_camera_osd_ptr->zoom;            gdi_image_get_dimension_id(IMG_ID_CAMERA_OSD_NUM_00, &num_width, &num_height);            g_camera_cntx.active_camera_osd_ptr->zoom.offset_x -= num_width;        #endif  /* #ifdef __CAM_DIGITAL_ZOOM_100_BASE__ */            gdi_image_get_dimension_id(IMG_ID_CAMERA_OSD_ZOOM_BAR, &num_width, &num_height);            mmi_camera_preview_draw_one_icon(&(g_camera_cntx.active_camera_osd_ptr->zoom),                                                       IMG_ID_CAMERA_OSD_ZOOM_BAR, 0);

Page 162: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

       #ifdef __CAM_DIGITAL_ZOOM_100_BASE__            if (g_camera_cntx.setting.zoom_idx == 0)            {                cur_zoom_factor = 100;            }            else            {                cur_zoom_factor = mdi_camera_get_para_zoom_factor();            }            num_x = num_width;            num = cur_zoom_factor / 100;            mmi_camera_preview_draw_one_icon(&(g_camera_cntx.active_camera_osd_ptr->zoom),                                                       IMG_ID_CAMERA_OSD_NUM_00 + num, num_x);            gdi_image_get_dimension_id((U16)(IMG_ID_CAMERA_OSD_NUM_00 + num), &num_width, &num_height);            num_x = num_x + num_width;            mmi_camera_preview_draw_one_icon(&(g_camera_cntx.active_camera_osd_ptr->zoom),                                                       IMG_ID_CAMERA_OSD_NUM_DOT, num_x);            gdi_image_get_dimension_id((U16)(IMG_ID_CAMERA_OSD_NUM_DOT), &num_width, &num_height);            num = cur_zoom_factor - num * 100;            num = num / 10;            num_x = num_x + num_width;            mmi_camera_preview_draw_one_icon(&(g_camera_cntx.active_camera_osd_ptr->zoom),                                                        IMG_ID_CAMERA_OSD_NUM_00 + num, num_x);            gdi_image_get_dimension_id((U16)(IMG_ID_CAMERA_OSD_NUM_00 + num), &num_width, &num_height);            num = cur_zoom_factor % 10;            num_x = num_x + num_width;            mmi_camera_preview_draw_one_icon(&(g_camera_cntx.active_camera_osd_ptr->zoom),                                                        IMG_ID_CAMERA_OSD_NUM_00 + num, num_x);            g_camera_cntx.active_camera_osd_ptr->zoom = zoom_osd_backup;        #else   /* #ifndef __CAM_DIGITAL_ZOOM_100_BASE__ */            /* before HAL (zoom_factor = 10 * actual_factor) and (zoom_factor = 100 * actual_factor)

after*/            if (g_camera_cntx.setting.zoom_idx == 0)            {                cur_zoom_factor = 10;            }            else            {                cur_zoom_factor = mdi_camera_get_para_zoom_factor();                cur_zoom_factor /= 10;            }

Page 163: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

           num_x = num_width;            num = cur_zoom_factor / 10;            mmi_camera_preview_draw_one_icon(&(g_camera_cntx.active_camera_osd_ptr->zoom),                                                       IMG_ID_CAMERA_OSD_NUM_00 + num, num_x);            gdi_image_get_dimension_id((U16)(IMG_ID_CAMERA_OSD_NUM_00 + num), &num_width, &num_height);            num_x = num_x + num_width;            mmi_camera_preview_draw_one_icon(&(g_camera_cntx.active_camera_osd_ptr->zoom),                                                       IMG_ID_CAMERA_OSD_NUM_DOT, num_x);            gdi_image_get_dimension_id((U16)(IMG_ID_CAMERA_OSD_NUM_DOT), &num_width, &num_height);            num = cur_zoom_factor - num * 10;            num_x = num_x + num_width;            mmi_camera_preview_draw_one_icon(                &(g_camera_cntx.active_camera_osd_ptr->zoom),                IMG_ID_CAMERA_OSD_NUM_00 + num, num_x);        #endif  /* #ifndef __CAM_DIGITAL_ZOOM_100_BASE__ */            }        #endif    } #endif /* __CAMERA_FEATURE_ZOOM__ */

video 部分的修改方法: static void mmi_vdorec_draw_panel_zoom(void) { #ifdef __VDOREC_FEATURE_ZOOM__       ........    gdi_layer_push_and_set_active(g_vdorec_cntx.zoom_draw_layer);        gdi_layer_get_position(&layer_offset_x, &layer_offset_y); #ifndef __VDOREC_FEATURE_SLIM_UE__ #ifdef __CAM_DIGITAL_ZOOM_100_BASE__    gdi_image_get_dimension_id(IMG_ID_VDOREC_EFFECT_NUMBER_0, &image_width, &image_height);    /* zooming icon */    gdi_image_draw_id(        g_vdorec_osd_cntx.panel.zoom.offset_x - layer_offset_x - image_width,        g_vdorec_osd_cntx.panel.zoom.offset_y - layer_offset_y,        IMG_ID_VDOREC_TOUCH_OSD_ZOOM_HEAD);    /*zoom factor*/    if (g_vdorec_cntx.setting.zoom == 0)    {        current_zoom_factor = 100;    }    else

Page 164: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

   {        mdi_video_rec_get_fast_zoom_factor(¤t_zoom_factor);    }    factor_offset_x = g_vdorec_osd_cntx.panel.zoom.offset_x - layer_offset_x - image_width;    factor_offset_y = g_vdorec_osd_cntx.panel.zoom.offset_y - layer_offset_y; #else    /* zooming icon */    gdi_image_draw_id(        g_vdorec_osd_cntx.panel.zoom.offset_x - layer_offset_x,        g_vdorec_osd_cntx.panel.zoom.offset_y - layer_offset_y,        IMG_ID_VDOREC_TOUCH_OSD_ZOOM_HEAD);    /*zoom factor*/    if (g_vdorec_cntx.setting.zoom == 0)    {        current_zoom_factor = 10;    }    else    {        mdi_video_rec_get_fast_zoom_factor(¤t_zoom_factor);        current_zoom_factor /= 10;    }    factor_offset_x = g_vdorec_osd_cntx.panel.zoom.offset_x - layer_offset_x;    factor_offset_y = g_vdorec_osd_cntx.panel.zoom.offset_y - layer_offset_y; #endif    if (g_vdorec_cntx.is_use_blt_region)    {        zoom_region_x = g_vdorec_osd_cntx.panel.zoom.offset_x;        zoom_region_y = g_vdorec_osd_cntx.panel.zoom.offset_y;        zoom_region_w = 0;        zoom_region_h = 0;    }    gdi_image_get_dimension_id(IMG_ID_VDOREC_TOUCH_OSD_ZOOM_HEAD, &image_width, &image_height);    factor_offset_x += image_width;    if (g_vdorec_cntx.is_use_blt_region)    {        zoom_region_w += image_width;        zoom_region_h = image_height;    }    /*first zoom digit*/ #ifdef __CAM_DIGITAL_ZOOM_100_BASE__    curr_digit = current_zoom_factor / 100 % 10; #else    curr_digit = current_zoom_factor / 10 % 10; #endif    gdi_image_draw_id(factor_offset_x, factor_offset_y, (U16)(IMG_ID_VDOREC_EFFECT_NUMBER_0 +

curr_digit));    /*draw dot*/

Page 165: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

   gdi_image_get_dimension_id(IMG_ID_VDOREC_EFFECT_NUMBER_0, &image_width, &image_height);    factor_offset_x += image_width;    if (g_vdorec_cntx.is_use_blt_region)    {        zoom_region_w += image_width;    }    gdi_image_draw_id(factor_offset_x, factor_offset_y, IMG_ID_VDOREC_EFFECT_DOT); #ifdef __CAM_DIGITAL_ZOOM_100_BASE__    gdi_image_get_dimension_id(IMG_ID_VDOREC_EFFECT_DOT, &image_width, &image_height);    factor_offset_x += image_width;    if (g_vdorec_cntx.is_use_blt_region)    {        zoom_region_w += image_width;    }    curr_digit = (current_zoom_factor - ((current_zoom_factor / 100) * 100)) / 10 % 10;    gdi_image_draw_id(factor_offset_x, factor_offset_y, (U16)(IMG_ID_VDOREC_EFFECT_NUMBER_0 +

curr_digit));    gdi_image_get_dimension_id(IMG_ID_VDOREC_EFFECT_NUMBER_0, &image_width, &image_height); #else    /*second zoom digit*/    gdi_image_get_dimension_id(IMG_ID_VDOREC_EFFECT_DOT, &image_width, &image_height); #endif    factor_offset_x += image_width;    if (g_vdorec_cntx.is_use_blt_region)    {        zoom_region_w += image_width;    }    curr_digit = current_zoom_factor % 10;    gdi_image_draw_id(factor_offset_x, factor_offset_y, (U16)(IMG_ID_VDOREC_EFFECT_NUMBER_0 +

curr_digit));    /*get last digit width*/    gdi_image_get_dimension_id(IMG_ID_VDOREC_EFFECT_NUMBER_0, &image_width, &image_height);    if (g_vdorec_cntx.is_use_blt_region)    {        zoom_region_w += image_width;    }    if (g_vdorec_cntx.is_use_blt_region)    {        mmi_vdorec_merge_blt_rgn(            zoom_region_x,            zoom_region_y,            zoom_region_w,            zoom_region_h);        } #endif  /*__VDOREC_FEATURE_SLIM_UE__*/    。。。。。 #endif /* __VDOREC_FEATURE_ZOOM__ */

Page 166: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

}

Page 167: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03521]50平台camera所有设置选项不能保存 [DESCRIPTION] 50平台的项目,进入camera->option中进行任意设置,退出camera,再次进入camera时,设置又返回默认值 [KEYWORD] MT6250

Camera MMI

[SOLUTION] 当初这样设计的原因是考虑到如果此次对camera做了很多设置,为了保证不会对下次进入camera操作造成影响,会把设

置全部还原。如果想改成再次进入camera时保存当前的设置,可以在函数mmi_camera_app_screen()中把

mmi_camera_init_none_save_setting();注释掉。

Page 168: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03800]CAMCORDER,拍照后重命名照片为未使

用的文件序号,再拍照后内容被覆盖 [DESCRIPTION] 1.第一次DOWN完版本,进入CAMCORDER,拍照的时候照片命名及序号会从1开始,如IMG00001.jpg。拍了5张照片,从

01——05;

2.然后进入FILE MANAGER把IMG00004.jpg、IMG00005.jpg分别重命名为IMG00007.jpg、IMG00008.jpg;

3.再次进入CAMCORDER,拍几张照片,发现新拍照片名字依次为:IMG00006.jpg、IMG00008.jpg、IMG00009.jpg;

4.查看发现原本从IMG00005.jpg为IMG00008.jpg的这张照片被新的内容覆盖了。 [SOLUTION] mmi_camco_cam_get_next_filename() { if (is_binary_search)    {       last_file_exist_num = filename_seq_no;//添加此语句        left = filename_seq_no + 1;        right = CAMCO_MAX_FILE_NUM;         把          while (left < right) 改为  while (left <= right)        { 。。 if (file_handle >= 0)            {                /* file exist */                //添加以下代码                if(left == right)                    {                      mid = left + 1;                      WriteValue(NVRAM_CAM_FILENAME_SEQ_NO, &mid, DS_SHORT, &error);                      MMI_TRACE(MMI_MEDIA_TRC_G2_APP, MMI_TRC_CAMCO_FILE_NAME_WRITE_MID, mid);                      sprintf( buffer, "IMG%05d", mid);                        mmi_asc_to_ucs2( ucs2_buffer,  buffer);                        mmi_ucs2cpy(ucs2_testname,ucs2_buffer);                    #ifdef __MMI_CAMCO_FEATURE_CAM_MULTI_ANGLE_VIEW_SHOT__                         if(mmi_camco_setting_get_setting_value(MMI_CAMCO_SETTING_CAPMODE)==MMI_CAMCO_CAP

MODE_MAV)                         {                             mmi_ucs2cat(ucs2_testname, (const CHAR*) L".mav");                         }                         else                    #endif

Page 169: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

                       {                            mmi_ucs2cat(ucs2_testname, (const CHAR*) L".jpg");                        }                        mmi_ucs2cpy( filepath_buf_p,  mmi_camco_cam_p->storage_filepath_p);                        mmi_ucs2cat( filepath_buf_p,  ucs2_testname);                      return;                    }                                                                      else                                                      //添加以上代码                        {                        left = mid + 1;                        last_file_exist_num = mid;                    }            } ... } 把 if (right <= left) 改为  if (right < left)        { ... } }

Page 170: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03988]camera拍照回显黑屏,相册中可以正

常查看 [DESCRIPTION] 拍Wallpaper Size & 160x120的回显是正常的,但拍QVGA及以上Size回显的时候黑屏,在回显界面按Option再返回显示

的画面是正常的。拍下来的图片在Image View中查看也是正常的. [SOLUTION] 该问题产生的原因是MED的Buffer设置的不够大,导致在Capture的时候分配1.02MB左右,然后在回显时在

gdi_image_hwjpg_v2.c中申请Memory申请不到,从而JPEG Decode失败导致显示黑屏。可以按以下方法修改: File: mcu\media\common\include\med_mem.h #define MED_EXT_MEM_SIZE sizeof(med_ext_mem_union) 修改为 #define MED_EXT_MEM_SIZE (sizeof(med_ext_mem_union) + 20*1024) 在函数gdi_image_hwjpeg_v2_draw_internal()中做如下修改: jpegDecQueryFileBuffer(                g_hwjpeg_v2_decoder_hdl,                &readBufferSizeBest,                &readBufferSizeMinimum,                &fsalCacheSizeBest,                &fsalCacheSizeMinimum);            GDI_TRACE(GDI_TRC_DECODE, GDI_JPG_ENTER, readBufferSizeBest, readBufferSizeBest,

readBufferSizeBest, readBufferSizeBest, readBufferSizeBest, readBufferSizeBest, readBufferSizeBest); //添加以下代码 flag |= GDI_IMAGE_CODEC_FLAG_USE_LESS_BUF; //添加以上代码            if (flag & GDI_IMAGE_CODEC_FLAG_USE_LESS_BUF)            {                readBufferSizeBest = readBufferSizeMinimum;            }

Page 171: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02614]Drive only版本拍2M照片死机,拍

1M或VGA是正常的[mt6235/11BW1144] [DESCRIPTION]  SW version: MAUI.11B.W11.44Chip: MT6235/35BDescription: 拍2M死机,拍VGA,1M OK。 [KEYWORD] MT6235

11B

Camera Hang

[SOLUTION] 查看死机位置为在释放buffer时发生data abort,排除死机与sensor帧率的关系。

Root Cause为对非VGA size的拍照,CAL将CRZ的output format配置成了RGB565(2Byte for 1pixel),导致数据越界。

正确的做法是将CRZ的output format配置成YUV420(1.5Byte for 1pixel)。

此问题patch ID:MAUI_03115215

Page 172: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02758]Front Camera(前置摄像头)

Horizontal UI & Rotate修改方案 [DESCRIPTION] 实现11A及11B软件版本上Front Camera (Sub Camera)的横拍功能(此修改仅适用于COSMOS MMI)

[KEYWORD] Camera MMI

Dual Camera

[SOLUTION] 1.首先如果front camera(前摄像头)需要横拍,front camera模组需要横装。

2.修改front camera UI为横向,可参考如下做法:

a)【11B做法】

可以参考后摄像头的做法。需要修改的文件包括[mcu\venusmmi\\app\Cosmos\Camcorder]目录下的

vapp_camco_app.cppvapp_camco_osd_state.cppvapp_camco_setting_item.cpp可以申请application note "Application_Note_For_SubCamera_Horizontal_UI_11B"       b)【11A做法】

可申请application note "app_note_11a_cosmos_sub_senosr_rotate_with_Horz_UI.pptx"3.完成application note 中的修改后,在工程makefile中设置HORIZONTAL_CAMERA =TRUE,SENSOR_SUB_ROTATE = 90或270即何使用。但是有一个限制,因为front camera和rear camera共用一个宏HORIZONTAL_CAMERA,所以如果front camera开横拍,那么rearcamera也要开横拍。

4.在MT6255 11BW1144软件版本上,如果发现在工程makefile中设置HORIZONTAL_CAMERA =TRUE,SENSOR_SUB_ROTATE = 90或270后,camera preview, camera capture, videopreview正常,但是video encode下来的视频是花掉的,请打patch, patch ID:MAUI_03145150。

Page 173: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02498]MT6236 11A1112MP VGA/Wallpaper 拍

照死机,请patch :MAUI_03031121 [DESCRIPTION] MT6236 11A1112上,VGA or Wallpaper拍照死机,特别是在复杂场景下,其他size拍照正常 [KEYWORD] MT6236

11A

Camera Hang

[SOLUTION] 请patch:MAUI_03031121 具体修改在函数CalStillCaptureCtrl()中,将红色字体位置的code改成如下的形式        if ((KAL_TRUE==pCalIspCapturePara->RawCaptureEnable)&&            (JAIA_WORKING_BUF_SIZE_FOR_CAMERA_CAPTURERawImageBuffSize))        {            JaiaMergePara.WorkingBuffAddr=pCalIspCapturePara->RawImageBuffAddr+pCalIspCapturePara-

>RawImageBuffSize-JAIA_WORKING_BUF_SIZE_FOR_CAMERA_CAPTURE-32;            JaiaMergePara.WorkingBuffSize=JAIA_WORKING_BUF_SIZE_FOR_CAMERA_CAPTURE;        }        else        {            JaiaMergePara.WorkingBuffAddr=pCalMdpCapturePara->MainImageWorkingBuffAddr +

pCalMdpCapturePara->MainImageWorkingBuffSize - JAIA_WORKING_BUF_SIZE_FOR_CAMERA_CAPTURE - 32;            JaiaMergePara.WorkingBuffSize=JAIA_WORKING_BUF_SIZE_FOR_CAMERA_CAPTURE;        }

Page 174: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03454]MT6250 Dual Camera 的問題 [DESCRIPTION] MT6250 Dual Camera 的問題 [KEYWORD] MT6250

Dual Camera

[SOLUTION] MT6250 內部原本沒有 support dual sensor 的理由是因為 MT6250 沒辦法用 video telephone, 所以 front sensor 除了拍照之外沒有什麼作用 但是這跟 back sensor 作用幾乎是重疊的 所以我們不會開兩顆 sensor 增加 cost

但如果客戶真的想要裝兩顆 sensor 的話 請將 project.mak 的 DUAL_CAMERA_SUPPORT = TRUE SENSOR_TYPE_SUB = YUV CMOS_SENSOR_SUB = [SENSOR NAME]

另外 Option_HAL.mak 的 DUAL_CAMERA_SUPPORT_PLATFORM 加上 mt6250 或者直接 get MAUI_03213910 patch 也可以

Page 175: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03755]MT6250 sensor ESD 重啟 的實現方法 [DESCRIPTION]

MT6250 sensor ESD 重啟 的實現方法

[KEYWORD]

MT6250

ESD

[SOLUTION]

請按以下步驟修改後驗證一下: 1、在option.make中定義__WT_MT6250_TRUNK_CAMERA_ESD__ 2、在cameraapp.c文件中加入以下代碼: A: #ifdef __WT_MT6250_TRUNK_CAMERA_ESD__ static void resz_cp_ESD_timeout_timer_hdlr(void); static void mmi_camera_app_reset_watchdog_callback(void); static void mmi_camera_app_reset_watchdog_ESD(void);

static volatile kal_timerid resz_cp_ESD_timeout_timer = NULL; volatile kal_bool resz_esd_check_flag = KAL_TRUE; #endif

B: #ifdef __WT_MT6250_TRUNK_CAMERA_ESD__ static void resz_cp_ESD_timeout_timer_hdlr(void) { if(resz_esd_check_flag) {  resz_esd_check_flag = KAL_FALSE;  kal_set_timer(resz_cp_ESD_timeout_timer,

(kal_timer_func_ptr)resz_cp_ESD_timeout_timer_hdlr,NULL, KAL_TICKS_3_SEC, 0); } else {  kal_cancel_timer(resz_cp_ESD_timeout_timer);    mmi_camera_app_reset_watchdog_ESD(); } }

static void mmi_camera_app_reset_watchdog_callback(void) {    /*----------------------------------------------------------------*/    /* Local Variables                                                */    /*----------------------------------------------------------------*/    /*----------------------------------------------------------------*/    /* Code Body                                                      */    /*----------------------------------------------------------------*/ gui_cancel_timer(mmi_camera_app_reset_watchdog_callback);

mmi_camera_preview_stop();

Page 176: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

mdi_camera_power_off(); kal_sleep_task(100);

mdi_camera_power_on(); mmi_camera_preview_start(); mmi_camera_blt(); }

static void mmi_camera_app_reset_watchdog_ESD(void) {    /*----------------------------------------------------------------*/    /* Local Variables                                                */    /*----------------------------------------------------------------*/    /*----------------------------------------------------------------*/    /* Code Body                                                      */    /*----------------------------------------------------------------*/ gui_cancel_timer(mmi_camera_app_reset_watchdog_callback); gui_start_timer(1, mmi_camera_app_reset_watchdog_callback);         } #endif

C: mmi_camera_preview_start函數末尾加上 #ifdef __WT_MT6250_TRUNK_CAMERA_ESD__ resz_cp_ESD_timeout_timer = kal_create_timer("MDP_ESD_CP_CRZ_TIMEOUT"); kal_set_timer(resz_cp_ESD_timeout_timer,

(kal_timer_func_ptr)resz_cp_ESD_timeout_timer_hdlr,NULL, KAL_TICKS_3_SEC, 0); #endif D: mmi_camera_preview_stop函數末尾加上 #ifdef __WT_MT6250_TRUNK_CAMERA_ESD__ kal_cancel_timer(resz_cp_ESD_timeout_timer);   #endif 3、在Idp_scen_cp_mt6252.c文件中加入以下代碼 A: #ifdef __WT_MT6250_TRUNK_CAMERA_ESD__ extern volatile kal_bool resz_esd_check_flag; #endif

B: _idp_scen_cp__hisr_crz__frame_start函數中加入 #ifdef __WT_MT6250_TRUNK_CAMERA_ESD__         resz_esd_check_flag = KAL_TRUE; #endif

Page 177: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ05409]MT6250 Sensor 使用 SW I2C, 切換照

相錄像死機問題 [DESCRIPTION]

MT6250 Sensor 使用 SW I2C, 切換照相錄像死機問題

[KEYWORD]

MT6250

I2C

[SOLUTION]

1. 現象 切換照相錄像時發生死機2. 確認問題 Sensor 是使用的 SW I2C, 且 Sensor 在死機時仍然有訊號3. 原因 已知使用 SW I2C 的 sensor 有機會在切換照相錄像時發生死機 原因是因為 I2C 與其他 HW 共用(例如 touch panel), 而且 sensor 是使用 SW I2C 所以透過 I2C 下 command 給 sensor 的時候, 可能被 touch panel 中斷, 下錯了 command. 造成 sensor 固定少出了line or pixel camera 這邊收不到 sensor 資料就會一直等 等到最後就死機了4. 解決問題 讓 sensor 使用 HW I2C 即可避免 sensor init 過程被中斷造成問題

Page 178: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03452]MT6250 sensor 插值

(Interpolation) 的實現方法 [DESCRIPTION]

MT6250 sensor 插值 (Interpolation) 的實現方法

[KEYWORD]

MT6250

Interpolation

[SOLUTION]

將 project.mak 的 YUVCAM_INTERPOLATION = SW, 則 SW 在 jpeg encode 時會去向上插值, 而插

值的方式是直接往上跳一級.

例如 CIF->VGA, VGA->1M, 1M->2M, 2M->3M.

除此之外, 在 custom folder 的 sensor driver 也需要修改相關的設定

必須在 sensor dirver 裡頭的 xxxStillCaptureSize function 中

修改 Capsize->ItemCount 以及需要的 Capsize->SupportItem

例如VGA->1M, 就必須要將這段 code

  Capsize->ItemCount = 2;   Capsize->SupportItem[0] = CAM_IMAGE_SIZE_WALLPAPER;   Capsize->SupportItem[1] = CAM_IMAGE_SIZE_VGA;

改成

  Capsize->ItemCount = 3;   Capsize->SupportItem[0] = CAM_IMAGE_SIZE_WALLPAPER;   Capsize->SupportItem[1] = CAM_IMAGE_SIZE_VGA;   Capsize->SupportItem[2] = CAM_IMAGE_SIZE_1M;

還有我們不主動提供往上跳兩級的改法, 例如2M->5M, VGA->2M 等等

因為照片的quality會變的很差

但如果客戶有這樣的需求, 可以參考[FAQ03259] MT6255 2M sensor插值到5M插值方法實做

12.24MP 若使用插值拍照遇到問題, 需要打上這個 patch MAUI_03219018

或者直接修改這個檔案

\mcu\hal\camera\cal\src\cal_scenario_ctrl.c 在 3100 行左右

           #if defined(__YUVCAM_INTERPOLATION_SW__)                #if defined(__IMAGE_SENSOR_03M__)                if ((pCalMdpCapturePara->MainImageWidth > 640) && (pCalMdpCapturePara-

>MainImageHeight > 480))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-32;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #elif defined(__IMAGE_SENSOR_1M__)                if ((pCalMdpCapturePara->MainImageWidth > 1280) && (pCalMdpCapturePara-

>MainImageHeight > 1024))

Page 179: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

               {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-32;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #elif defined(__IMAGE_SENSOR_2M__)                if ((pCalMdpCapturePara->MainImageWidth > 1600) && (pCalMdpCapturePara-

>MainImageHeight > 1200))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-32;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #else                ASSERT(0);                #endif            #endif

修改成            #if defined(__YUVCAM_INTERPOLATION_SW__)                #if defined(__IMAGE_SENSOR_03M__)                if ((pCalMdpCapturePara->MainImageWidth > 640) && (pCalMdpCapturePara-

>MainImageHeight > 480))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-CAL_QVI_ROT_WORKING_BUFF_SIZE-32;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #elif defined(__IMAGE_SENSOR_1M__)                if ((pCalMdpCapturePara->MainImageWidth > 1280) && (pCalMdpCapturePara-

>MainImageHeight > 1024))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-CAL_QVI_ROT_WORKING_BUFF_SIZE-32;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #elif defined(__IMAGE_SENSOR_2M__)                if ((pCalMdpCapturePara->MainImageWidth > 1600) && (pCalMdpCapturePara-

>MainImageHeight > 1200))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-CAL_QVI_ROT_WORKING_BUFF_SIZE-32;                    pCalIspCapturePara->RawImageBuffSize=0;

Page 180: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

               }                #else                ASSERT(0);                #endif            #endif

然後重新 remake camera

11.32SP 已知有10萬無法插值到30萬的問題, 需要打上這個 patch MAUI_03266475

或者直接修改這個檔案 \mcu\hal\camera\cal\src\cal_scenario_ctrl.c, 請搜尋

__YUVCAM_INTERPOLATION_SW__ 在 2162 行左右

           #if defined(__YUVCAM_INTERPOLATION_SW__)                #if defined(__IMAGE_SENSOR_01M__)                if ((pCalMdpCapturePara->MainImageWidth > 352) && (pCalMdpCapturePara-

>MainImageHeight > 288))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-CAL_QVI_ROT_WORKING_BUFF_SIZE;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #elif defined(__IMAGE_SENSOR_03M__)                if ((pCalMdpCapturePara->MainImageWidth > 640) && (pCalMdpCapturePara-

>MainImageHeight > 480))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-CAL_QVI_ROT_WORKING_BUFF_SIZE;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #elif defined(__IMAGE_SENSOR_1M__)                if ((pCalMdpCapturePara->MainImageWidth > 1280) && (pCalMdpCapturePara-

>MainImageHeight > 1024))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-CAL_QVI_ROT_WORKING_BUFF_SIZE;                    pCalIspCapturePara->RawImageBuffSize=0;                }                #elif defined(__IMAGE_SENSOR_2M__)                if ((pCalMdpCapturePara->MainImageWidth > 1600) && (pCalMdpCapturePara-

>MainImageHeight > 1200))                {                    pCalIspCapturePara->RawImageBuffAddr=pCalMdpCapturePara-

>MainImageWorkingBuffAddr+pCalMdpCapturePara->MainImageWorkingBuffSize-

ISP_IMAGE_BUF_SIZE-CAL_QVI_ROT_WORKING_BUFF_SIZE;                    pCalIspCapturePara->RawImageBuffSize=0;                }

Page 181: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

               #else                ASSERT(0);                #endif            #endif

在 2574  行左右

   #if defined(__YUVCAM_INTERPOLATION_SW__)        #if defined(__IMAGE_SENSOR_01M__)        if ((JpegWrapper.dstWidth > 352) && (JpegWrapper.dstHeight > 288))        {            JpegWrapper.srcWidth = 352;            JpegWrapper.srcHeight = 288;        }        #elif defined(__IMAGE_SENSOR_03M__)        if ((JpegWrapper.dstWidth > 640) && (JpegWrapper.dstHeight > 480))        {            JpegWrapper.srcWidth = 640;            JpegWrapper.srcHeight = 480;        }        #elif defined(__IMAGE_SENSOR_1M__)        if ((JpegWrapper.dstWidth > 1280) && (JpegWrapper.dstHeight > 1024))        {            JpegWrapper.srcWidth = 1280;            JpegWrapper.srcHeight = 1024;        }        #elif defined(__IMAGE_SENSOR_2M__)        if ((JpegWrapper.dstWidth > 1600) && (JpegWrapper.dstHeight > 1200))        {            JpegWrapper.srcWidth = 1600;            JpegWrapper.srcHeight = 1200;        }        #else        ASSERT(0);        #endif    #endif

在 2682 行左右

   #if defined(__YUVCAM_INTERPOLATION_SW__)        #if defined(__IMAGE_SENSOR_01M__)        if ((JpegWrapper.dstWidth > 352) && (JpegWrapper.dstHeight > 288))        {            MdpStillCapturePara.fullsize_image_width = 352;            MdpStillCapturePara.fullsize_image_height = 288;            CalStillCaptureInfo.MainImageWidth = 352;            CalStillCaptureInfo.MainImageHeight = 288;        }        #elif defined(__IMAGE_SENSOR_03M__)        if ((JpegWrapper.dstWidth > 640) && (JpegWrapper.dstHeight > 480))        {

Page 182: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

           MdpStillCapturePara.fullsize_image_width = 640;            MdpStillCapturePara.fullsize_image_height = 480;            CalStillCaptureInfo.MainImageWidth = 640;            CalStillCaptureInfo.MainImageHeight = 480;        }        #elif defined(__IMAGE_SENSOR_1M__)        if ((JpegWrapper.dstWidth > 1280) && (JpegWrapper.dstHeight > 1024))        {            MdpStillCapturePara.fullsize_image_width = 1280;            MdpStillCapturePara.fullsize_image_height = 1024;            CalStillCaptureInfo.MainImageWidth = 1280;            CalStillCaptureInfo.MainImageHeight = 1024;        }        #elif defined(__IMAGE_SENSOR_2M__)        if ((JpegWrapper.dstWidth > 1600) && (JpegWrapper.dstHeight > 1200))        {            MdpStillCapturePara.fullsize_image_width = 1600;            MdpStillCapturePara.fullsize_image_height = 1200;            CalStillCaptureInfo.MainImageWidth = 1600;            CalStillCaptureInfo.MainImageHeight = 1200;        }        #else        ASSERT(0);        #endif    #endif

然後 remake camera 謝謝

Page 183: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03462]MT6250 Serial and Parallel (串並

口) sensor dynamic 動態共存的方法 [DESCRIPTION]

MT6250 Serial and Parallel (串並口) sensor dynamic 動態共存的方法

[KEYWORD]

Sensor/Serial Sensor

[SOLUTION]

請在 camera_hw.c  CisModulePowerOn function 在判斷 if (On == KAL_TRUE) 時, CameraSccbInit 這行下面加上底下這段code

#if defined(__SERIAL_SENSOR_V1_SUPPORT__)if (CurrentSensorInfo.SensorIf == IMAGE_SENSOR_IF_SERIAL){GPIO_ModeSetup(52, 2);GPIO_ModeSetup(64, 2);}else{GPIO_ModeSetup(52, 1);GPIO_ModeSetup(64, 1);}#endif這相較於 codegen 是靜態static配置 GPIO 不同, 會根據不同 sensor 類型去配置相關的 GPIO

Page 184: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03593]MT6250 拍牆紙,桌布 wallpaper 出現

條紋問題 DESCRIPTION] MT6250 拍牆紙,桌布 wallpaper 出現條紋的問題 [KEYWORD] MT6250

11B

Image/Video Garbage

[SOLUTION] 已知11BW1224MP 第一個版本會有這個問題

解決方法為以下

請將 cal_cb.c 這個檔案的 約1644行附近的 pCbBuff->ImageBuffYAddr=ImageRotatePara.DestImageYBuffAddr;

改成 pCbBuff->ImageBuffYAddr=ImageRotatePara.DestImageYBuffAddr; pCbBuff->ImageBuffUAddr=ImageRotatePara.DestImageUBuffAddr; pCbBuff->ImageBuffVAddr=ImageRotatePara.DestImageVBuffAddr;

然後 remake camera 就可以了 謝謝

Page 185: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03594]MT6250 閃光燈 flashlight 無作用問

題 DESCRIPTION] MT6250 閃光燈 flashlight 無作用問題 [KEYWORD]

11B

Others

[SOLUTION] 已知11BW1224MP 第一個版本會有這個問題

解決方法為以下

\mcu\hal\camera\cal\src\cal_scenario_ctrl.c 1.

3330 行附近 找到        #ifdef __CAL_CAMERA_RAW_SENSOR_SUPPORT__         pfIspFunc->IspFeatureCtrl(ISP_FEATURE_CONFIG_3A_BEFORE_SENSOR_SWITCH_CAPTURE,

&IspConfig3APara, NULL, 0, &FeatureOutLen);        #endif

改成

//#ifdef __CAL_CAMERA_RAW_SENSOR_SUPPORT__         pfIspFunc->IspFeatureCtrl(ISP_FEATURE_CONFIG_3A_BEFORE_SENSOR_SWITCH_CAPTURE,

&IspConfig3APara, NULL, 0, &FeatureOutLen);        //#endif 2.

3000 行附近 找到

   #ifdef __CAL_CAMERA_RAW_SENSOR_SUPPORT__        IspConfig3APara.BinningMode=pCalIspCapturePara->BinningMode;        IspConfig3APara.ExpoBracketLevel=pCalIspCapturePara->ExpoBracketLevel;

Page 186: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

       IspConfig3APara.RawCaptureEnable=pCalIspCapturePara->RawCaptureEnable;        IspConfig3APara.MultishotInfo= pCalIspCapturePara->MultishotInfo;        IspConfig3APara.StillCaptureMode=pCalIspCapturePara->StillCaptureMode;    #endif

改成

//#ifdef __CAL_CAMERA_RAW_SENSOR_SUPPORT__        IspConfig3APara.BinningMode=pCalIspCapturePara->BinningMode;        IspConfig3APara.ExpoBracketLevel=pCalIspCapturePara->ExpoBracketLevel;        IspConfig3APara.RawCaptureEnable=pCalIspCapturePara->RawCaptureEnable;        IspConfig3APara.MultishotInfo= pCalIspCapturePara->MultishotInfo;        IspConfig3APara.StillCaptureMode=pCalIspCapturePara->StillCaptureMode;    //#endif 然後 remake camera , 這樣 flash light 的path 應該就串起來了

謝謝

Page 187: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03259]MT6255 2M sensor插值到5M实现方法 [DESCRIPTION] 在MT6255 11B W1144SP上面实现2M  sensor插值到5M拍照 [KEYWORD] MT6255 Interpolation [SOLUTION] 请修改以下代码:    

1.      在 project make file 中將 YUVCAM_INTERPOLATION 設成 HW2.      在option.mak文件中新增MT6255YUVCAM_INTERPOLATION_SUPPORT_PLATFORM = MT6235 MT6235B MT6253 MT6253EMT6253L MT6252 MT6252H MT62553.      在 \custom\drv\camera_common\sensor_capability.h 中 image sensor的 macro 還是按照原來的 resolution 設成__IMAGE_SENSOR_2M__ 4.      在 \custom\drv\camera_common\sensor_capability.h 中將底下這一段藍色的部份改成紅色的#if (defined(__YUVCAM_INTERPOLATION_SW__) ||defined(__YUVCAM_INTERPOLATION_HW__))   #if defined(__IMAGE_SENSOR_01M__)         #define IMAGE_SENSOR_TARGET_MAX_WIDTH                         IMAGE_03M_MAX_WIDTH         #define IMAGE_SENSOR_TARGET_MAX_HEIGHT                         IMAGE_03M_MAX_HEIGHT      #elif defined(__IMAGE_SENSOR_03M__)         #define IMAGE_SENSOR_TARGET_MAX_WIDTH                         IMAGE_1M_MAX_WIDTH         #define IMAGE_SENSOR_TARGET_MAX_HEIGHT                         IMAGE_1M_MAX_HEIGHT      #elif defined(__IMAGE_SENSOR_1M__)         #define IMAGE_SENSOR_TARGET_MAX_WIDTH                         IMAGE_2M_MAX_WIDTH         #define IMAGE_SENSOR_TARGET_MAX_HEIGHT                         IMAGE_2M_MAX_HEIGHT      #elif defined(__IMAGE_SENSOR_2M__)         #define IMAGE_SENSOR_TARGET_MAX_WIDTH                         IMAGE_3M_MAX_WIDTH         #define IMAGE_SENSOR_TARGET_MAX_HEIGHT                         IMAGE_3M_MAX_HEIGHT         #define IMAGE_SENSOR_TARGET_MAX_WIDTH                         IMAGE_5M_MAX_WIDTH

Page 188: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

         #define IMAGE_SENSOR_TARGET_MAX_HEIGHT                         IMAGE_5M_MAX_HEIGHT      #elif defined(__IMAGE_SENSOR_3M__)         #define IMAGE_SENSOR_TARGET_MAX_WIDTH                         IMAGE_5M_MAX_WIDTH         #define IMAGE_SENSOR_TARGET_MAX_HEIGHT                         IMAGE_5M_MAX_HEIGHT5.      在 \interface\hal\camera\cal_mem_def.h 中將底下這一段藍色的部份改成紅色的#if (defined(__YUVCAM_INTERPOLATION_SW__) ||defined(__YUVCAM_INTERPOLATION_HW__))   #if defined(__IMAGE_SENSOR_01M__)       #define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (300*1024)    /* 300KBfor 0.3M */   #elif defined(__IMAGE_SENSOR_03M__)       #define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (896*1024)    /* 896KBfor 1.3M */   #elif defined(__IMAGE_SENSOR_1M__)       #define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (1536*1024)   /* 1536KBfor 2M */   #elif defined(__IMAGE_SENSOR_2M__)#define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (2048*1024)   /* 2048KB for 3M*/#define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (3072*1024)   /* 3072KB for 5M*/   #elif defined(__IMAGE_SENSOR_3M__)       #define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (3072*1024)   /* 3072KBfor 5M */   #elif defined(__IMAGE_SENSOR_5M__)       #define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (5600*1024)   /* 5600KBfor 8M */   #elif defined(__IMAGE_SENSOR_8M__)       #define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (5600*1024)   /* 5600KBfor 8M */   #else       //#error "Please define max resolution of sensor in image_sensor.h"       #define MAX_STILL_CAPTURE_JPEG_BUFF_SIZE   (1*1024)   /* a dummybuffer if no sensor is selected */   #endif   // the address offset between raw image and JPEG image buffer whileoverlap these two buffers   // it is to minimize the requirement of memory while capture a picture   #if (defined(__IMAGE_SENSOR_03M__)||defined(__IMAGE_SENSOR_01M__))       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (88320)   #elif defined(__IMAGE_SENSOR_1M__)       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (93440)   #elif defined(__IMAGE_SENSOR_2M__)

Page 189: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (100608)       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (109312)   #elif defined(__IMAGE_SENSOR_3M__)       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (109312)   #elif defined(__IMAGE_SENSOR_5M__)       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (109312)   #elif defined(__IMAGE_SENSOR_8M__)       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (109312)   #else       #define CAL_RAW_IMAGE_JPEG_OVERLAP_OFFSET  (1024)         /* dummybuffer if no sensor is selcted */   #endif6.      在 \interface\hal\camera\isp_mem_def.h 中將底下這一段藍色的部份改成紅色的  #elif defined(MT6255)       #if defined(__JPEG_SENSOR_SUPPORT__)         #define ISP_IMAGE_BUF_SIZE        (0)      #else      #define ISP_IMAGE_BUF_SIZE      (IMAGE_SENSOR_SOURCE_MAX_WIDTH *IMAGE_SENSOR_SOURCE_MAX_HEIGHT * 3/2+32)     #define ISP_IMAGE_BUF_SIZE   (IMAGE_SENSOR_TARGET_MAX_WIDTH *IMAGE_SENSOR_TARGET_MAX_HEIGHT * 3/2+32)      #endif7.      不區分 main/sub 了(因為沒有定義IMAGE_SENSOR_TARGET_SUB_MAX_WIDTHHEIGHT),直接用 main 的 TARGET WIDTHHEIGHT 配置 (注意:也是有兩個地方要改)在 \hal\camera\cal\src\cal_scenario_ctrl.c 中在底下這一段中加入紅色的部份.if (CAL_CAMERA_SOURCE_MAIN == CurrentCameraId)  {Resolution = (IMAGE_SENSOR_SOURCE_MAX_WIDTH-6)*(IMAGE_SENSOR_SOURCE_MAX_HEIGHT-6);Resolution = (IMAGE_SENSOR_TARGET_MAX_WIDTH-6)*(IMAGE_SENSOR_TARGET_MAX_HEIGHT-6);}else if (CAL_CAMERA_SOURCE_SUB == CurrentCameraId)  {     Resolution = (IMAGE_SENSOR_SOURCE_SUB_MAX_WIDTH-6)*(IMAGE_SENSOR_SOURCE_SUB_MAX_HEIGHT-6);}#ifdef __YUVCAM_INTERPOLATION_HW__     Resolution = MdpStillCapturePara.fullsize_image_width *MdpStillCapturePara.fullsize_image_height;#endif請注意在 cal_scenario_ctrl.c 中有兩個地方有和這一段相同的 code, 兩個地方都要加.8.      紅色字體代表刪除, 藍色字體代表新增

修改mcu\hal\mdp\src\mt6255\idp_scen_camera_capture_to_jpeg_mt6255.cIdp_camera_capture_to_jpeg_read_user_config_hook()

Page 190: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

{  case IDP_CAMERA_CAPTURE_TO_JPEG_FULLSIZE_IMAGE_CAPTURE_WIDTH:    config.image_capture_width = va_arg(ap, kal_uint32);     if (IDP_CAMERA_CAPTURE_TO_JPEG_MAX_CAPTURED_WIDTH <config.image_capture_width)     {       return KAL_FALSE;     }         break;   case IDP_CAMERA_CAPTURE_TO_JPEG_FULLSIZE_IMAGE_CAPTURE_HEIGHT:     config.image_capture_height = va_arg(ap, kal_uint32);     if (IDP_CAMERA_CAPTURE_TO_JPEG_MAX_CAPTURED_WIDTH <config.image_capture_height)     {       return KAL_FALSE;     }     break;   case IDP_CAMERA_CAPTURE_TO_JPEG_CROP_WIDTH:     config.crop_width = va_arg(ap, kal_uint32);     if (IDP_CAMERA_CAPTURE_TO_JPEG_MAX_CAPTURED_WIDTH <config.crop_width)     {       return KAL_FALSE;     }     owner->have_config_resz_crz = KAL_FALSE;     SET_BIT(crz_struct.mask, IDP_RESZ_CRZ_MASK__SRC_WIDTH);        break;       case IDP_CAMERA_CAPTURE_TO_JPEG_CROP_HEIGHT:     config.crop_height = va_arg(ap, kal_uint32);           if (IDP_CAMERA_CAPTURE_TO_JPEG_MAX_CAPTURED_WIDTH <config.crop_height)     {       return KAL_FALSE;     }     owner->have_config_resz_crz = KAL_FALSE;     SET_BIT(crz_struct.mask, IDP_RESZ_CRZ_MASK__SRC_HEIGHT);              break;}然后再把添加菜单就可以了。

Page 191: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ02880]Panorama(全景拍照)及3D拍照功能

的使用限制? [DESCRIPTION] 应用Panorama(全景拍照)及3D拍照这两个feature存在的限制。

SW version: 11A & 11B

chip:  all

[KEYWORD] Others

[SOLUTION] 1.如果要Panorama(全景拍照),那么工程makefile中horizontal_camera必须设为

true,sensor_rotate不能设为零。即需要将camera模组横装

2.如果要3Dcamera模组横装或竖装都可以

Page 192: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03520]不插T卡无法进入camera preview [DESCRIPTION] 由于没有预留手机空间,只有插入T卡时才可以进入camera preview,如果需要实现不插入T卡时可进行相机预览,只有

当拍照时才提示插入T卡则可以参考以下修改方法: [KEYWORD] Camera MMI

[SOLUTION] 1 在函数mmi_camera_entry_app_pre_check()中删除如下代码 #if defined(__CAMERA_FEATURE_STORAGE__)    /*No phone storage*/    if (SRV_FMGR_PUBLIC_DRV == SRV_FMGR_CARD_DRV || SRV_FMGR_PUBLIC_DRV == FS_DRIVE_NOT_FOUND)    {        /* only memory card but plugout, need show popup*/        if (FS_NO_ERROR != FS_GetDevStatus(SRV_FMGR_CARD_DRV ,FS_MOUNT_STATE_ENUM))        {            MMI_CAMERA_DISPLAY_POPUP((PU8)GetString(STR_GLOBAL_INSERT_MEMORY_CARD), MMI_EVENT_FAILURE,

MMI_CAMERA_POPUP_RESULT_PROCESS_DELETE_GROUP);            return MMI_FALSE;        }    } #endif 2 在函数mmi_camera_pre_init_app()中删除else分支中的代码: /* check if path is valid or not. if not will pop up a screen after the preview screen is show */    cur_storage = mmi_imgview_get_storage();        if (mmi_camera_check_and_restore_valid_drv())    {       ......

   }    else    {        g_camera_cntx.last_error = MDI_RES_CAMERA_ERR_NO_DISK;        mmi_imgview_set_storage_not_ready();    } 3 在函数mmi_camera_entry_app_screen_internal()中删除如下代码:    /*No phone storage*/    if (SRV_FMGR_PUBLIC_DRV == SRV_FMGR_CARD_DRV || SRV_FMGR_PUBLIC_DRV == FS_DRIVE_NOT_FOUND)    {        /* only memory card but plugout, need show popup*/        if (FS_NO_ERROR != FS_GetDevStatus(SRV_FMGR_CARD_DRV ,FS_MOUNT_STATE_ENUM))        {            MMI_CAMERA_DISPLAY_POPUP((PU8)GetString(STR_GLOBAL_INSERT_MEMORY_CARD), MMI_EVENT_FAILURE,

Page 193: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

MMI_CAMERA_POPUP_RESULT_PROCESS_DELETE_GROUP);                        return;        }    } 4 在函数mmi_camera_capture_button_press()的开始添加如下代码: #if defined(__CAMERA_FEATURE_STORAGE__)    /*No phone storage*/    if (SRV_FMGR_PUBLIC_DRV == SRV_FMGR_CARD_DRV || SRV_FMGR_PUBLIC_DRV == FS_DRIVE_NOT_FOUND)    {        /* only memory card but plugout, need show popup*/        if (FS_NO_ERROR != FS_GetDevStatus(SRV_FMGR_CARD_DRV ,FS_MOUNT_STATE_ENUM))        {            MMI_CAMERA_DISPLAY_POPUP((PU8)GetString(STR_GLOBAL_INSERT_MEMORY_CARD), MMI_EVENT_FAILURE,

MMI_CAMERA_POPUP_RESULT_PROCESS_DELETE_GROUP);                        return;        }    } #endif

Page 194: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03552]反复拍照至手机空间满,在”not

enough memory”界面定屏 [DESCRIPTION] 拍照模式设置为contshot拍照,保存位置设置为手机,当空间满时会提示“not enough memory”,此时会概率性的定

屏,此时没有死机,只是界面没有刷新。 [KEYWORD] Camera MMI

[SOLUTION] 理论上当通用的popup框弹出时,会把当前的screen放到history中,同时会起一个timer, 当timer到时会调用原screen

的entry函数重新进入. Camcorder 应用是直接把 “not enough memory”提示信息直接绘制到osd上面,此时并不会退出preview screen, 也

没有相应的timer来控制,只会注册一个camera键的UP响应函数,如果此时camera键松开则会重新进入preview. 如果当“not enough memory”弹出后,并没有去响应camera键的 up函数,则会导致定屏 修改方法是当“not enough memory”弹出时,起一个timer来控制,当timer到时重新进入preview界面,参考代码如下

: 1 mmi_camco_cam_contshot_cyclic()中 if (result != MDI_RES_CAMERA_SUCCEED)    {        U16 string_id;        mmi_event_notify_enum popup_type;        srv_prof_tone_enum tone_type;        /* Camco is in MMI_CAMCO_STATE_CAM_PREVIEW or MMI_CAMCO_STATE_CAM_FOCUSING or           MMI_CAMCO_STATE_CAM_FOCUSED or MMI_CAMCO_STATE_CAM_CONTSHOT */        mmi_camco_cam_p->is_takepic_failed = MMI_TRUE;        if (mmi_camco_cam_p->is_autofocus_on)        {            mmi_camco_cam_autofocus_stop();        }        mmi_camco_cam_restore_filename_seq_no();        mmi_camco_cam_preview_stop();        string_id = mmi_camco_mapping_error_string(result, &popup_type);        tone_type = mmi_get_event_based_sound(popup_type);        if (tone_type != NONE_TONE)        {            srv_prof_play_tone(tone_type, NULL);        }        mmi_camco_set_base_layer(&g_mmi_camco_cntx.base_layer_handle,MMI_TRUE);        mmi_camco_osd_set_base_layer(g_mmi_camco_cntx.base_layer_handle);          mmi_camco_osd_set_bg_black();        mmi_camco_osd_hint_set_mode(MMI_CAMCO_OSD_STOP_HINT_MODE_CONFIRM_WITHOUT_BAR);                mmi_camco_osd_enter_state(MMI_CAMCO_OSD_STATE_CAMERA_CONTSHOT);

Page 195: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

       mmi_camco_osd_set_center_hint_str((CHAR*) GetString(string_id));        mmi_camco_osd_draw_osd(); //删除以下代码    #ifdef __MMI_CAMCO_FTE__        mmi_camco_osd_reg_evt_hdlr(mmi_camco_cam_contshot_select_evt_hdlr);        SetKeyHandler(mmi_camco_cam_capture_button_released, KEY_CAMERA, KEY_EVENT_UP);    #else /* __MMI_CAMCO_FTE__ */        mmi_camco_cam_contshot_set_key_hdlr();    #endif /* __MMI_CAMCO_FTE__ */        mmi_camco_need_restart_preview();        kal_sleep_task(300); //删除以上代码 //添加以下代码 mmi_camco_error_hdlr_timer_start(); return; //添加以上代码    } 2在函数mmi_camco_error_hdlr()中添加如下case: case MMI_CAMCO_STATE_CAM_CONTSHOT:        gui_cancel_timer(mmi_camco_cam_contshot_cyclic);        mmi_camco_cam_autofocus_stop();        mmi_camco_need_restart_preview();        mmi_camco_enter_state(MMI_CAMCO_STATE_CAM_PREVIEW);

Page 196: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ04123]在进行camera setting中shutter

sound左右选择时同时播放该sound的声音 [DESCRIPTION] 在进行camera setting中shutter sound左右选择时同时播放该sound的声音 [SOLUTION] 目前camera setting是直接调用inline cui来实现的,当shutter sound左右切换时不会去同时播放声音,可以按以下

修改方法来实现:

1 在cameraapp.c中增加如下全局变量: U8   camera_event_type;    /* event sub type */ U16  camera_item_id;       /* item id */ S32 camera_param;   2 在函数mmi_camera_group_proc()中做如下修改: 把 case EVT_ID_CUI_INLINE_NOTIFY:        break; 改为: case EVT_ID_CUI_INLINE_NOTIFY:    {        if(camera_event_type == CUI_INLINE_NOTIFY_SELECT_FOCUS_CHANGED)            {                if(camera_item_id == 1001)                    {                                                switch (camera_param)                            {                            case CAMERA_SETTING_SHUTTER_SOUND_1:                                {                                    #ifdef  __CAMERA_FEATURE_SHUTTER_SOUND_1__                                    mdi_audio_play_string_with_vol_path((void*)camera_sound_shutter_1,

(U32) CAMERA_SOUND_SHUTTER_1_LEN,                                    #if defined(__MMI_CAMERA_HIGH_END__)                                        MDI_FORMAT_WAV,                                    #else                                        MDI_FORMAT_DVI_ADPCM,                                    #endif                                        DEVICE_AUDIO_PLAY_ONCE,                                        NULL, NULL, CAMERA_SHUTTER_SOUND_VOLUMN,

MDI_DEVICE_SPEAKER_BOTH);                                    #endif /*__CAMERA_FEATURE_SHUTTER_SOUND_1__*/                                }

Page 197: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

                               break;                                                            case CAMERA_SETTING_SHUTTER_SOUND_2:                                {                                    #ifdef  __CAMERA_FEATURE_SHUTTER_SOUND_2__                                                mdi_audio_play_string_with_vol_path((void*)camera_sound_shutter_2,

(U32) CAMERA_SOUND_SHUTTER_2_LEN,                                    #if defined(__MMI_CAMERA_HIGH_END__)                                        MDI_FORMAT_WAV,                                    #else                                        MDI_FORMAT_DVI_ADPCM,                                    #endif                                        DEVICE_AUDIO_PLAY_ONCE,                                        NULL, NULL, CAMERA_SHUTTER_SOUND_VOLUMN,

MDI_DEVICE_SPEAKER_BOTH);                                    #endif /*__CAMERA_FEATURE_SHUTTER_SOUND_2__*/                                }                                break;                                                            case CAMERA_SETTING_SHUTTER_SOUND_3:                                {                                    #ifdef  __CAMERA_FEATURE_SHUTTER_SOUND_3__                                                mdi_audio_play_string_with_vol_path((void*)camera_sound_shutter_3,

(U32) CAMERA_SOUND_SHUTTER_3_LEN,                                    #if defined(__MMI_CAMERA_HIGH_END__)                                        MDI_FORMAT_WAV,                                    #else                                        MDI_FORMAT_DVI_ADPCM,                                    #endif                                        DEVICE_AUDIO_PLAY_ONCE,                                        NULL, NULL, CAMERA_SHUTTER_SOUND_VOLUMN,

MDI_DEVICE_SPEAKER_BOTH);                                    #endif /*__CAMERA_FEATURE_SHUTTER_SOUND_3__*/                                }                                break;                                                            case CAMERA_SETTING_SHUTTER_SOUND_OFF:                            default:                                /* do not play sound */                                break;                                 }                                            }                        }                camera_event_type = 0;        camera_item_id = 0;

Page 198: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

       camera_param = 0;        break;    }

3 在inlinecui.c中添加如下代码: extern U8   camera_event_type;    /* event sub type */ extern U16  camera_item_id;       /* item id */ extern S32 camera_param;  

4 在函数cui_inline_evt_item_select_focus_changed()中做如下修改: cui_event_inline_notify_struct evt;    //添加以下代码    camera_event_type = CUI_INLINE_NOTIFY_SELECT_FOCUS_CHANGED;    /* event sub type */    camera_item_id = p_instance->cui_inline_items[p_instance->highlight_item].common_data.item_id;

      /* item id */    camera_param = select_index;    //添加以上代码    select_data = (cui_inline_select_struct *)&(p_instance->cui_inline_items[p_instance-

>highlight_item].special_data);    MMI_FRM_INIT_GROUP_EVENT(&evt, EVT_ID_CUI_INLINE_NOTIFY, p_instance->gid);    evt.event_type = CUI_INLINE_NOTIFY_SELECT_FOCUS_CHANGED;    evt.item_id = p_instance->cui_inline_items[p_instance->highlight_item].common_data.item_id;    evt.param = select_index;    evt.param_ext = select_data->old_index;

Page 199: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03529]如何使用多個兼容攝像頭(Multiple

Backup Sensor) [DESCRIPTION] Currently, we support one backup sensor interface for main and sub cameras only. In order to support multiple backup sensors, we have to build and link more sensor drivers into one single BIN files. That enables customer can use various sensors without re-build the load.

[KEYWORD] Sensor/Serial Sensor [SOLUTION] 1. Modify the value of MAX_SENSOR_SUPPORT_NUMBER that is defined in

\mcu\interface\hal\camera\sensor_comm_def.h The default value of it is 5 that’s for one main sensor, one main backup sensor,

one sub sensor, one sub backup sensor and one MATV. Modify the number for supporting more main and sub backup sensors.

For example, if you want to build in 4 main backup sensor and 2 sub backup sensor,

please set the number as 9.

2. Add new feature options and set them correctly in project make file.

CMOS_SENSOR_BAK2 ~ CMOS_SENSOR_BAKn

and CMOS_SENSOR_SUB_BAK2 ~  CMOS_SENSOR_SUB_BAKn.

(Where n is depend on how many backup sensors you would to build in)

3.

Page 200: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

Add the include path and compile option in option_hal.mak as follows

(where n is the nth backup sensor that starts from 2) for all backup sensors

(main/sub). ifdef CMOS_SENSOR_BAKn  ifneq ($(strip $(CMOS_SENSOR_BAKn)),NONE)    ifeq ($(strip $(SENSOR_TYPE)),RAW)      COMMINCDIRS += custom\drv\image_sensor\$(strip $(CMOS_SENSOR_BAKn))    endif    ifeq ($(strip $(SENSOR_TYPE)),YUV)      COMMINCDIRS  += custom\drv\YUV_sensor\$(strip $(CMOS_SENSOR_BAKn))    endif  endif  COM_DEFS += $(strip $(CMOS_SENSOR_BAKn))_$(strip $(SENSOR_TYPE))  $(strip $(

CMOS_SENSOR_BAKn))_$(strip $(SENSOR_TYPE))_BAK1 endif 4.

Add the compile files in \mcu\make\custom\custom.mak for every backup sensors as

follows.

(main/sub, the example is main) ifdef CMOS_SENSOR_BAK1   ifneq ($(strip $(CMOS_SENSOR_BAK1)),NONE)      ifneq ($(strip $(CMOS_SENSOR_BAKn)),NONE)         ifeq ($(strip $(SENSOR_TYPE)),RAW)             SENSOR_MODULE_FOLDER = $(shell dir custom\drv\image_sensor\$(strip             $(CMOS_SENSOR_BAKn)) /b 2>nul)             ifneq ($(words $(strip $(SENSOR_MODULE_FOLDER))),0)               FOLDER_LIST += custom\drv\image_sensor\$(strip $(CMOS_SENSOR_BAKn))               INC_DIR += custom\drv\image_sensor\$(strip $(CMOS_SENSOR_BAKn))               SRC_PATH += custom\drv\image_sensor\$(strip $(CMOS_SENSOR_BAKn))             else                $(error ERROR:The folder( custom\drv\image_sensor\$(strip                        $(CMOS_SENSOR_BAKn)) ) is not existed,please check CMOS_SENSOR                setting)             endif                  endif

        ifeq ($(strip $(SENSOR_TYPE)),YUV)             SENSOR_MODULE_FOLDER = $(shell dir custom\drv\YUV_sensor\$(strip             $(CMOS_SENSOR_BAKn)) /b 2>nul)             ifneq ($(words $(strip $(SENSOR_MODULE_FOLDER))),0)               FOLDER_LIST += custom\drv\YUV_sensor\$(strip $(CMOS_SENSOR_BAKn))               INC_DIR += custom\drv\YUV_sensor\$(strip $(CMOS_SENSOR_BAKn))

Page 201: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

              SRC_PATH += custom\drv\YUV_sensor\$(strip $(CMOS_SENSOR_BAKn))             else                $(error ERROR:The folder( custom\drv\YUV_sensor\$(strip                $(CMOS_SENSOR_BAKn)) ) is not existed,please check CMOS_SENSOR setting)             endif         endif          endif       endif     endif Notes: –For sub backup sensor, please apply similar flow to support multiplebackup sensors. (CMOS_SENSOR_XXX è CMOS_SENSOR_SUB_XXX) –The first launch time of camera preview after format may be longer sincewe may have to scan all sensors to find the mounted sensor. It is dependson the index of the mounted sensor in the sensor list array. After that,the sensor ID will be stored in NVRAM and we do not need to scan thesensor while launch camera. –If you want to change the backup sensor after first launch camera,please remember to format the phone first. –We define the compile option, $(CMOS_SENSOR_BAKn))_$(strip$(SENSOR_TYPE))_BAK1, for CMOS_SENSOR_BAKn such that we do not need tomodify the \mcu\custom\drv\camera_common\image_sensor.c except new sensordriver is added. –The resolution of main backup sensor must be the same as main sensor.And the resolution of sub backup sensor must be the same as sub sensor.

Page 202: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03705]文件管理中手机项格式化,进照相机

和视频播放器会直接进入文件管理,并且选手机

会提示存储空间不足 [DESCRIPTION] 因为没有手机盘空间所以自己设了 NOR_BOOTING_NOR_FS_FIRST_DRIVE_SECTORS 为一定的值,手机盘出现在文件管理中

,但将文件管理中手机盘格式化后,进照相机和视频播放器会直接进入文件管理,并且选手机会提示存储空间不足 [SOLUTION] 在函数void RTFAPI MountLogicalDrive(RTFDrive * Drive, MountStates State)中把 #ifndef __FS_CARD_DOWNLOAD__         // Always ount free clusters right away         // 1. at system init         // 2. at FS_LockFAT(FS_REMOUNT_ENUM) or FS_TestMSDC, FS_DEVICE_COUNT_FREE_CLUSTER will be set

before call MountRemovableDevice().         if ((kal_query_systemInit() == KAL_TRUE) ||             (Drive->Dev->DevData.Reserved & FS_DEVICE_COUNT_FREE_CLUSTER))  {            BatchCountFreeClusters(Drive);         }          #endif 修改为 #ifndef __FS_CARD_DOWNLOAD__         // Always ount free clusters right away         // 1. at system init         // 2. at FS_LockFAT(FS_REMOUNT_ENUM) or FS_TestMSDC, FS_DEVICE_COUNT_FREE_CLUSTER will be set

before call MountRemovableDevice().         if ((kal_query_systemInit() == KAL_TRUE) ||             (Drive->Dev->DeviceNumber == gFS_DeviceNumOfSYSDRV) ||             (Drive->Dev->DevData.Reserved & FS_DEVICE_COUNT_FREE_CLUSTER))  {            BatchCountFreeClusters(Drive);         } #endif

Page 203: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ03394]浏览代码(hal\postproc)发现核心的

代码(hal\postproc\postproc_sec)都没有源码? [DESCRIPTION] 浏览代码(hal\postproc)发现核心的代码(hal\postproc\postproc_sec)都没有源码? 1.是否可以开放fd_core.c这个

文件的源码? 2.请提供人脸捕捉,人脸检测,人脸比对的接口和算法 3.我司不理解g_fd_data_1和g_fd_data_2,请告

知我司如何生成特征数据值的方法

[KEYWORD] Others

[SOLUTION] hal\postproc\postproc_sec裡面的source code是FD, SD, AutoRama, HDR, MAV等postproc相關的核心演算法,屬於

MTK Confidential的部分,故不開放給客戶瀏覽。

Page 204: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

[FAQ04085]连拍时回显界面不更新 [DESCRIPTION] 在6250或6255平台进入相机,选择continuous shot, 连拍时回显界面是静止的,不更新 [SOLUTION] 需要release patch MAUI_03221435,

6255平台需要release patch MAUI_03250938,

请提交CR, 我司会尽快帮忙release.

Page 205: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

专注于微波、射频、天线设计人才的培养 易迪拓培训 网址:http://www.edatop.com

射 频 和 天 线 设 计 培 训 课 程 推 荐

易迪拓培训(www.edatop.com)由数名来自于研发第一线的资深工程师发起成立,致力并专注于微

波、射频、天线设计研发人才的培养;我们于 2006 年整合合并微波 EDA 网(www.mweda.com),现

已发展成为国内最大的微波射频和天线设计人才培养基地,成功推出多套微波射频以及天线设计经典

培训课程和 ADS、HFSS 等专业软件使用培训课程,广受客户好评;并先后与人民邮电出版社、电子

工业出版社合作出版了多本专业图书,帮助数万名工程师提升了专业技术能力。客户遍布中兴通讯、

研通高频、埃威航电、国人通信等多家国内知名公司,以及台湾工业技术研究院、永业科技、全一电

子等多家台湾地区企业。

易迪拓培训推荐课程列表: http://www.edatop.com/peixun/tuijian/

射频工程师养成培训课程套装

该套装精选了射频专业基础培训课程、射频仿真设计培训课程和射频电

路测量培训课程三个类别共 30 门视频培训课程和 3 本图书教材;旨在

引领学员全面学习一个射频工程师需要熟悉、理解和掌握的专业知识和

研发设计能力。通过套装的学习,能够让学员完全达到和胜任一个合格

的射频工程师的要求…

课程网址:http://www.edatop.com/peixun/rfe/110.html

手机天线设计培训视频课程

该套课程全面讲授了当前手机天线相关设计技术,内容涵盖了早期的

外置螺旋手机天线设计,最常用的几种手机内置天线类型——如

monopole 天线、PIFA 天线、Loop 天线和 FICA 天线的设计,以及当前

高端智能手机中较常用的金属边框和全金属外壳手机天线的设计;通

过该套课程的学习,可以帮助您快速、全面、系统地学习、了解和掌

握各种类型的手机天线设计,以及天线及其匹配电路的设计和调试...

课程网址: http://www.edatop.com/peixun/antenna/133.html

WiFi 和蓝牙天线设计培训课程

该套课程是李明洋老师应邀给惠普 (HP)公司工程师讲授的 3 天员工内

训课程录像,课程内容是李明洋老师十多年工作经验积累和总结,主要

讲解了 WiFi 天线设计、HFSS 天线设计软件的使用,匹配电路设计调

试、矢量网络分析仪的使用操作、WiFi 射频电路和 PCB Layout 知识,

以及 EMC 问题的分析解决思路等内容。对于正在从事射频设计和天线

设计领域工作的您,绝对值得拥有和学习!…

课程网址:http://www.edatop.com/peixun/antenna/134.html

Page 206: MTK on-line > FAQ > SW © 2008-2012 MediaTek Inc. ALL ...bbs.hwrf.com.cn/down52/mtk52rf03142.pdf · MTK on-line > FAQ > SW ... 若是使用MTK Release的Sensor Driver ... ,或不触摸Touch

`

专注于微波、射频、天线设计人才的培养 易迪拓培训 网址:http://www.edatop.com

CST 学习培训课程套装

该培训套装由易迪拓培训联合微波 EDA 网共同推出,是最全面、系统、

专业的 CST 微波工作室培训课程套装,所有课程都由经验丰富的专家授

课,视频教学,可以帮助您从零开始,全面系统地学习 CST 微波工作的

各项功能及其在微波射频、天线设计等领域的设计应用。且购买该套装,

还可超值赠送 3 个月免费学习答疑…

课程网址:http://www.edatop.com/peixun/cst/24.html

HFSS 学习培训课程套装

该套课程套装包含了本站全部 HFSS 培训课程,是迄今国内最全面、最

专业的 HFSS 培训教程套装,可以帮助您从零开始,全面深入学习 HFSS

的各项功能和在多个方面的工程应用。购买套装,更可超值赠送 3 个月

免费学习答疑,随时解答您学习过程中遇到的棘手问题,让您的 HFSS

学习更加轻松顺畅…

课程网址:http://www.edatop.com/peixun/hfss/11.html

ADS 学习培训课程套装

该套装是迄今国内最全面、最权威的 ADS 培训教程,共包含 10 门 ADS

学习培训课程。课程是由具有多年 ADS 使用经验的微波射频与通信系统

设计领域资深专家讲解,并多结合设计实例,由浅入深、详细而又全面

地讲解了 ADS 在微波射频电路设计、通信系统设计和电磁仿真设计方面

的内容。能让您在最短的时间内学会使用 ADS,迅速提升个人技术能力,

把 ADS 真正应用到实际研发工作中去,成为 ADS 设计专家...

课程网址: http://www.edatop.com/peixun/ads/13.html

我们的课程优势:

※ 成立于 2004 年,10 多年丰富的行业经验,

※ 一直致力并专注于微波射频和天线设计工程师的培养,更了解该行业对人才的要求

※ 经验丰富的一线资深工程师讲授,结合实际工程案例,直观、实用、易学

联系我们:

※ 易迪拓培训官网:http://www.edatop.com

※ 微波 EDA 网:http://www.mweda.com

※ 官方淘宝店:http://shop36920890.taobao.com

专注于微波、射频、天线设计人才的培养

官方网址:http://www.edatop.com 易迪拓培训 淘宝网店:http://shop36920890.taobao.com