?? tvenc_test.c
字號:
LCD_SetClkVal(4);
//LCD_EnableRgbPort();
if(uImgSz)
{
TVENCT_GetTVFullSize(&uWidth, &uHeight);
}
else
{
uWidth = uLcdHsz;
uHeight = uLcdVsz;
}
// FIMC 3.0
CAMERA_SFRInit();
CAMERA_InitSensor();
if(uCamOut == DMA)
CAMERA_InitPreviewPath_1(uLcdHsz, uLcdVsz, uImgAddr, uImgAddr1, YCBYCR, FLIP_NO, ROT_0);
else if(uCamOut == FIFO)
CAMERA_InitPreviewPathToFifoOut(uLcdHsz, uLcdVsz, YCBYCR);
CAMERA_StartPreviewPath();
// TV ENCODER 2.0
TVENC_SetImageSize(uWidth*2, uHeight);
TVENC_TurnOnOff(1);
// POST 2.5
#if 0
POST_InitIpForFifoInFifoOut(uLcdHsz, uLcdVsz, uWidth*2, uHeight, YUV, ONE_SHOT, &oSc);
POST_SetAutoLoadEnable(FREE_RUN, &oSc);
POST_SetInterlaceModeOnOff(1, &oSc);
POST_SetInFifoMode(POST_FIFO, &oSc);
POST_StartProcessing(&oSc);
#else
POST_InitIpForFifoInFifoOut(uLcdHsz, uLcdVsz, uWidth*2, uHeight, YUV, FREE_RUN, &oSc);
POST_SetInterlaceModeOnOff(1, &oSc);
POST_StartProcessing(&oSc);
#endif
LCD_Start();
//INTC_SetHandlerAndUnmask(INT_TVENC0, Isr_FifoUnderrun);
//INTC_SetHandlerAndUnmask(INT_CAMIF_P, Isr_CamPview);
INTC_Enable(NUM_TVENC);
INTC_SetVectAddr(NUM_TVENC, Isr_FifoUnderrun);
INTC_Enable(NUM_CAMIF_P);
INTC_SetVectAddr(NUM_CAMIF_P, Isr_CamPview);
// POST 2.5
if(uCamOut == DMA)
{
POST_InitIpForDmaInFifoOut(uLcdHsz, uLcdVsz, uImgAddr, YCBYCR, uLcdHsz, uLcdVsz, RGB, 1, &oPost);
POST_SetNextFrameStAddr(uImgAddr, 0, &oPost);
//POST_SetNextFrameStAddr(uImgAddr1, 0, &oPost); //rb1004
POST_SetInterlaceModeOnOff(0, &oPost);
POST_StartProcessing(&oPost);
}
TVENCT_SetTVParameter();
//INTC_Mask(INT_TVENC0);
//INTC_Mask(INT_CAMIF_P);
INTC_Disable(NUM_TVENC);
INTC_Disable(NUM_CAMIF_P);
// oPost die..
if(uCamOut == DMA)
{
POST_StopProcessingOfFreeRun(&oPost);
while (!POST_IsProcessingDone(&oPost));
}
// oScaler die..
POST_SetInterlaceModeOnOff(0, &oSc);
POST_StopProcessingOfFreeRun(&oSc);
Delay(1000);
// oLcdc die..
LCD_DisableRgbPort(); //rb1004
LCD_Stop();
// oTvenc die..
TVENC_TurnOnOff(0);
// oCim die..
CAMERA_StopPreviewPath();
}
static void TVENCT_MultiLayer_POST_CPUFIMD_Scaler_Enc(void)
{
u32 uImgSz, uWidth, uHeight;
u32 uLcdHsz, uLcdVsz;
uImgAddr = CODEC_MEM_ST;
uImgAddr1 = CODEC_MEM_LMT;
UART_Printf("Select Image Size\n");
UART_Printf("[0] : Original Image Size\n");
UART_Printf("[1] : Full Screen size\n");
UART_Printf("Select number : ");
uImgSz = UART_GetIntNum();
uLcdHsz = 240; uLcdVsz = 320;
if(uImgSz)
{
TVENCT_GetTVFullSize(&uWidth, &uHeight);
}
else
{
uWidth = uLcdHsz;
uHeight = uLcdVsz;
}
//INTC_InitIp();
// FIMC 3.0
CAMERA_InitSensor();
CAMERA_InitPreviewPath_1(uLcdHsz, uLcdVsz, uImgAddr, uImgAddr1, YCBYCR, FLIP_NO, ROT_0);
CAMERA_StartPreviewPath();
// TV ENCODER 2.0
TVENC_SetImageSize(uWidth*2, uHeight);
TVENC_TurnOnOff(1);
// POST 2.5
POST_InitIpForFifoInFifoOut(uLcdHsz, uLcdVsz, uWidth*2, uHeight, YUV, ONE_SHOT, &oSc);
POST_SetAutoLoadEnable(FREE_RUN, &oSc);
POST_SetInterlaceModeOnOff(1, &oSc);
POST_SetInFifoMode(POST_FIFO, &oSc);
POST_StartProcessing(&oSc);
// FIMD 4.0
// background
//LCD_InitLDI(MAIN);
LCD_InitBase();
LCD_InitWinForFifoIn(IN_POST, WIN0);
LCD_SetWinOnOff(1, WIN0);
LCD_SetOutputPath(LCD_TVI80F);
LCD_SetI80Timing(0, 1, 4, 0, MAIN); // cs_setup/wr_setup/wr_act/wr_hold at 40MHz HCLK
// foreground
LCD_InitWin(RGB24, uLcdHsz/2, uLcdVsz/2, 0, 0, uLcdHsz/2, uLcdVsz/2, uLcdHsz/4, uLcdVsz/4, uImgAddr1+uLcdHsz*uLcdVsz*4, WIN1, false);
LCD_SetWinOnOff(1, WIN1);
GLIB_InitInstance(uImgAddr1+uLcdHsz*uLcdVsz*4, uLcdHsz/2, uLcdVsz/2, RGB24);
GLIB_DrawPattern(uLcdHsz/2, uLcdVsz/2);
LCD_Start();
// POST 2.5
POST_InitIpForDmaInFifoOut(uLcdHsz, uLcdVsz, uImgAddr, YCBYCR, uLcdHsz, uLcdVsz, RGB, 1, &oPost);
POST_SetNextFrameStAddr(uImgAddr, 0, &oPost);
POST_SetAutoLoadEnable(FREE_RUN, &oPost);
POST_SetInterlaceModeOnOff(0, &oPost);
POST_SetInFifoMode(POST_DMA, &oPost);
//INTC_SetHandlerAndUnmask(INT_TVENC0, Isr_FifoUnderrun);
//INTC_SetHandlerAndUnmask(INT_CAMIF_P, Isr_CamPview);
INTC_Enable(NUM_TVENC);
INTC_SetVectAddr(NUM_TVENC, Isr_FifoUnderrun);
INTC_Enable(NUM_CAMIF_P);
INTC_SetVectAddr(NUM_CAMIF_P, Isr_CamPview);
POST_StartProcessing(&oPost);
LCD_Trigger();
TVENCT_SetTVParameter();
//UART_Printf("Press any key to end..\n");
//UART_Getc();
//INTC_Mask(INT_TVENC0);
//INTC_Mask(INT_CAMIF_P);
INTC_Disable(NUM_TVENC);
INTC_Disable(NUM_CAMIF_P);
// oPost die..
POST_StopProcessingOfFreeRun(&oPost);
Delay(1000);
// oScaler die..
POST_SetInterlaceModeOnOff(0, &oSc);
POST_StopProcessingOfFreeRun(&oSc);
Delay(1000);
// oLcdc die..
LCD_Stop();
// oTvenc die..
TVENC_TurnOnOff(0);
// oCim die..
CAMERA_StopPreviewPath();
}
static void TVENCT_MultiLayer_POST_RGBFIMD_Scaler_Enc(void)
{
u32 uImgSz, uWidth, uHeight;
u32 uLcdHsz, uLcdVsz;
UART_Printf("Select Image Size\n");
UART_Printf("[0] : Original Image Size\n");
UART_Printf("[1] : Full Screen size\n");
UART_Printf("Select number : ");
uImgSz = UART_GetIntNum();
uImgAddr = CODEC_MEM_ST;
uImgAddr1 = CODEC_MEM_LMT;
//uLcdHsz = 240; uLcdVsz = 320;
// FIMD 4.0
//LCD_InitLDI(MAIN);
LCD_InitBase();
LCD_InitWinForFifoIn(IN_POST, WIN0);
LCD_GetFrmSz(&uLcdHsz, &uLcdVsz, WIN0);
LCD_SetWinOnOff(1, WIN0);
LCD_SetOutputPath(LCD_TVRGB);
LCD_SetClkVal(4);
LCD_EnableRgbPort();
if(uImgSz)
{
TVENCT_GetTVFullSize(&uWidth, &uHeight);
}
else
{
uWidth = uLcdHsz;
uHeight = uLcdVsz;
}
// FIMC 3.0
CAMERA_SFRInit();
CAMERA_InitSensor();
CAMERA_InitPreviewPath_1(uLcdHsz, uLcdVsz, uImgAddr, uImgAddr1, YCBYCR, FLIP_NO, ROT_0);
CAMERA_StartPreviewPath();
// TV ENCODER 2.0
TVENC_SetImageSize(uWidth*2, uHeight);
TVENC_TurnOnOff(1);
// POST 2.5
POST_InitIpForFifoInFifoOut(uLcdHsz, uLcdVsz, uWidth*2, uHeight, YUV, FREE_RUN, &oSc);
POST_SetInterlaceModeOnOff(1, &oSc);
POST_StartProcessing(&oSc);
// foreground
LCD_InitWin(RGB24, uLcdHsz/2, uLcdVsz/2, 0, 0, uLcdHsz/2, uLcdVsz/2, uLcdHsz/4, uLcdVsz/4, uImgAddr1+uLcdHsz*uLcdVsz*4, WIN1, false);
LCD_SetWinOnOff(1, WIN1);
GLIB_InitInstance(uImgAddr1+uLcdHsz*uLcdVsz*4, uLcdHsz/2, uLcdVsz/2, RGB24);
GLIB_DrawPattern(uLcdHsz/2, uLcdVsz/2);
LCD_Start();
// POST 2.5
POST_InitIpForDmaInFifoOut(uLcdHsz, uLcdVsz, uImgAddr, YCBYCR, uLcdHsz, uLcdVsz, RGB, 1, &oPost);
POST_SetNextFrameStAddr(uImgAddr1, 0, &oPost);
POST_SetInterlaceModeOnOff(0, &oPost);
//INTC_SetHandlerAndUnmask(INT_TVENC0, Isr_FifoUnderrun);
//INTC_SetHandlerAndUnmask(INT_CAMIF_P, Isr_CamPview);
INTC_Enable(NUM_TVENC);
INTC_SetVectAddr(NUM_TVENC, Isr_FifoUnderrun);
INTC_Enable(NUM_CAMIF_P);
INTC_SetVectAddr(NUM_CAMIF_P, Isr_CamPview);
POST_StartProcessing(&oPost);
TVENCT_SetTVParameter();
//INTC_Mask(INT_TVENC0);
//INTC_Mask(INT_CAMIF_P);
INTC_Disable(NUM_TVENC);
INTC_Disable(NUM_CAMIF_P);
// oPost die..
POST_StopProcessingOfFreeRun(&oPost);
while (!POST_IsProcessingDone(&oPost));
// oScaler die..
POST_SetInterlaceModeOnOff(0, &oSc);
POST_StopProcessingOfFreeRun(&oSc);
Delay(1000);
// oLcdc die..
LCD_DisableRgbPort(); //rb1004
LCD_Stop();
// oTvenc die..
TVENC_TurnOnOff(0);
// oCim die..
CAMERA_StopPreviewPath();
}
void TVENCT_OtherImage_LCDandTV(void)
{
u32 uImgSz, uWidth, uHeight;
u32 uLcdHsz, uLcdVsz;
//CAMIF_INOUT eCamOut;
uGlibStAddr = CODEC_MEM_ST;
uImgAddr = CODEC_MEM_LMT;
uImgAddr1 = CODEC_MEM_LMT + 0x400000;
UART_Printf("Select Image Size\n");
UART_Printf("[0] : Original Image Size\n");
UART_Printf("[1] : Full Screen size\n");
UART_Printf("Select number : ");
uImgSz = UART_GetIntNum();
//uLcdHsz = 320; uLcdVsz = 240;
// FIMD 4.0
//LCD_InitLDI(MAIN);
LCD_InitBase();
LCD_InitWinForFifoIn(IN_POST, WIN0);
LCD_GetFrmSz(&uLcdHsz, &uLcdVsz, WIN0);
LCD_SetWinOnOff(1, WIN0);
LCD_SetOutputPath(LCD_RGB);
LCD_SetClkVal(4);
if(uImgSz)
{
TVENCT_GetTVFullSize(&uWidth, &uHeight);
}
else
{
uWidth = uLcdHsz;
uHeight = uLcdVsz;
}
// FIMC 3.0
CAMERA_SFRInit();
INTC_Enable(NUM_CAMIF_P);
INTC_SetVectAddr(NUM_CAMIF_P, Isr_CamPview_Scaler);
CAMERA_InitSensor();
CAMERA_InitPreviewPath_1(uLcdHsz, uLcdVsz, uImgAddr, uImgAddr1, RGB24, FLIP_NO, ROT_0);
CAMERA_StartPreviewPath();
//GLIB_InitInstance(uImgAddr, uLcdHsz, uLcdVsz, RGB24);
//GLIB_DrawPattern2(uLcdHsz, uLcdVsz);
GLIB_InitInstance(uGlibStAddr, uLcdHsz, uLcdVsz, RGB24);
GLIB_DrawPattern(uLcdHsz, uLcdVsz);
// POST 2.5
POST_InitIpForDmaInFifoOut(uLcdHsz, uLcdVsz, uGlibStAddr, RGB24,
uLcdHsz, uLcdVsz, RGB, 1, &oPost);
POST_DisableChangeNextFrame(&oPost);
POST_StartProcessing(&oPost);
LCD_Start();
INTC_Enable(NUM_TVENC);
INTC_SetVectAddr(NUM_TVENC, Isr_FifoUnderrun);
// TV ENCODER 2.0
TVENC_SetImageSize(uWidth*2, uHeight);
TVENC_TurnOnOff(1);
#if 1
// POST 2.5
//POST_InitIpForDmaInFifoOut(uLcdHsz, uLcdVsz, uImgAddr, RGB24,
// uWidth*2, uHeight, YUV, 1, &oSc);
POST_InitIpForDmaInFifoOut(uLcdHsz, uLcdVsz, uImgAddr, RGB24,
uWidth*2, uHeight, YUV, 1, &oSc);
POST_SetNextFrameStAddr(uImgAddr, 0, &oSc);
//POST_SetNextFrameStAddr(uImgAddr1, 0, &oSc); //rb1004
POST_SetInterlaceModeOnOff(1, &oSc);
POST_StartProcessing(&oSc);
#else //for ONE_SHOT test
POST_InitIp1( uLcdHsz, uLcdVsz, 0, 0, uLcdHsz, uLcdVsz, uImgAddr, RGB24,
uWidth*2, uHeight, 0, 0, uWidth*2, uHeight, 0, YCBYCR,
1, FALSE, ONE_SHOT, POST_DMA, POST_FIFO, &oSc);
POST_SetInterlaceModeOnOff(1, &oSc);
POST_SetInFifoMode(POST_DMA, &oSc);
POST_StartProcessing(&oSc);
while(1)
{
POST_StartProcessing(&oSc);
Delay(50);
}
#endif
TVENCT_SetTVParameter();
//INTC_Mask(INT_TVENC0);
//INTC_Mask(INT_CAMIF_P);
INTC_Disable(NUM_TVENC);
INTC_Disable(NUM_CAMIF_P);
// oPost die..
POST_StopProcessingOfFreeRun(&oPost);
while (!POST_IsProcessingDone(&oPost));
// oScaler die..
POST_SetInterlaceModeOnOff(0, &oSc);
POST_StopProcessingOfFreeRun(&oSc);
Delay(1000);
// oLcdc die..
//LCDC_DisableRgbPort(); //rb1004
LCD_Stop();
// oTvenc die..
TVENC_TurnOnOff(0);
// oCim die..
CAMERA_StopPreviewPath();
}
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////// Display Scnario Performance Test //////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
extern void ScalerT_SelectClockSource(void);
void TVENCT_Scaler_Enc_Perform(void) // post controller initialize
{
u32 uImgSz, uWidth, uHeight;
UART_Printf("Select Image Size\n");
UART_Printf("[0] : Original Image Size\n");
UART_Printf("[1] : Full Screen size\n");
UART_Printf("Select number : ");
uImgSz = UART_GetIntNum();
ScalerT_SelectClockSource();
if(uImgSz)
{
TVENCT_GetTVFullSize(&uWidth, &uHeight);
}
else
{
uWidth = uImgXsize;
uHeight = uImgYsize;
}
INTC_Enable(NUM_TVENC);
INTC_SetVectAddr(NUM_TVENC, Isr_FifoUnderrun);
TVENC_SetImageSize(uWidth*2, uHeight);
TVENC_TurnOnOff(1);
POST_InitIp1( uImgXsize, uImgYsize, 0, 0, uImgXsize, uImgYsize, uImgAddr, uImgResolution,
uWidth*2, uHeight, 0, 0, uWidth*2, uHeight, 0, YCBYCR,
1, FALSE, FREE_RUN, POST_DMA, POST_FIFO, &oSc);
POST_SetInterlaceModeOnOff(1, &oSc);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -