📄 venc270.c
字号:
/*
DM270 ARM Evaluation Software
(c)Texas Instruments 2003
*/
/**
\file venc270.c
\brief Video Encoder Related APIs
*/
#include <venc270.h>
#include <busc270.h>
/**
\brief Set Video Encoder composite output (NTSC/PAL) configuration
\param vencConfig Video Encoder composite output (NTSC/PAL) configuration
\return if success, \c E_PASS, else error code
\note
This routine does not enable the video encoder use VENC_enable(TRUE) to enable video encoder
\see VENC_ConfigData
*/
STATUS VENC_setConfig( VENC_ConfigData *vencConfig ) {
Uint16 regmask, regval;
if(BUSC_getDeviceRevision()!=DM270_ES1_0 ) {
vencConfig->enableDacPowerDown = (BOOL)!vencConfig->enableDacPowerDown;
}
regval = VENC_FMK( VID01, NTPLS, vencConfig->vidStd ) |
VENC_FMK( VID01, SCMD, vencConfig->scanMode ) |
VENC_FMK( VID01, CRCUT, vencConfig->crCutoff ) |
VENC_FMK( VID01, SETUP, vencConfig->setup ) |
VENC_FMK( VID01, YFLT, vencConfig->enableYlpf ) |
VENC_FMK( VID01, DAPD, vencConfig->enableDacPowerDown ) |
VENC_FMK( VID01, DAOE, vencConfig->enableDac ) |
VENC_FMK( VID01, VOUT, vencConfig->enableVidOut ) |
VENC_FMK( VID01, BLANK, vencConfig->enableSyncOutOnly ) ;
regmask= VENC_FMK( VID01, NTPLS, 0xFFFF ) |
VENC_FMK( VID01, SCMD, 0xFFFF ) |
VENC_FMK( VID01, CRCUT, 0xFFFF ) |
VENC_FMK( VID01, SETUP, 0xFFFF ) |
VENC_FMK( VID01, YFLT, 0xFFFF ) |
VENC_FMK( VID01, DAPD, 0xFFFF ) |
VENC_FMK( VID01, DAOE, 0xFFFF ) |
VENC_FMK( VID01, VOUT, 0xFFFF ) |
VENC_FMK( VID01, BLANK, 0xFFFF ) ;
VENC_RAOI( VID01, ~regmask, regval, 0);
regval = VENC_FMK( VID02, VIMD, vencConfig->vidMode ) |
VENC_FMK( VID02, INLVL, vencConfig->amplitude ) |
VENC_FMK( VID02, SYSW, vencConfig->syncType ) |
VENC_FMK( VID02, VSSW, vencConfig->vsyncPort ) |
VENC_FMK( VID02, SYNE, vencConfig->enableSync ) |
VENC_FMK( VID02, BREN, vencConfig->enableBrightControl ) |
VENC_FMK( VID02, BRPL, vencConfig->brightPolarityInverse ) |
VENC_FMK( VID02, BRWDTH, vencConfig->brightCtrlSignalWidth ) ;
regmask= VENC_FMK( VID02, VIMD, 0xFFFF ) |
VENC_FMK( VID02, INLVL, 0xFFFF ) |
VENC_FMK( VID02, SYSW, 0xFFFF ) |
VENC_FMK( VID02, VSSW, 0xFFFF ) |
VENC_FMK( VID02, SYNE, 0xFFFF ) |
VENC_FMK( VID02, BREN, 0xFFFF ) |
VENC_FMK( VID02, BRPL, 0xFFFF ) |
VENC_FMK( VID02, BRWDTH, 0xFFFF ) ;
VENC_RAOI( VID02, ~regmask, regval, 0);
return E_PASS;
}
/**
\brief Video Encoder enable/disable
\param enable TRUE: VENC enable, FALSE: VENC disable
\return if success, \c E_PASS, else error code
*/
STATUS VENC_enable( BOOL enable) {
VENC_FSET( VID01, VENC, enable == TRUE ? 1 : 0);
return E_PASS;
}
/**
\brief Video DAC, DAC power down mode enable/disable
\param enable TRUE: DAC enable, FALSE: DAC disable
\param powerDownMode TRUE: DAC power-down mode, FALSE: normal mode
\return if success, \c E_PASS, else error code
*/
STATUS VENC_dacEnable( BOOL enable, BOOL powerDownMode ) {
VENC_FSET( VID01, DAPD, powerDownMode == TRUE ? 1 : 0 );
VENC_FSET( VID01, DAOE, enable == TRUE ? 1 : 0);
return E_PASS;
}
/**
\brief Video Output enable/disable
\param enable TRUE: VOUT enable, FALSE: VOUT disable
\return if success, \c E_PASS, else error code
*/
STATUS VENC_vidOutEnable( BOOL enable ) {
VENC_FSET( VID01, VOUT, enable == TRUE ? 1 : 0);
return E_PASS;
}
/**
\brief Color Bar enable/disable
\param enable TRUE: Color bar enable, FALSE: Color bar disable
\param type Color bar type, 0: 75%, 1: 100%
\return if success, \c E_PASS, else error code
*/
STATUS VENC_enableColorBar( BOOL enable, Uint8 type ) {
VENC_FSET( VID01, CBEN, enable == TRUE ? 1 : 0);
VENC_FSET( VID01, CBTYP, type );
return E_PASS;
}
/**
\brief Return current analog output mode
\return VENC_NTSC: Current output mode is NTSC standard \n VENC_PAL: Current output mode is PAL standard
*/
Uint8 VENC_getNtscPalStatus() {
if( VENC_FGET(VID01, NTPLS) == 0 )
return VENC_NTSC;
else
return VENC_PAL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -