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

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

?? tmndec.c

?? 文件內包含H.263視頻編碼算法和解碼算法2個文件
?? C
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************
 *
 *  tmndec.c, main(), initialization, options for tmndecode (H.263 decoder)
 */
#include <stdio.h>
#include <stdlib.h>
#include <tm1/tmICP.h>
#include <string.h>
#include <assert.h>
#include <tm1/mmio.h>
#include <tmlib/tmtypes.h>
#include <ops/custom_defs.h>
#include <tmlib/tmlibc.h>
#include <tm1/tmHelp.h>
#include <ctype.h>
#include <fcntl.h>

#define GLOBAL

#include "config.h"
#include "tmndec.h"
#include "global.h"

#define VIDEO_ADDR 0xfe000000    /* Start address of the screen */
#define VIDEO_STRIDE 2048        /* For 24 bit video it is 3xscreen width */
#define BPP 2                    /* # bytes per pixel */
#define PIX_OFFSET 0             /* OutPixOffset = 0 for vertical and 
                                  * horizontal filters 
                                  */
#define STRIDE    352
#define TRUE 1
#define FALSE 0

static unsigned long   dispAddr;
static int             dispStride;
static int             bpp;
static int             not555a;
static int             icpInst;   /* instance number for the ICP */
static unsigned char   *yBase;
static unsigned char   *uBase;
static unsigned char   *vBase;
static icpInstanceSetup_t          icpInstSup;
static icpCapabilities_t          *icpCapabilities;
static icpImageColorConversion_t   icpImage;

static volatile int interrupt_done;


void icpISR(void)
{
#pragma TCS_handler
#pragma TCS_atomic

    interrupt_done = 1;
    icpEnableACK_DONE();

    return;
}

static void my_abort(char * name, int err)
{
    assert(name != Null);
    fprintf(stderr, "%s failed, error code %x\n", name, err);
    exit(-1);
}

void icpDisplay(unsigned char *y, unsigned char *u, unsigned char *v)
{
    int         err;
   
    icpImage.yBase = y;
    icpImage.uBase = u;
    icpImage.vBase = v;

	interrupt_done = 0;
    if (err = icpColorConversion(icpInst, &icpImage))
        my_abort("icpColorConversion", err);
    while (icpCheckBUSY());
}

static void SetupICP()
{
    tmLibdevErr_t err;	

	if (err = icpGetCapabilities(&icpCapabilities))
        my_abort("icpGetCapabilities", err);

    if (err = icpOpen(&icpInst))
        my_abort("icpOpen", err);

    memset((Char *) &icpInstSup, 0, sizeof(icpInstanceSetup_t));
	
	icpInstSup.reset = 1;
    icpInstSup.interruptPriority = intPRIO_4;    /* Priority 4 Interrupt */
    icpInstSup.isr = &icpISR;                    /* User Interrupt service routine */

    if (err = icpInstanceSetup(icpInst, &icpInstSup))
        my_abort("icpInstanceSetup", err);

    interrupt_done = 0;
	if (err = icpLoadCoeff(icpInst, NULL))
       my_abort("icpLoadCoeff", err);
	while (!interrupt_done);

    memset((Char *) &icpImage, 0, sizeof(icpImageColorConversion_t));

	icpImage.yInputStride = STRIDE/2;
	icpImage.uvInputStride = STRIDE/4;
	icpImage.inputWidth = horizontal_size;
	icpImage.inputHeight = vertical_size;
	icpImage.outputWidth = horizontal_size;
	icpImage.outputHeight = vertical_size;
	icpImage.outputStride = dispStride;
	icpImage.outputImage = (unsigned char *)dispAddr;

    icpImage.filterBypass = icpBYPASS;
    icpImage.outputPixelOffset = 0.0;

    icpImage.inFormat = vdfYUV420Planar;    /* We know the input image format */
	icpImage.outputDestination = icpPCI;
	
#ifdef __LITTLE_ENDIAN__
	icpImage.littleEndian = True;
#else
#if defined(__BIG_ENDIAN__) && defined(__TCS_WinNT__)
	icpImage.littleEndian = True;
#else
	icpImage.littleEndian = False;
#endif
#endif
	
	icpImage.overlayEnable = 0;
	icpImage.bitMaskEnable = 0;

    if (bpp == 1)
		icpImage.outFormat = vdfRGB8A_233;
	else if (bpp == 2 && not555a)
		icpImage.outFormat = vdfRGB16;
	else if (bpp == 2 && (!not555a))
		icpImage.outFormat = vdfRGB15Alpha;
	else if (bpp == 3)
		icpImage.outFormat = vdfRGB24;
	else if (bpp == 4)
		icpImage.outFormat = vdfRGB24Alpha;
}

void get_parameters(int argc, char *argv[],
                    unsigned long *disp_addr, int *stride, int *bpp, int *not555a)
{
    int         ok;
    char        temp;

    ok = TRUE;
    while (ok && (--argc > 0)) {
        if ((*++argv)[0] == '-') {
            /* It is an option. */
            if (strcmp(*argv, "-d") == 0) {
                if (--argc > 0) {
                    if (sscanf(*++argv, "%x %c", disp_addr, &temp) != 1) {
                        printf("Error: hex. number expected as -d argument.\n");
                        ok = FALSE;
                    }
                }
                else {
                    printf("Error in display address: option "
                           "-d requires argument.\n");
                    ok = FALSE;
                }
            }
            else if (strcmp(*argv, "-s") == 0) {
                if (--argc > 0) {
                    if (sscanf(*++argv, "%d %c", stride, &temp) != 1) {
                        fprintf(stderr, "Error: Integer expected as -s "
                                        "argument.\n");
                        ok = FALSE;
                    }
                }
                else {
                    fprintf(stderr, "Error: option -s requires argument.\n");
                    ok = FALSE;
                }

            }
            else if (strcmp(*argv, "-b") == 0) {
                if (--argc > 0) {
                    if (sscanf(*++argv, "%d %c", bpp, &temp) != 1) {
                        fprintf(stderr, "Error: Integer expected as "
                                        "-b argument.\n");
                        ok = FALSE;
                    }
                }
                else {
                    fprintf(stderr, "Error: option -b requires argument.\n");
                    ok = FALSE;
                }

            }
            else if (strcmp(*argv, "-not555a") == 0) {
                *not555a = 1;
            }
            else {
                printf("Error: invalid option '%s'.\n", *argv);
                ok = FALSE;
            }
        }
    }

    if (!ok) {
        printf("Usage: icptest.out [options]\n");
        printf("Options:\n");
        printf("  -d #  hexadecimal, Video address   (default: 0xFE000000)\n");
        printf("  -s #  integer    , Video stride    (default: 2400 (for 800x600x3 display) \n");
        printf("  -b #  integer    , Bytes per pixel (default: 3 (for 800x600x3 display) \n");
        printf("  -not555a         , When RGB 16 mode is required. RGB 15 + alpha is default \n");
        exit(1);
    }
    return;
}


/* private data */
static int loopflag;

static void initdecoder _ANSI_ARGS_((void));
static void options _ANSI_ARGS_((int *argcp, char *argvp[]));
static int getval _ANSI_ARGS_((char *argv[]));



int main(int argc, char * argv[])   
{   	
	int first, framenum;

    int runtime;
    unsigned int startTime=0, stopTime=0;

/*
#ifdef WINDOWS
printf("windows defined!\n");
#else 
 printf("windows not defined!\n");
#endif

#ifdef USE_TIME
printf("use time defined!\n");
#else 
  printf("use time not defined!\n");
#endif

#ifdef DISPLAY
printf("display defined!\n");
#else
 printf("display not defined!\n");
#endif

#ifndef WIN32
printf("win32 not defined!\n");
getchar();
#else 
	printf("win32 defined!\n");
    getchar();
#endif
*/	

	dispAddr = (unsigned long) VIDEO_ADDR;
    dispStride = VIDEO_STRIDE;                   /* For PCI it is the video stride */
    bpp = BPP;
    not555a = 0;
	
    printf("Running on "); tmHelpReportSystem(stdout);
	
    get_parameters(argc, argv, &dispAddr, &dispStride, &bpp, &not555a);
    printf("  Display address  0x%x, Stride: %d, Bytes per pixel: %d\n",
		   dispAddr, dispStride, bpp);

   
#ifdef USE_TIME
  /* default is read frame rate from bitstream */
  framerate=99;
#endif
/*
   options(&argc,argv);
*/
  openfilename = "streamout.263";
  loopflag = 0;                      /* No looping for output to file */
  framerate = 99;                     /* No delay necessary when output to file */
  outtype = T_WIN;
  
  /* pointer to name of output files */
  if (outtype==T_X11 || outtype == T_WIN)
    outputname = "";
  else
    outputname = "new.263";

  ld = &base; 

  /* open MPEG input file(s) */
  if ((base.infile=open(openfilename,O_RDONLY|O_BINARY))<0) 
  {
    sprintf(errortext,"Input file %s not found\n",openfilename);
    error(errortext);
  }

  first = 1;

  do 
  {
    if (base.infile!=0)
      lseek(base.infile,0l,0);
    initbits();
    framenum = 0;
    temp_ref = 0;
    prev_temp_ref =1; 

    while (getheader()) 
	{
      if (first) 
	  {
        initdecoder();
        startTime = clock();
        if (framerate > 0)
          targetTime = clock();
        first = 0;
      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆123| 国产精品成人午夜| 亚洲品质自拍视频| 水野朝阳av一区二区三区| 国产一区视频在线看| 欧美色图免费看| 国产精品美女久久久久久久| 麻豆成人免费电影| 欧美优质美女网站| 中文字幕在线一区| 精彩视频一区二区三区| 欧美日韩免费一区二区三区| 国产精品狼人久久影院观看方式| 蜜臀av一级做a爰片久久| 91黄色激情网站| 国产精品久久久久久户外露出 | 欧美成人三级电影在线| 亚洲男同1069视频| 99re66热这里只有精品3直播| 欧美v日韩v国产v| 天天爽夜夜爽夜夜爽精品视频| 99热精品国产| 国产精品毛片a∨一区二区三区| 久久精品国产网站| 欧美一区二区视频免费观看| 午夜精品久久久久久久99水蜜桃| 91精品福利在线| 一区二区免费视频| 在线免费观看成人短视频| 国产精品麻豆一区二区| 成人教育av在线| 国产精品第一页第二页第三页| 丰满岳乱妇一区二区三区| 久久精品一区四区| 成人一区二区在线观看| 日本一区二区不卡视频| 高清日韩电视剧大全免费| 国产欧美日韩在线看| 成人少妇影院yyyy| 亚洲欧洲国产日本综合| 91久久精品国产91性色tv| 亚洲综合激情网| 555夜色666亚洲国产免| 美女脱光内衣内裤视频久久网站 | 久久在线观看免费| 国产乱一区二区| 国产精品剧情在线亚洲| 色哟哟一区二区| 亚洲成a人片综合在线| 日韩视频一区二区在线观看| 激情都市一区二区| 国产精品久久久久久福利一牛影视| av激情亚洲男人天堂| 洋洋成人永久网站入口| 宅男噜噜噜66一区二区66| 国内精品伊人久久久久影院对白| 久久人人超碰精品| 91首页免费视频| 丝袜美腿亚洲综合| 国产视频一区二区三区在线观看| www.99精品| 午夜电影网亚洲视频| 日韩一区二区三区四区五区六区| 国产精品一区二区三区四区| 国产精品初高中害羞小美女文 | 久久成人麻豆午夜电影| 国产精品久久久久久久久图文区| 欧美熟乱第一页| 久久99精品久久只有精品| 国产精品久久一级| 欧美丰满一区二区免费视频| 国产成人av网站| 亚洲午夜成aⅴ人片| 精品福利一区二区三区 | 欧美视频自拍偷拍| 国产一区三区三区| 亚洲国产精品综合小说图片区| 精品盗摄一区二区三区| 欧洲一区在线电影| 国产丶欧美丶日本不卡视频| 亚洲一区二区美女| 国产精品欧美久久久久无广告| 欧美私人免费视频| 波多野结衣中文字幕一区 | 国产激情一区二区三区| 亚洲国产wwwccc36天堂| 国产精品人妖ts系列视频| 91精品国产综合久久香蕉的特点| aaa国产一区| 精东粉嫩av免费一区二区三区| 尤物视频一区二区| 中文字幕免费观看一区| 精品久久久久久久一区二区蜜臀| 在线观看免费一区| 99久久99久久精品免费看蜜桃| 日本不卡1234视频| 天天影视色香欲综合网老头| 亚洲精品国产一区二区精华液 | 高清不卡一二三区| 理论电影国产精品| 日本午夜精品一区二区三区电影| 亚洲欧美乱综合| 亚洲欧洲性图库| 国产性色一区二区| 久久久蜜臀国产一区二区| 日韩一区二区三区免费观看| 欧美精三区欧美精三区| 欧美日韩一区二区三区不卡| 色噜噜狠狠色综合欧洲selulu| 国产精品1024久久| 国产电影一区二区三区| 国产美女在线精品| 国产综合久久久久影院| 国产精一区二区三区| 久久精品国产一区二区三| 蜜桃精品视频在线观看| 蜜臀91精品一区二区三区| 亚洲免费观看高清完整版在线| 中文字幕一区二区三区在线观看| 国产欧美日韩卡一| 国产精品久久综合| 亚洲免费观看视频| 亚洲国产欧美在线人成| 午夜av区久久| 久久国产精品第一页| 国内欧美视频一区二区| 粉嫩久久99精品久久久久久夜| 成人一级片在线观看| 91视频观看视频| 欧美亚洲免费在线一区| 欧美一级专区免费大片| 日韩欧美激情四射| 久久久久久毛片| 日韩美女视频一区| 亚洲成a人在线观看| 六月婷婷色综合| 白白色 亚洲乱淫| 欧美日韩精品一区二区三区 | 欧美猛男超大videosgay| 欧美美女黄视频| 欧美一区二视频| 国产欧美一区二区在线观看| 伊人一区二区三区| 秋霞电影一区二区| 成人免费看黄yyy456| 欧美午夜精品电影| 久久综合九色综合欧美就去吻| 国产精品理论片在线观看| 亚洲一区二区av在线| 国产制服丝袜一区| 91污片在线观看| 欧美一区二区三区啪啪| 中文乱码免费一区二区| 亚洲成人自拍偷拍| 高清beeg欧美| 欧美一区二区三区在线视频| 国产精品理伦片| 蜜臀av性久久久久av蜜臀妖精| 成人激情小说乱人伦| 在线电影欧美成精品| 国产精品欧美综合在线| 日韩高清中文字幕一区| 91同城在线观看| 久久综合色之久久综合| 亚洲妇女屁股眼交7| 国产91在线观看丝袜| 91精品国产综合久久香蕉麻豆| 国产精品成人网| 国产精品一区一区| 日韩一区二区三区视频在线观看| 一区在线播放视频| 国产高清不卡二三区| 日韩一区二区精品葵司在线| 亚洲欧洲国产日韩| 国内精品伊人久久久久av一坑| 精品视频一区二区不卡| 国产精品欧美一级免费| 国产精品一区二区三区网站| 欧美精品九九99久久| 亚洲一区二区三区四区的| 成人免费黄色大片| 国产视频视频一区| 精品在线播放免费| 日韩欧美视频一区| 日韩国产精品久久久久久亚洲| 欧美主播一区二区三区美女| 国产精品免费aⅴ片在线观看| 国产主播一区二区三区| 欧美tickle裸体挠脚心vk| 亚洲成av人综合在线观看| 欧美亚洲综合网| 一区二区三区高清在线| 色综合久久久久久久久久久| 中文字幕日韩一区| 成人精品视频一区二区三区尤物| 国产午夜亚洲精品午夜鲁丝片| 精品一二线国产| 久久久久久免费| 处破女av一区二区| 亚洲日本免费电影|