亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testapp1.c

?? 5105 AV輸出FILTER, 解析源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************

File name  : testapp1.c

Description: Test application #1 (RODOW).This will perform the single AV decode
for feed from Packet Injector and satellite.The application supports normal mode
as well as debug mode.For Debug mode environment variable DEBUG_MODE needs to be
enabled.

COPYRIGHT (C) 2005 STMicroelectronics

******************************************************************************/

/* Includes ---------------------------------------------------------------- */

#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <task.h>

/* STAPI header------------------------------------------------------------- */
#include "stddefs.h"
#include "stlite.h"
#include "stcommon.h"
#include "stdevice.h"
#include "sttbx.h"
#include "stsys.h"

#include "sections.h"
#include "errors.h"
#include "avmem.h"
#include "evt.h"
#include "aud.h"
#include "fdma.h"
#include "tuner.h"
#include "vid.h"
#include "denc.h"
#include "vtg.h"
#include "layer.h"
#include "vout.h"
#include "vmix.h"

#include "clkrv.h"
#include "stpti_hal.h"
#include "regevent.h"

/* test application specific */
#include "lists.h"      /* satellite Transponder and Channel lists */
#include "service.h"
#include "transport.h"

/* Debug mode specific header */
#if defined(DEBUG_MODE)
    #include "tst.h"
    #include "comdbg.h"
    #include "decode.h"
    #include "tunerdbg.h"
#endif /* end of DEBUG_MODE */

/* Private Types------------------------------------------------------------ */

/* Private Constant--------------------------------------------------------- */
#define AC3_AUDIO_SAMPLING_FREQUENCY        48000
#define MPEG1_AUDIO_SAMPLING_FREQUENCY      44100
#define MPEG2_AUDIO_SAMPLING_FREQUENCY      44100
#define MAX_TRY_TUNER_LOCK                  4
#define COUNT_FOR_PRINT                     30

/* Private Variables ------------------------------------------------------- */
static BOOL PacketInjectorUsed  = FALSE;

#if defined(DEBUG_MODE)
    SERVICE_Mode_t          SERVICE_Mode    = SERVICE_MODE_DVB;
    SERVICE_Display_t       SERVICE_Display = SERVICE_DISPLAY_PAL;
#endif /* end of DEBUG_MODE */

/* Private Functions prototypes --------------------------------------------------- */
static ST_ErrorCode_t Decode_Start(int Channel, int Transponder);
static ST_ErrorCode_t AVInfrastucture_Init(void);
static ST_ErrorCode_t AVInfrastucture_Configure(SERVICE_Display_t SERVICE_Display, SERVICE_Mode_t SERVICE_Mode);
static ST_ErrorCode_t Decode_StartStream( U16                Pid,
                                          LISTS_StreamType_t StreamType,
                                          SERVICE_Display_t  SERVICE_Display,
                                          SERVICE_Mode_t     SERVICE_Mode);
static ST_ErrorCode_t SelectFrequency(int Transponder);

#if !defined(DEBUG_MODE)
    static void Forever(STPTI_Pid_t VideoPid, STPTI_Pid_t AudioPid, int Transponder, SERVICE_Mode_t SERVICE_Mode);
#endif

/*=========================================================================*/

/* Function description */
/*-------------------------------------------------------------------------
 * Function: TestApplication
 * Decription: Entry point from main()
 * Input   : none
 * Output  :
 * Return  : Error code
 * ----------------------------------------------------------------------*/
