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

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

?? thrdecode.c

?? DM642平臺上的H.264源碼(可實時運行)
?? C
字號:
/*
 *  Copyright 2002 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/*
 *  ======== thrProcess.c ========
 *  This file contains the main processing thread.
 *  A captured and preprocessed QCIF image is expected from the
 *  capture thread. Then the image will be sent to the 2 "live"
 *  and 2 "diff" channels for processing.
 */
 
// DSP/BIOS includes
#include <std.h>
#include <stdio.h> 
#include <sts.h>          
#include <string.h>
#include <fvid.h>
// DSP/BIOS includes
#include <tsk.h>

// CSL modules
#include <csl_dat.h>
#include <csl_cache.h>

// RF5 module includes
#include <chan.h>
#include <icell.h>
#include <scom.h>
#include <icc_linear.h>
#include <utl.h>

// cell includes
#include "decode/cellH264decode.h"

// application includes
#include "appResources.h"   // application-wide common info

// Thread include
#include "thrDecode.h"
#include "appMain.h"

#pragma DATA_SECTION(ybuffDis,       ".EXTPROCBUFF");
#pragma DATA_SECTION(crbuffDis,      ".EXTPROCBUFF");
#pragma DATA_SECTION(cbbuffDis,      ".EXTPROCBUFF");

#pragma DATA_ALIGN(ybuffDis,        MEMALIGN);
#pragma DATA_ALIGN(crbuffDis,       MEMALIGN);
#pragma DATA_ALIGN(cbbuffDis,       MEMALIGN);


/*
 *  Thread process object which encapsulates the state information 
 *  of the thread.
 */ 
ThrDecode thrDecode;
// Bool rc;

// Buffers for SCOM

static Char ybuffDis [ OPF_SIZE_IN_PIXELS ];
static Char crbuffDis[ OPF_SIZE_IN_PIXELS >> 2 ];
static Char cbbuffDis[ OPF_SIZE_IN_PIXELS >> 2 ];

//static SCOM_Handle   scomReceiveFromEncode;
//static SCOM_Handle   scomSendToEncode;
static SCOM_Handle   scomReceiveFromDisplay;
static SCOM_Handle   scomSendToDisplay;

extern FVID_Handle disChan;
extern FVID_Frame *disFrameBuf;
// Local function prototypes
static Void setParamsAndStartChanDec( Bool doChannelOpen );
void yuv420to422( char *frameIn[], char *frm_out[], int width, int height);
/*
 *  ======== thrProcessInit ========
 *
 */
Void thrDecodeInit()
{
//    Int i;
    scomReceiveFromDisplay 
    	= SCOM_create( "scomToDecodeFromDisplay", &SCOM_ATTRS );
  
    UTL_assert( scomReceiveFromDisplay != NULL);
      
    //Allocate appropriate addresses for SCOM buffers

    thrDecode.scombufDisp.bufYCRCB[Y]  = ybuffDis;
    thrDecode.scombufDisp.bufYCRCB[CR] = crbuffDis;
    thrDecode.scombufDisp.bufYCRCB[CB] = cbbuffDis;
    
    
    setParamsAndStartChanDec( FALSE );
}


/*
 *  ======== thrProcessStartup ========
 *
 */
Void thrDecodeStartup()
{
    Bool rc;
	Uns chanNum;		
		    // Open the channel 
	for (chanNum = 0; chanNum < NUMDECODECHANS; chanNum++) 
	{           
		UTL_logDebug1("Process: Decode Channel Number: %d", chanNum);
		rc = CHAN_open( &thrDecode.decodeChans[chanNum], 
	                &thrDecode.decodeCells[chanNum * CHDECODENUMCELLS],
	                CHDECODENUMCELLS, NULL );
    }
     
    UTL_assert( rc == TRUE );
}


/*
 *  ======== setParamsAndStartChannels ========
 *
 */
static Void setParamsAndStartChanDec( Bool doChannelOpen ) 
{
    IDEC_Params   h264decParams;
    ICC_Handle inputIcc;
    ICC_Handle outputIcc;
    Uns chanNum;
    ICELL_Handle cell;

    // Set up params for all XDAIS algorithms
    h264decParams	= IDEC_PARAMS;



    // -------------------------------------
    // Combo Channels (encode and then decode)
    // -------------------------------------
    for (chanNum = 0; chanNum < NUMDECODECHANS; chanNum++) 
    {
    
		/*
	     *  cell 1 - Decode: create an input and output linear ICC.
	     */
	    ICELL_Obj   defaultCell = ICELL_DEFAULT;
        cell = &thrDecode.decodeCells[chanNum * CHDECODENUMCELLS];
        *cell                = defaultCell;
        cell->name           = "H264Decode";
        cell->cellFxns       = &H264DEC_CELLFXNS;
//x        cell->algFxns        = (IALG_Fxns *)&H264DEC_IH264DEC;
        cell->algParams      = (IALG_Params *)&h264decParams;
        cell->scrBucketIndex = VIDEOPROCSCRBUCKET;

        inputIcc= (ICC_Handle)ICC_linearCreate(thrDecode.dec_buf,
                    sizeof(PROCF_SIZE_IN_PIXELS));
        UTL_assert( inputIcc != NULL);

        outputIcc = (ICC_Handle)ICC_linearCreate( &thrDecode.OutputBuff, 
                     sizeof(thrDecode.OutputBuff));
                     
        UTL_assert( outputIcc != NULL);
    
        CHAN_regCell ( cell, &inputIcc, 1, &outputIcc, 1 );

    }

}

/*
 *  ======== thrProcessRun ========
 *
 *  Main function of Process Thread.
 */
Void thrDecodeRun() 
{
    CHAN_Handle chan;
    Char *inBuf[3];
    Char *outBuf[3];
#if HAS_DEC
//    UTL_logDebug1("thrDecodeRun: task = 0x%x", TSK_self());
//	printf("thrDecodeRun begin  ????????????\n");
    
	FVID_alloc(disChan, &disFrameBuf);
//    scomSendToDisplay = SCOM_open( "scomDisplay" );

//x    UTL_assert( scomSendToDisplay != NULL);
        
    // processed buffers

    memset(ybuffDis,  0x00, OPF_SIZE_IN_PIXELS);
    memset(crbuffDis, 0x80, OPF_SIZE_IN_PIXELS >> 2);
    memset(cbbuffDis, 0x80, OPF_SIZE_IN_PIXELS >> 2);
     

    // put the Tx message on the SCOM queue for Display thread
 //   SCOM_putMsg( scomSendToDisplay, &thrDecode.scombufDisp );
   
    // Main loop
    while (TRUE) 
    {         
//x        ScomDecToDisp *scombufDisp;    
        Int chanNum;
        Bool rc;
        
        if(dec_tag[read_tag] == 0)
        {
//			printf("thrDecodeRun 0 dec_tag[%d]==%d\n",read_tag,dec_tag[read_tag]);
        	TSK_yield();
// 			printf("thrDecodeRun 1 dec_tag[%d]==%d\n",read_tag,dec_tag[read_tag]);
        	
	    	continue;
       }
        
//		printf("thrDecodeRun 2 dec_tag[%d]==%d\n",read_tag,dec_tag[read_tag]);
        // 解碼數據區指針傳遞
    	thrDecode.dec_buf = (Char *)dec_Buf[read_tag];       
        // get the message describing empty output buffers from Display
//        scombufDisp = SCOM_getMsg(scomReceiveFromDisplay, SYS_FOREVER);        
            
		//Execute all combo channels
		for (chanNum = 0; chanNum < NUMDECODECHANS; chanNum++) 
		{
		    chan = &(thrDecode.decodeChans[chanNum]);
		    
		    ICC_setBuf(chan->cellSet[CHDECODECELLDEC].inputIcc[0],
		         thrDecode.dec_buf, 0);
		         
		    // Assign correct offset values to buffers
/*			thrDecode.OutputBuff.y  = scombufDisp->bufYCRCB[Y] + Q1_Y_OFFSET;
			thrDecode.OutputBuff.cr = scombufDisp->bufYCRCB[CR] + Q1_CR_OFFSET;
			thrDecode.OutputBuff.cb = scombufDisp->bufYCRCB[CB] + Q1_CB_OFFSET;//*/
			thrDecode.OutputBuff.y  = ybuffDis;
			thrDecode.OutputBuff.cr = crbuffDis;
			thrDecode.OutputBuff.cb = cbbuffDis;//*/

		    ICC_setBuf(chan->cellSet[CHDECODECELLDEC].outputIcc[0],
		         &thrDecode.OutputBuff, 0);
		
		    UTL_stsStart( stsExeTimeChDecode );		                
		    rc = CHAN_execute( &thrDecode.decodeChans[ chanNum ], NULL ); 
		    
            dec_tag[read_tag] = 0;
            read_tag = (read_tag+1)&1;
            
		    UTL_assert( rc == TRUE );
		    UTL_stsStop( stsExeTimeChDecode );
		}

        // send the now full buffer to Display
//        SCOM_putMsg( scomSendToDisplay, scombufDisp );
        
        inBuf[Y]  = ybuffDis;
        inBuf[CR] = crbuffDis;
        inBuf[CB] = cbbuffDis;   
        outBuf[Y]  = disFrameBuf->frame.iFrm.y1;
        outBuf[CR] = disFrameBuf->frame.iFrm.cr1;
        outBuf[CB] = disFrameBuf->frame.iFrm.cb1;
                    
        yuv420to422(inBuf, outBuf, PROCF_WIDTH, PROCF_HEIGHT);      
		FVID_exchange(disChan, &disFrameBuf);
		
	    TSK_yield();

    }
//	printf("thrDecodeRun end ??????????\n");
#endif    
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩色视频在线观看| 欧美日韩国产综合久久 | 久久精品99久久久| 午夜精品一区二区三区电影天堂 | 99re热这里只有精品免费视频| 国产精品1024| 国产精品亚洲午夜一区二区三区| 黄页网站大全一区二区| 精品一区二区国语对白| 国产福利一区在线| 成人精品在线视频观看| 色综合一个色综合亚洲| 一本大道av一区二区在线播放| 91老师国产黑色丝袜在线| 97久久超碰精品国产| 91久久免费观看| 欧美日韩国产精品成人| 日韩欧美在线不卡| 国产亚洲精品福利| 亚洲人成在线播放网站岛国| 一区二区三区国产豹纹内裤在线| 午夜不卡av在线| 老司机精品视频线观看86| 国产成人亚洲精品青草天美| 99久久久国产精品免费蜜臀| 欧美日韩免费在线视频| 日韩欧美亚洲一区二区| 中文字幕乱码一区二区免费| 一区二区三区精品视频在线| 蜜乳av一区二区三区| 福利一区在线观看| 欧美亚洲综合在线| 亚洲精品在线免费观看视频| 亚洲色欲色欲www| 日韩1区2区3区| 成人aa视频在线观看| 正在播放亚洲一区| 日韩伦理av电影| 麻豆91精品91久久久的内涵| 91伊人久久大香线蕉| 日韩欧美不卡在线观看视频| 亚洲欧洲国产专区| 久久99国产精品免费| 色噜噜狠狠色综合欧洲selulu| 91精品欧美久久久久久动漫| 中文字幕av一区二区三区免费看 | 欧美性色黄大片| 久久久精品tv| 男人操女人的视频在线观看欧美| 国产成人av电影在线观看| 欧美日韩精品电影| 亚洲麻豆国产自偷在线| 久久国产人妖系列| 欧美亚洲动漫另类| 国产精品高潮久久久久无| 玖玖九九国产精品| 7777精品伊人久久久大香线蕉| 亚洲欧洲99久久| 国产精品中文欧美| 精品久久久久久亚洲综合网| 亚洲专区一二三| 99精品偷自拍| 国产欧美一区在线| 国产一区二区三区蝌蚪| 欧美一级一区二区| 午夜久久久久久久久久一区二区| aaa欧美日韩| 中文字幕综合网| fc2成人免费人成在线观看播放| 久久精品欧美一区二区三区不卡| 麻豆91在线播放| 精品国产三级电影在线观看| 蜜臀91精品一区二区三区| 欧美日本一区二区在线观看| 亚洲成人动漫在线观看| 欧美日韩情趣电影| 亚洲电影一级片| 欧美一卡二卡在线观看| 久久国产精品99精品国产 | 99精品国产99久久久久久白柏| 久久综合色综合88| 国产一区二区三区电影在线观看| 欧美xxxxx牲另类人与| 激情文学综合丁香| 亚洲国产精品v| av在线播放一区二区三区| 亚洲欧洲日产国码二区| 日本韩国欧美一区| 午夜精品久久久| 日韩一区二区在线观看视频| 狠狠v欧美v日韩v亚洲ⅴ| 久久久久久久久久久电影| 成人免费观看视频| 一区二区三区在线观看网站| 在线视频一区二区三| 日本成人在线视频网站| 日韩久久免费av| 波多野洁衣一区| 午夜亚洲福利老司机| 久久综合色之久久综合| www.久久精品| 午夜婷婷国产麻豆精品| 337p日本欧洲亚洲大胆精品| youjizz国产精品| 亚洲aaa精品| 久久久久久久久蜜桃| 91免费国产在线| 麻豆精品视频在线观看免费| 欧美国产一区视频在线观看| 在线观看日韩一区| 国产资源在线一区| 亚洲一区二区综合| 精品88久久久久88久久久| 一本色道久久综合狠狠躁的推荐| 日韩中文字幕麻豆| 日本一区二区三级电影在线观看| 欧美色欧美亚洲另类二区| 精品一区二区三区久久久| 一区二区在线观看免费| 久久在线免费观看| 欧美日本视频在线| 91在线视频网址| 国内外精品视频| 天堂影院一区二区| 亚洲欧美综合色| 国产亚洲一区字幕| 88在线观看91蜜桃国自产| 成人av电影在线| 精品午夜久久福利影院 | 看电视剧不卡顿的网站| 亚洲精品高清在线| 国产精品久久精品日日| 精品国产一区二区精华| 69堂国产成人免费视频| 欧美三级资源在线| 99久久久免费精品国产一区二区| 国产在线精品不卡| 日本不卡视频一二三区| 亚洲成人自拍一区| 一个色妞综合视频在线观看| 国产精品乱码久久久久久| 精品99久久久久久| 精品欧美一区二区三区精品久久 | 亚洲精品第1页| 亚洲欧美在线视频观看| 中文字幕 久热精品 视频在线 | 亚洲成人免费在线| 亚洲精选在线视频| 亚洲精品一二三| 亚洲男人电影天堂| 国产精品不卡一区| 亚洲欧洲成人精品av97| 日韩一区在线播放| 亚洲欧美日韩在线不卡| 成人欧美一区二区三区| 亚洲少妇30p| 亚洲二区视频在线| 亚洲mv大片欧洲mv大片精品| 日韩高清中文字幕一区| 天天射综合影视| 美女视频免费一区| 国产综合色视频| 国产不卡在线播放| 99视频超级精品| 在线精品视频免费播放| 欧美私人免费视频| 欧美一区二区在线不卡| 日韩女优av电影| 国产日产欧美一区二区三区 | 国产91色综合久久免费分享| 国产黄人亚洲片| 亚洲欧洲性图库| 国产视频911| 综合久久久久综合| 亚洲精品国产a久久久久久| 午夜不卡av免费| 黄一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 一本色道a无线码一区v| 在线91免费看| 国产欧美日韩久久| 亚洲综合精品自拍| 精品在线视频一区| 99久久久久免费精品国产| 91精品国产免费久久综合| 国产午夜亚洲精品不卡| 亚洲一区二区三区小说| 国产主播一区二区三区| 欧美最猛黑人xxxxx猛交| 欧美一区二区免费| 日韩一区在线播放| 韩国成人精品a∨在线观看| 91免费看视频| 久久久精品中文字幕麻豆发布| 亚洲黄一区二区三区| 国产成人亚洲综合a∨婷婷| 欧美日韩精品一区视频| 国产精品久久久久久久裸模 | 欧美四级电影在线观看| 国产欧美精品一区二区三区四区 |