软硬件:[SDK_2308_20111028][TCC8801F_D2_08x4_SV6.3]VIDEO DUAL DISPLAY(LCD+HDMI/LCD+CVBS)
==========================================================
1. Tcc_used_mem_tcc8800.h (z:\gingerbreadrel\bootable\bootloader\lk\include\arch) 文件中打开宏定义"
#define VIDEO_DUAL_DISPLAY
", 以此获得需要的Memory;(不知道为什么, 最好还是一起打开"
#define USE_CAMERA
")
//#define USE_VIQE
#define USE_CAMERA
#ifdef _M803_
#define USE_LVDS
#else
//#define USE_LVDS
#endif
#define VIDEO_DUAL_DISPLAY
//#define USE_CC_UI_LAYER
/* Memory Allocations */
2. Z:\gingerbreadRel\device\telechips\tcc8800\device.mk 文件添加prop变量"
persist.sys.video_daul_display = 1
"
DEVICE_PACKAGE_OVERLAYS := device/telechips/tcc8800/overlay
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.video_daul_display = 1
$(call inherit-product, device/telechips/tcc8800/device_base.mk)
这个"
persist.sys.video_daul_display
"是我在TCCRendererOutHw.cpp (mywork\gingerbreaddev\hardware\telechips\common\stagefright\libstagefrighthw) 文件中发现的, 如下面蓝色部分代码:
int TCCRendererOutHw::initDevice()
{
..............................................................................
..............................................................................
// select video display output module : LCD, HDMI, COMPOSITE, COMPONENT , DUAL..
pMParm->mOutputMode = 0; //lcd mode
if(pMParm->mHDMIOutput || pMParm->mComponentOutput || pMParm->mCompositeOutput)
{
int dual_display;
property_get("persist.sys.video_daul_display", value, "0");
dual_display = atoi(value);
if(dual_display)
pMParm->mOutputMode = 2;
else
pMParm->mOutputMode = 1;
}
LOGI("initDevice pMParm->mOutputMode:%d pMParm->mHDMIOutput[%d] pMParm->mComponentOutput[%d] || pMParm->mCompositeOutput[%d]",pMParm->mOutputMode ,pMParm->mHDMIOutput, pMParm->mComponentOutput, pMParm->mCompositeOutput) ;
.......................................................................................
.......................................................................................
}
3. TCC7801,TCC7901,TCC89XX,TCC88XX发展这么多代了, M2MSCALER控制器都一直只有两个通道(channel). 如果VIDEO DUAL DISPLAY(HDMI/CVBS) , 那么两个通道的M2MSCALER都被用给了Video播放; 因此我们不能Android UI显示在TV(HDMI/CVBS)上. 所以需要做下面的修改:
Tccfb.c (z:\gingerbreadrel\kernel\drivers\video\tcc) 文件中添加宏定义:
#include <mach/tca_fb_hdmi.h>
#include <mach/tca_fb_output.h>
#include <mach/tca_lcdc.h>
#include <linux/console.h>
#define CONFIG_TCC_HDMI_UI_DISPLAY_OFF //-->不让Android UI在TV上显示
#ifdef TCC_VIDEO_DISPLAY_DEINTERLACE_MODE
#include "tcc_viqe_interface.h"
#endif
本文转载自:
http://user.qzone.qq.com/26290056/blog/1322191324?ptlang=2052&ADUIN=610319252&ADSESSION=1322524711&ADTAG=CLIENT.QQ.3847_FriendTip_QzoneFolder.0#!