ST_ErrorCode_t TestApplication(void)
{
    ST_ErrorCode_t  ST_ErrorCode=ST_NO_ERROR;
    SERVICE_Mode_t  SERVICE_Mode = MODE_DVB;
    int             Index = 0;
    int             Transponder = 0, Channel = 0;  /* default indexes for packet injector */


    /* setup tuner in any valid mode and
       if failure then presume that a packet injector is being used. */

    ST_ErrorCode = TUNER_Setup( SERVICE_Mode );
    if (ST_ErrorCode != ST_NO_ERROR)
    {
        PacketInjectorUsed = TRUE;
        STTBX_Print(( "Using: %s\n", LISTS_TransponderList[Transponder].InfoString ));
        ST_ErrorCode = Decode_Start( Channel, Transponder );   /* only return on failure */
        return( ST_ErrorCode ); /* failed */
    }

    while (LISTS_ChannelSelection[Index] != ENDOFLIST)
    {
        Channel = LISTS_ChannelSelection[Index];
        Transponder = LISTS_ChannelList[Channel].Transponder;

        /* configure tuner if mode change between DVB/DTV required */
        if (SERVICE_Mode != LISTS_TransponderList[Transponder].Mode)
        {
            STTBX_Print(( "Switching tuner mode.\n" ));
            SERVICE_Mode = LISTS_TransponderList[Transponder].Mode;

            ST_ErrorCode = TUNER_Quit();
            if (ST_ErrorCode != ST_NO_ERROR)
            {
                return( ST_ErrorCode ); /* fail */
            }

            ST_ErrorCode = TUNER_Setup( SERVICE_Mode );
            if (ST_ErrorCode != ST_NO_ERROR)
            {
                return( ST_ErrorCode ); /* fail */
            }
        }

        STTBX_Print(( "Lock to Transponder/Channel #%d: %s\n", Transponder, LISTS_TransponderList[Transponder].InfoString ));
        ST_ErrorCode = SelectFrequency( Transponder );              /* tune into specific frequency */

        if (ST_ErrorCode == ST_NO_ERROR)
        {
            ST_ErrorCode = Decode_Start( Channel, Transponder );   /* only return on failure */
            break;  /* out of while() */
        }

        Index++;
    }

    return( ST_ErrorCode ); /* failed */
}

/*-------------------------------------------------------------------------
 * Function : SelectFrequency
 * Input    : Index into Transponder list
 * Output   :
 * Return   : Error code
 * ----------------------------------------------------------------------*/
static ST_ErrorCode_t SelectFrequency( int Transponder )
{
    ST_ErrorCode_t          ST_ErrorCode;
    STTUNER_TunerInfo_t     TUNERInfo;
    STTUNER_Scan_t          ScanParams;
    U32                     TunerFrequency;

    ScanParams  = TUNER_Scans[0];  /* defaults for all types */

    /* Set specific parameters */
    TunerFrequency          = LISTS_TransponderList[Transponder].Frequency;
    ScanParams.Band         = LISTS_TransponderList[Transponder].FrequencyBand;

    #ifdef STTUNER_USE_SAT
        ScanParams.LNBToneState = LISTS_TransponderList[Transponder].LNBToneState;
        ScanParams.Polarization = LISTS_TransponderList[Transponder].Polarization;
    #endif

    #if defined (STTUNER_USE_SAT) || defined (STTUNER_USE_TER)
        ScanParams.FECRates     = LISTS_TransponderList[Transponder].FECRates;
    #endif

    #if defined (STTUNER_USE_SAT) || defined (STTUNER_USE_CAB)
        ScanParams.SymbolRate   = LISTS_TransponderList[Transponder].SymbolRate;
    #endif

    ScanParams.Modulation   = LISTS_TransponderList[Transponder].Modulation;
    ScanParams.AGC          = LISTS_TransponderList[Transponder].AGC;

    #ifdef STTUNER_MINIDRIVER
        ScanParams.Frequency    = TunerFrequency;
    #endif

    ST_ErrorCode = TUNER_SetFrequency(TunerFrequency, &ScanParams); /* blocks on semaphore in tuner.c */

    if ( ST_ErrorCode == ST_NO_ERROR )
    {
        ST_ErrorCode = STTUNER_GetTunerInfo(TUNER_Handle, &TUNERInfo);
        if ( ST_ErrorCode == ST_NO_ERROR )
        {
            if ( TUNERInfo.Status != STTUNER_STATUS_LOCKED )
            {
                STTBX_Print(( "TUNERInfo.Status != STTUNER_STATUS_LOCKED\n" ));
                ST_ErrorCode = (ST_ErrorCode_t) STTUNER_EV_SCAN_FAILED; /* failed */
            }
        }
    }
    return( ST_ErrorCode );
}


/*-------------------------------------------------------------------------
 * Function : Decode_Start
 * Input    : Index into Channel and Transponder lists
 * Output   :
 * Return   : only returns on failure
 * ----------------------------------------------------------------------*/
static ST_ErrorCode_t Decode_Start(int Channel, int Transponder)
{
    ST_ErrorCode_t      ST_ErrorCode;
    SERVICE_Display_t   SERVICE_Display;
    SERVICE_Mode_t      SERVICE_Mode;

    #if defined(SELECT_DEVICE_STB5118)
        partition_status_t  partitionStatus;
        U32                 TotalFreeSize;
    #endif

    SERVICE_Display     = LISTS_ChannelList[Channel].Display;
    SERVICE_Mode        = LISTS_TransponderList[Transponder].Mode;

    ST_ErrorCode = AVInfrastucture_Init();
    if (ST_ErrorCode != ST_NO_ERROR)
        return( ST_ErrorCode );

    ST_ErrorCode = AVInfrastucture_Configure( SERVICE_Display, SERVICE_Mode );
    if (ST_ErrorCode != ST_NO_ERROR)
        return( ST_ErrorCode );

    STTBX_Print(( "\nChannel #%d: %s\n", Channel, LISTS_ChannelList[Channel].ChannelName ));

    ST_ErrorCode = RegisterEvents();
    if (ST_ErrorCode != ST_NO_ERROR)
        return( ST_ErrorCode );

    #ifdef AC3_DECODE
        /* Start AC3 Audio on SPDIF*/
        ST_ErrorCode = Decode_StartStream( LISTS_ChannelList[Channel].AudioPid,
                                           AC3,
                                           SERVICE_Display, SERVICE_Mode );
        if (ST_ErrorCode != ST_NO_ERROR)
            return( ST_ErrorCode );
    #else

    /* Start Audio */
        ST_ErrorCode = Decode_StartStream( LISTS_ChannelList[Channel].AudioPid,
                                           LISTS_ChannelList[Channel].AudioType,
                                           SERVICE_Display, SERVICE_Mode );
        if (ST_ErrorCode != ST_NO_ERROR)
            return( ST_ErrorCode );
    #endif /* End of AC3 Mode */



    /* Start Video */
    ST_ErrorCode = Decode_StartStream( LISTS_ChannelList[Channel].VideoPid,
                                       MP1V,
                                       SERVICE_Display, SERVICE_Mode );
    if (ST_ErrorCode != ST_NO_ERROR)
        return( ST_ErrorCode );


    /* PCR */
    ST_ErrorCode = Decode_StartStream( LISTS_ChannelList[Channel].PcrPid, PCR,
                                       SERVICE_Display, SERVICE_Mode );
    if (ST_ErrorCode != ST_NO_ERROR)
        return( ST_ErrorCode );

    #if defined(SELECT_DEVICE_STB5118)
        partition_status(SystemPartition,&partitionStatus,0);
        STTBX_Print(("System Partition Size %d Used %d Free %d\n", partitionStatus.partition_status_size,
        partitionStatus.partition_status_used,partitionStatus.partition_status_free));

        partition_status(NcachePartition,&partitionStatus,0);
        STTBX_Print(("Ncache Partition Size %d Used %d Free %d\n", partitionStatus.partition_status_size,
        partitionStatus.partition_status_used,partitionStatus.partition_status_free));

        STAVMEM_GetFreeSize(AVMEM_DeviceName, &TotalFreeSize);
        STTBX_Print(("AVMEM  Partition Size %d Used %d Free %d\n", AVMEM_SIZE,(AVMEM_SIZE-TotalFreeSize),TotalFreeSize));
    #endif /* end of SELECT_DEVICE_STB5118*/

    #if defined(DEBUG_MODE) /* debug code for testapp1 */
        /* Start Testtool */
        ST_ErrorCode = TST_Start();

        /* Normal application mode */
    #else
        Forever( LISTS_ChannelList[Channel].VideoPid,
                     LISTS_ChannelList[Channel].AudioPid, Transponder, SERVICE_Mode);
    #endif /* End of debug mode */

    return( ST_ErrorCode );
}

/* --------------------------------------------------------------------------- */
/* ---------------------------- support functions ---------------------------- */
/* --------------------------------------------------------------------------- */

/*-------------------------------------------------------------------------
 * Function : AVInfrastucture_Init
 * Input    : none
 * Output   :
 * Return   : Error code
 * ----------------------------------------------------------------------*/
static ST_ErrorCode_t AVInfrastucture_Init(void)
{
    ST_ErrorCode_t ST_ErrorCode;

    ST_ErrorCode = FDMA_Setup();
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = AVMEM_Setup();
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = CLKRV_Setup();

    return( ST_ErrorCode );
}

/*-------------------------------------------------------------------------
 * Function : AVInfrastucture_Configure
 * Input    : display (PAL/NTSC) and TS (DVB/DTV) modes
 * Output   :
 * Return   : Error code
 * ----------------------------------------------------------------------*/
static ST_ErrorCode_t AVInfrastucture_Configure(SERVICE_Display_t SERVICE_Display, SERVICE_Mode_t SERVICE_Mode)
{
    ST_ErrorCode_t ST_ErrorCode;

    PTI_PacketInjectorUsed = PacketInjectorUsed;

    ST_ErrorCode = PTI_Setup( SERVICE_Mode );
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = DENC_Setup( SERVICE_Display );
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = VTG_Setup( SERVICE_Display );
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = LAYER_Setup();
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = VOUT_Setup();
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = VMIX_Setup();
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = VID_Setup();
    if (ST_ErrorCode != ST_NO_ERROR) return ( ST_ErrorCode );

    ST_ErrorCode = AUD_Setup( SERVICE_Mode );

    return( ST_ErrorCode );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片顶级少妇| 亚洲h动漫在线| 免费高清视频精品| 色综合视频一区二区三区高清| 日韩精品一区二区三区蜜臀| 伊人一区二区三区| 91麻豆国产在线观看| 国产欧美一区二区精品久导航| 日本中文字幕一区二区视频| 欧美在线观看18| 亚洲国产一区视频| 在线免费不卡视频| 亚洲成人av电影| 欧美日本不卡视频| 免费成人av资源网| 日韩午夜激情av| 国产一区美女在线| 国产调教视频一区| 色88888久久久久久影院按摩| 中文字幕一区在线| 99久久er热在这里只有精品15| 日韩一区有码在线| 欧美精品日日鲁夜夜添| 麻豆国产精品视频| 亚洲欧美自拍偷拍| 欧美剧情片在线观看| 久久99精品国产麻豆不卡| 精品福利一二区| 97精品超碰一区二区三区| 亚洲国产另类av| 久久女同互慰一区二区三区| 91麻豆高清视频| 日韩中文字幕1| 国产网红主播福利一区二区| 色综合久久中文综合久久牛| 日韩电影免费一区| 最新国产の精品合集bt伙计| 欧美高清视频一二三区| 成人国产精品视频| 久久aⅴ国产欧美74aaa| 亚洲国产精品自拍| 国产精品久久久久久久久搜平片| 555夜色666亚洲国产免| 成人不卡免费av| 国产麻豆精品在线| 麻豆精品在线播放| 午夜国产精品影院在线观看| 欧美国产精品一区| 久久久91精品国产一区二区精品 | 美女性感视频久久| 综合久久久久久| 粉嫩aⅴ一区二区三区四区五区| 亚洲最快最全在线视频| 国产欧美日韩在线| 久久久久久久久久电影| 日韩欧美国产一区二区在线播放| 欧美在线啊v一区| 一本色道久久综合精品竹菊| 国内外成人在线| 国模少妇一区二区三区| 久久精品国产一区二区三| 免费在线观看不卡| 美腿丝袜亚洲一区| 韩日精品视频一区| 成人h动漫精品一区二| 一本色道久久综合亚洲aⅴ蜜桃| 91免费观看在线| 欧美精品一级二级| 精品成人在线观看| 亚洲欧美另类久久久精品| 亚洲激情男女视频| 青青草国产成人av片免费| 蜜臀av在线播放一区二区三区| 国产精品18久久久久| 色欧美日韩亚洲| 日韩欧美亚洲另类制服综合在线| 精品久久久久99| 日韩理论在线观看| 卡一卡二国产精品| 97精品久久久午夜一区二区三区 | 色综合天天综合色综合av| 一本色道亚洲精品aⅴ| 日韩欧美中文字幕制服| 亚洲国产精华液网站w| 香蕉影视欧美成人| 国产精品一区专区| 欧美日本一区二区| 中文字幕欧美一| 国产在线播放一区二区三区| 91精品福利在线| 欧美激情中文字幕| 九九**精品视频免费播放| 97精品超碰一区二区三区| 久久影视一区二区| 青娱乐精品视频在线| 色呦呦国产精品| 国产精品午夜免费| 国产福利一区二区三区| 91精品福利在线一区二区三区| 亚洲丝袜美腿综合| 国产成人午夜99999| 国产日韩精品一区二区浪潮av| 视频一区二区三区中文字幕| 日本丶国产丶欧美色综合| 国产精品久久久久久妇女6080| 国产成人在线网站| 国产午夜精品久久久久久久| 国产精品一区久久久久| 久久奇米777| gogogo免费视频观看亚洲一| 中文字幕在线一区免费| 国产a精品视频| 国产精品不卡一区二区三区| 91欧美一区二区| 亚洲一区二区三区影院| 欧美日韩国产精选| 青青青伊人色综合久久| 精品精品国产高清a毛片牛牛| 精品亚洲免费视频| 1000精品久久久久久久久| 一本色道久久综合亚洲91| 日韩电影免费一区| 欧美国产精品一区二区三区| 在线观看日韩电影| 久久电影国产免费久久电影| 中文字幕免费观看一区| 欧美亚洲一区二区三区四区| 日本强好片久久久久久aaa| 久久久精品国产99久久精品芒果| 成人动漫一区二区| 亚洲午夜免费电影| 国产农村妇女精品| 9191久久久久久久久久久| 国产精品1区二区.| 日韩中文字幕麻豆| 一区二区三区小说| 久久男人中文字幕资源站| 欧美亚洲日本一区| 黑人巨大精品欧美一区| 亚洲欧美另类图片小说| 国产日韩精品一区二区浪潮av| 欧美在线999| 成人免费毛片高清视频| 美女免费视频一区二区| 亚洲国产另类精品专区| 国产精品天干天干在观线| 精品福利在线导航| 欧美成人一区二区三区片免费| 欧美日韩在线三级| 日本韩国精品在线| 欧美综合久久久| 一本色道久久综合狠狠躁的推荐| 成人动漫在线一区| 国产盗摄精品一区二区三区在线 | 国产精品天美传媒| 亚洲国产电影在线观看| 久久久不卡影院| 国产三级三级三级精品8ⅰ区| 欧美精品一区二区三区在线| 日韩美女在线视频| 精品久久久久久综合日本欧美| 欧美高清视频不卡网| 日韩一区二区三| 久久精品人人做人人综合| 国产欧美视频在线观看| 国产精品美女久久久久久2018| 国产精品免费观看视频| 亚洲精品videosex极品| 日韩成人av影视| 国产成人亚洲精品青草天美| 91麻豆高清视频| 这里只有精品99re| 精品捆绑美女sm三区| 国产精品无码永久免费888| 夜夜嗨av一区二区三区中文字幕| 五月天激情综合| 成人福利视频在线| 日韩一区二区免费在线电影| 久久丝袜美腿综合| 亚洲一区在线观看免费观看电影高清| 日本成人中文字幕在线视频| 国产99久久久精品| 日韩欧美专区在线| 亚洲一区在线观看视频| 成人精品一区二区三区四区| 欧美日韩精品综合在线| 中文字幕不卡三区| 狠狠色丁香婷婷综合久久片| 在线精品亚洲一区二区不卡| 久久久久久夜精品精品免费| 亚洲一二三专区| 色综合久久中文综合久久牛| 久久综合视频网| 秋霞午夜鲁丝一区二区老狼| 91久久精品午夜一区二区| 中文字幕一区二区三区不卡| 国产成人在线影院| 国产午夜精品在线观看| 国内精品国产成人| 久久亚洲综合色|