⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exolvidvbi.c

📁 pnx1500 video test demo
💻 C
📖 第 1 页 / 共 5 页
字号:
        err = tmMemDbgSetup(1*1024*1024, 0);  // first param is size of memory trace buffer                                              // second param is level of detail, 0, 1, or 2        if (err)         {            printf("Failed to allocate memory for memory debug buffer.  0x%x\n", err);            tmMain_EXIT (err);        }        tmMemDbgStart();        tmMemDbgWriteMessage("Setting marker check1:\n");        err = tmMemDbgMarkCheckpoint("check1");        if (err)             printf("Failed to set first tmMemDbg check point.  0x%x\n", err);        tmMemDbgWriteMessage("Starting:\n");    }    #endif    #endif          #if defined(TMFL_NEED_TM_TRACE)          #if TMFL_NEED_TM_TRACE == 1        printf("Initializing tmTfeTrace\n");	    initTmTfeTrace();    #endif    #endif    exEnableDbgFlags(0);    //    // default values:  Test pattern as source, NTSC out.    //  So users don't need a video source for first tests.    //    ivp->InternalTestPattern=1; // default to show test pattern    ivp->InputVideoAdapter=vaaCVBS;         // input video adapter for VIP    ivp->OutputVideoAdapter=tmVencAna_Yc;   // output adapter & standard    ivp->VideoEncUnit=0;                    // Video Encoder (denc) unit    ivp->AnalogVideoEncoder=True;    ivp->InputFormat=defFormatNTSC;     ivp->OutputFormat=defFormatNTSC;
	ivp->VbiFormat=outputFormatVbi;    tmError = tmVideoMode_GetModeByName ( "ntsc", &ivp->OutputVideoMode);     if (tmError != TM_OK) printf("Whoa! tmVideoMode_GetModeByName failed:0x%X\n",tmError);    ivp->DestinationWindow[0]=False;    ivp->DestinationWindow[1]=False;    ivp->SourceWindow[0]=False;    ivp->SourceWindow[1]=False;    ivp->timeout = 0;    ivp->hInstMemSpace=0;    /*------------- Create memspace for this application --------------------*/    tmError = tmmlCreate (&ivp->hInstMemSpace, 20 * 1024 * 1024, tmmlMmspNormal);    DBG_ASSERT2((tmError == TM_OK),("tmmlCreate failed:0x%X\n",tmError));    if (tmError != TM_OK) {        printf("Whoa! tmmlCreate failed:0x%X\n",tmError);        tmMain_EXIT(tmError);    }    /*-------------------------- Setup 90khz Clock -----------------------------*/    DBG_PRINT((dbgexolVideo, DBG_LEVEL_1, "Init. clock ... " ));    tmError = tsaClockOpen( &(ivp->hClock.clock) );    DBG_ASSERT2((tmError == TM_OK),("tsaClockOpen failed:0x%X\n",tmError));    if (tmError != TM_OK) {        printf("Whoa! tsaClockOpen failed:0x%X\n",tmError);        tmMain_EXIT(tmError);    }    tmError = tsaClockGetInstanceSetup( ivp->hClock.clock, &(ivp->pClockSetup) );    DBG_ASSERT2((tmError == TM_OK),("tsaClockGetInstanceSetup failed:0x%X\n",tmError));    if (tmError != TM_OK) {        printf("Whoa! tsaClockGetInstanceSetup failed:0x%X\n",tmError);        tmMain_EXIT(tmError);    }    ivp->pClockSetup->frequency = 90000;    tmError = tsaClockInstanceSetup( ivp->hClock.clock, ivp->pClockSetup );    DBG_ASSERT2((tmError == TM_OK),("tsaClockInstanceSetup failed:0x%X\n",tmError));    if (tmError != TM_OK) {        printf("Whoa! tsaClockInstanceSetup failed:0x%X\n",tmError);        tmMain_EXIT(tmError);    }    tmError = tsaClockStart( ivp->hClock.clock );    DBG_ASSERT2((tmError == TM_OK),("tsaClockStart failed:0x%X\n",tmError));     if (tmError != TM_OK) {        printf("Whoa! tsaClockStart failed:0x%X\n",tmError);        tmMain_EXIT(tmError);    }    /*----------------------- Display main menu -----------------------------*/    doMainMenu(ivp);        /*----------------------------- Stop Clock ------------------------------*/    tmError = tsaClockStop( ivp->hClock.clock );    DBG_ASSERT2((tmError == TM_OK),("tsaClockStop failed:0x%X\n",tmError));    tmError = tsaClockClose( ivp->hClock.clock );    DBG_ASSERT2((tmError == TM_OK),("tsaClockClose failed:0x%X\n",tmError));    tmError = tmmlDelete(ivp->hInstMemSpace);    DBG_ASSERT2((tmError == TM_OK),("tmmlDelete failed:0x%X\n",tmError));    #if defined(TMFL_NEED_TM_TRACE)          #if TMFL_NEED_TM_TRACE == 1        printf("Closing TFE trace\n");	    err = tmTfeTraceCloseAndSave(); 	    if (err)            printf("Couldn't save trace file\n");        else            printf("All function trace info has been saved in the current working directory, files TRACEFILE and TRACEFILE_TASKS\n");    #endif    #endif    #if defined(TMFL_NEED_MEM_DEBUG)          #if TMFL_NEED_MEM_DEBUG == 1        tmMemDbgWriteMessage("Final check begin:\n");        tmMemDbgDumpLeaks("check1");        tmMemDbgWriteMessage("now dump stats:\n");        tmMemDbgDumpStats();        tmMemDbgWriteMessage("dump tasks again:\n");        tmMemDbgDumpTasks();        tmMemDbgWriteMessage("final dump:\n");        tmMemDbgDump();        //tmMemDbgStop();    #endif    #endif    printf("Exiting exolVideo application.\n");    tmMain_EXIT (0);} // main ()//-----------------------------------------------------------------------------// FUNCTION:    doMainMenu://// DESCRIPTION: // RETURN:      tmErrorCode_t//// NOTES:       None//-----------------------------------------------------------------------------//tmErrorCode_t doMainMenu(exolVideoInstance_t* ivp){    tmErrorCode_t               tmError = TM_OK;	Bool						exitNow;	char						ins[256];	int							output=0;        printf("\n\nFollow the prompts to choose input and output formats\n");    SelectInputFormat(ivp);	for(;;)	{		printf("\n\nSelect Vbi setup \n");		printf("0  Exit \n");		printf("1  Enable Analogue VBI re-insertion \n");		printf("2  Enable 'Digital' VBI insertion \n");		printf("3  No Vbi \n");        		gets(ins);		output = 0;		sscanf(ins, "%d", &output);		switch(output)		{			default:			case 0:				exitNow = True;				break;			case 1  :				printf("1  - Enabled Analogue VBI re-insertion \n");				ivp->VbiEnable=True;				ivp->VbiInsertionEnabled=True;				ivp->VbiSlicerEnable=True;				ivp->InsertVbiData = False;				exitNow = False;				break;			case 2  :				printf("2 - Enabled 'Digital' VBI insertion\n");				ivp->VbiEnable=True;				ivp->VbiInsertionEnabled=True;				ivp->VbiSlicerEnable=False;				ivp->InsertVbiData = True;				exitNow = False;				break;			case 3:				printf("0  - Vbi disabled \n");				ivp->VbiEnable=False;				ivp->VbiInsertionEnabled=False;				ivp->VbiSlicerEnable=False;				ivp->InsertVbiData = False;				exitNow = False;				break;					}	    tmosalTaskSleep(200);		if(exitNow==False)		{			RunVip(ivp); 		}		else		{			break;		}	}	return tmError;}//-----------------------------------------------------------------------------// FUNCTION:    SelectInputFormat://// DESCRIPTION: // RETURN:      tmErrorCode_t//// NOTES:       None//-----------------------------------------------------------------------------//void SelectInputFormat(exolVideoInstance_t* ivp){    int                     input=0;    int                     adapter=0;    char                    ins[256];    int                     i;    char                    *adapterTypeName ;    ptmbslVdecAnaConfig_t   config ;    tmErrorCode_t           err ;
	int output=0;
    tmErrorCode_t   tmError=TM_OK;
    String          VideoModeName=Null;
    Bool            validMode = False;    printf("\nSelect Input/Output video format\n");    printf("1  -NTSC \n");    printf("2  -PAL\n");        gets(ins);    input = 0;    sscanf(ins, "%d", &input);    switch(input)    {        default:            printf("%d: Unknown format... Try again\n", input);        case 1  :            printf("-NTSC Packed 4:2:2\n");            ivp->InputFormat=defFormatNTSC;            ivp->InputFormat.dataSubtype=vdfUYVY;            ivp->InputFormat.imageStride=ivp->InputFormat.imageWidth*2;            ivp->InputFormat.imageUVStride=0;
			VideoModeName="ntsc";
            ivp->OutputFormat=defFormatNTSC;
            validMode = True;
                        break;        case 2 :            printf("-PAL Packed 4:2:2\n");            ivp->InputFormat=defFormatPAL;            ivp->InputFormat.dataSubtype=vdfUYVY;            ivp->InputFormat.imageStride=ivp->InputFormat.imageWidth*2;            ivp->InputFormat.imageUVStride=0;
			VideoModeName="pal";
            ivp->OutputFormat=defFormatPAL;
            validMode = True;
                        break;    }

	if (validMode) 
    {
        tmError = tmVideoMode_GetModeByName (VideoModeName, //  I: mode name
                               &ivp->OutputVideoMode);     //  O: receives mode 
        if (tmError != TM_OK) 
            printf("Whoa! tmVideoMode_GetModeByName returned error 0x%x\n", tmError);
    }

        printf("\n\nSelect Input video adapter (source)\n");    printf("1  -testPattern 1\n");    printf("2  -testPattern 2\n");    err = tmbslVdecAnaGetInterface (tmUnit0, &config);    if (err != TM_OK) {        printf("tmbslVdecAnaGetInterface error %08x\n", err) ;        return ;    }    for (i = 0; i < config->vDec.numAdapters; i++) {        switch (config->vDec.adapterTable[i].adapterType) {            case vaaGeneric:                adapterTypeName = "vaaGeneric" ;                break ;            case vaaNone:                adapterTypeName = "vaaNone" ;                break ;            case vaaCVBS:                adapterTypeName = "vaaCVBS" ;                break ;            case vaaSvideo:                adapterTypeName = "vaaSvideo" ;                break ;            case vaaExt1:                adapterTypeName = "vaaExt1" ;                break ;            case vaaSCART:                adapterTypeName = "vaaSCART" ;                break ;            case vaaVGA:                adapterTypeName = "vaaVGA" ;                break ;            default:                adapterTypeName = "unknown" ;                break ;        }        printf("%-2d -%-9s %d\n",               i+3,               adapterTypeName,               config->vDec.adapterTable[i].adapterIndex) ;    }    gets(ins);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -