📄 csl_venchwsetup.c
字号:
/** @file csl_vencHwSetup.c
*
* @brief File for functional layer of CSL API @a CSL_vencHwSetup()
*
* Description
* - The @a CSL_vencHwSetup() function definition & it's associated
* functions
*
* Modification 1
* - Modified on: 10/4/2004
* - Reason: created the sources
*
* @date 4th October, 2004
* @author Santosh Narayanan.
*/
#include <csl_venc.h>
#pragma CODE_SECTION (CSL_vencHwSetup, ".text:csl_section:venc");
/** @brief Configures the VENC using the values passed in through the
* setup structure.
*/
CSL_Status CSL_vencHwSetup(
/** Pointer to the object that holds reference to the
* instance of VENC requested after the call
*/
CSL_VencHandle hVenc,
/** Pointer to setup structure which contains the
* information to program VENC to a useful state
*/
CSL_VencHwSetup *setup
){
CSL_Status status = CSL_SOK;
Uint16 videoMode;
/* Extract video output mode */
videoMode = setup->videoOutMode;
if((videoMode == CSL_VENC_ANALOG_MODE) ||(videoMode == CSL_VENC_MIXED_MODE)) {
/* Analog Video mode specific settings */
hVenc->regs->VMOD = (hVenc->regs->VMOD & 0xFFFFF1F5)
|(CSL_FMK(VENC_VMOD_ITLC, setup->vencAnalogVideoConfig->scanMode)
|CSL_FMK(VENC_VMOD_ITLCL, setup->vencAnalogVideoConfig->itlcl)
|CSL_FMK(VENC_VMOD_NSIT, setup->vencAnalogVideoConfig->nsit)
|CSL_FMK(VENC_VMOD_BLNK, setup->vencAnalogVideoConfig->blankMode)
|CSL_FMK(VENC_VMOD_VIE, setup->vencAnalogVideoConfig->compositeOut));
hVenc->regs->DACSEL = (hVenc->regs->VDPRO & 0xFFFF0000)
|(CSL_FMK(VENC_DACSEL_DA3S, setup->vencAnalogVideoConfig->da3s)
|CSL_FMK(VENC_DACSEL_DA2S, setup->vencAnalogVideoConfig->da2s)
|CSL_FMK(VENC_DACSEL_DA1S, setup->vencAnalogVideoConfig->da1s)
|CSL_FMK(VENC_DACSEL_DA0S, setup->vencAnalogVideoConfig->da0s));
hVenc->regs->ARGBX0 = CSL_FMK(VENC_ARGBX0_AGY, setup->vencAnalogVideoConfig->analogRGBMat0);
hVenc->regs->ARGBX1 = CSL_FMK(VENC_ARGBX1_ARV, setup->vencAnalogVideoConfig->analogRGBMat1);
hVenc->regs->ARGBX2 = CSL_FMK(VENC_ARGBX2_AGU, setup->vencAnalogVideoConfig->analogRGBMat2);
hVenc->regs->ARGBX3 = CSL_FMK(VENC_ARGBX3_AGV, setup->vencAnalogVideoConfig->analogRGBMat3);
hVenc->regs->ARGBX4 = CSL_FMK(VENC_ARGBX4_ABU, setup->vencAnalogVideoConfig->analogRGBMat4);
}
if((videoMode == CSL_VENC_DIGITAL_MODE) ||(videoMode == CSL_VENC_MIXED_MODE)) {
/* Digital Video mode specific settings */
hVenc->regs->VMOD = (hVenc->regs->VMOD & 0xFFFF8FFF)
|CSL_FMK(VENC_VMOD_VDMD, setup->vencDigitalConfig->videoMode);
hVenc->regs->VIDCTL = (hVenc->regs->VIDCTL & 0xFFFF8FC0)
|(CSL_FMK(VENC_VIDCTL_VCLKP, setup->vencDigitalConfig->vclkp)
|CSL_FMK(VENC_VIDCTL_VCLKE, setup->vencDigitalConfig->vclke)
|CSL_FMK(VENC_VIDCTL_VCLKZ, setup->vencDigitalConfig->vclkz)
|CSL_FMK(VENC_VIDCTL_DOMD, setup->vencDigitalConfig->digDataOpMode)
|CSL_FMK(VENC_VIDCTL_YCSWAP, setup->vencDigitalConfig->ycswap)
|CSL_FMK(VENC_VIDCTL_YCOL, setup->vencDigitalConfig->ycol)
|CSL_FMK(VENC_VIDCTL_YCOMD, setup->vencDigitalConfig->ycomd)
|CSL_FMK(VENC_VIDCTL_YCDIR, setup->vencDigitalConfig->ycdir));
hVenc->regs->DRGBX0 = CSL_FMK(VENC_DRGBX0_DGY, setup->vencDigitalConfig->digRGBMat0);
hVenc->regs->DRGBX1 = CSL_FMK(VENC_DRGBX1_DRV, setup->vencDigitalConfig->digRGBMat1);
hVenc->regs->DRGBX2 = CSL_FMK(VENC_DRGBX2_DGU, setup->vencDigitalConfig->digRGBMat2);
hVenc->regs->DRGBX3 = CSL_FMK(VENC_DRGBX3_DGV, setup->vencDigitalConfig->digRGBMat3);
hVenc->regs->DRGBX4 = CSL_FMK(VENC_DRGBX4_DBU, setup->vencDigitalConfig->digRGBMat4);
}
return status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -