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

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

?? sdldecode.c

?? 基于SDL的跨平臺MPEG4播放器源代碼,支持硬件YUV加速
?? C
?? 第 1 頁 / 共 2 頁
字號:
        		SDL_UnlockYUVOverlay(overlay);
        		SDL_UnlockSurface(screen);        
        		SDL_DisplayYUVOverlay(overlay, &rect);
				/* Save output frame if required */
				if (ARG_SAVEDECOUTPUT) {
				    sprintf(filename, "%sdec%05d", filepath, filenr);
					if(write_image(filename, out_buffer)) {
				    fprintf(stderr,
						"Error writing decoded frame %s\n",
						filename);
					}
                }
                filenr++;
                if (resized)
                    resized = 0;
             }
          }
          SDL_Delay(10);
	} while (useful_bytes>0 || !feof(in_file));

	useful_bytes = 0; /* Empty buffer */

/*****************************************************************************
 *     Flush decoder buffers
 ****************************************************************************/

	do {

		/* Fake vars */
		int used_bytes;
		double dectime;

        do {
		    dectime = msecond();
		    used_bytes = dec_main(NULL, out_buffer, -1, &xvid_dec_stats);
		    dectime = msecond() - dectime;
        } while(used_bytes>=0 && xvid_dec_stats.type <= 0);

        if (used_bytes < 0) {   /* XVID_ERR_END */
            break;
        }

		/* Updated data - Count only usefull decode time */
		totaldectime += dectime;

		/* Prints some decoding stats */
		if (!display_buffer_bytes) {
			printf("Frame %5d: type = %s, dectime(ms) =%6.1f, length(bytes) =%7d\n",
					filenr, type2str(xvid_dec_stats.type), dectime, used_bytes);
		}

		/* Save output frame if required */
		if (ARG_SAVEDECOUTPUT) {
			sprintf(filename, "%sdec%05d", filepath, filenr);
			if(write_image(filename, out_buffer)) {
				fprintf(stderr,
						"Error writing decoded frame %s\n",
						filename);
			}
		}

		filenr++;

	}while(1);

/*****************************************************************************
 *     Calculate totals and averages for output, print results
 ****************************************************************************/

	if (filenr>0) {
		totalsize    /= filenr;
		totaldectime /= filenr;
		printf("Avg: dectime(ms) =%7.2f, fps =%7.2f, length(bytes) =%7d\n",
			   totaldectime, 1000/totaldectime, (int)totalsize);
	}else{
		printf("Nothing was decoded!\n");
	}
		
/*****************************************************************************
 *      XviD PART  Stop
 ****************************************************************************/

 release_all:
    SDL_FreeYUVOverlay(overlay);         
  	if (dec_handle) {
	  	status = dec_stop();
		if (status)    
			fprintf(stderr, "decore RELEASE problem return value %d\n", status);
	}

 free_all_memory:
    free(out_buffer);
	free(mp4_buffer);
	return 0;
}




/*****************************************************************************
 *               Usage function
 ****************************************************************************/

static void usage()
{

	fprintf(stderr, "Usage : xvid_decraw [OPTIONS]\n");
	fprintf(stderr, "Options :\n");
	fprintf(stderr, " -asm           : use assembly optimizations (default=disabled)\n");
	fprintf(stderr, " -i string      : input filename (default=stdin)\n");
	fprintf(stderr, " -d             : save decoder output\n");
	fprintf(stderr, " -f format      : choose output file format (tga, pnm, pgm)\n");
	fprintf(stderr, " -w width       : init window width\n");
	fprintf(stderr, " -h height      : init window height\n");
	fprintf(stderr, " -help          : This help message\n");
	fprintf(stderr, " (* means default)\n");

}

/* return the current time in milli seconds */
static double
msecond()
{	
	clock_t clk;
	clk = clock();
	return(clk * 1000 / CLOCKS_PER_SEC);
}

        
static int write_image(char *prefix, unsigned char *image)
{
	char filename[1024];
	char *ext;
	int ret;

	if (FORMAT == USE_PNM && BPP == 1) {
		ext = "pgm";
	} else if (FORMAT == USE_PNM && BPP == 3) {
		ext = "pnm";
	} else if (FORMAT == USE_TGA) {
		ext = "tga";
	} else {
		fprintf(stderr, "Bug: should not reach this path code -- please report to xvid-devel@xvid.org with command line options used");
		exit(-1);
	}

	sprintf(filename, "%s.%s", prefix, ext);

	if (FORMAT == USE_PNM) {
		ret = write_pnm(filename, image);
	} else {
		ret = write_tga(filename, image);
	}

	return(ret);
}

static int write_tga(char *filename, unsigned char *image)
{
	FILE * f;
	char hdr[18];

	f = fopen(filename, "wb");
	if ( f == NULL) {
		return -1;
	}

	hdr[0]  = 0; /* ID length */
	hdr[1]  = 0; /* Color map type */
	hdr[2]  = (BPP>1)?2:3; /* Uncompressed true color (2) or greymap (3) */
	hdr[3]  = 0; /* Color map specification (not used) */
	hdr[4]  = 0; /* Color map specification (not used) */
	hdr[5]  = 0; /* Color map specification (not used) */
	hdr[6]  = 0; /* Color map specification (not used) */
	hdr[7]  = 0; /* Color map specification (not used) */
	hdr[8]  = 0; /* LSB X origin */
	hdr[9]  = 0; /* MSB X origin */
	hdr[10] = 0; /* LSB Y origin */
	hdr[11] = 0; /* MSB Y origin */
	hdr[12] = (XDIM>>0)&0xff; /* LSB Width */
	hdr[13] = (XDIM>>8)&0xff; /* MSB Width */
	if (BPP > 1) {
		hdr[14] = (YDIM>>0)&0xff; /* LSB Height */
		hdr[15] = (YDIM>>8)&0xff; /* MSB Height */
	} else {
		hdr[14] = ((YDIM*3)>>1)&0xff; /* LSB Height */
		hdr[15] = ((YDIM*3)>>9)&0xff; /* MSB Height */
	}
	hdr[16] = BPP*8;
	hdr[17] = 0x00 | (1<<5) /* Up to down */ | (0<<4); /* Image descriptor */
	
	/* Write header */
	fwrite(hdr, 1, sizeof(hdr), f);

	/* write first plane */
	fwrite(image, 1, XDIM*YDIM*BPP, f);

	/* Write Y and V planes for YUV formats */
	if (BPP == 1) {
		int i;

		/* Write the two chrominance planes */
		for (i=0; i<YDIM/2; i++) {
			fwrite(image+XDIM*YDIM + i*XDIM/2, 1, XDIM/2, f);
			fwrite(image+5*XDIM*YDIM/4 + i*XDIM/2, 1, XDIM/2, f);
		}
	}


	/* Close the file */
	fclose(f);

	return(0);
}

static int write_pnm(char *filename, unsigned char *image)
{
	FILE * f;

	f = fopen(filename, "wb");
	if ( f == NULL) {
		return -1;
	}

	if (BPP == 1) {
		int i;
		fprintf(f, "P5\n#xvid\n%i %i\n255\n", XDIM, YDIM*3/2);

		fwrite(image, 1, XDIM*YDIM, f);

		for (i=0; i<YDIM/2;i++) {
			fwrite(image+XDIM*YDIM + i*XDIM/2, 1, XDIM/2, f);
			fwrite(image+5*XDIM*YDIM/4 + i*XDIM/2, 1, XDIM/2, f);
		}
	} else if (BPP == 3) {
		int i;
		fprintf(f, "P6\n#xvid\n%i %i\n255\n", XDIM, YDIM);
		for (i=0; i<XDIM*YDIM*3; i+=3) {
			fputc(image[i+2], f);
			fputc(image[i+1], f);
			fputc(image[i+0], f);
		}
	}

	fclose(f);

	return 0;
}

/*****************************************************************************
 * Routines for decoding: init decoder, use, and stop decoder
 ****************************************************************************/

/* init decoder before first run */
static int
dec_init(int use_assembler, int debug_level)
{
	int ret;

	xvid_gbl_init_t   xvid_gbl_init;
	xvid_dec_create_t xvid_dec_create;

	/* Reset the structure with zeros */
	memset(&xvid_gbl_init, 0, sizeof(xvid_gbl_init_t));
	memset(&xvid_dec_create, 0, sizeof(xvid_dec_create_t));

	/*------------------------------------------------------------------------
	 * XviD core initialization
	 *----------------------------------------------------------------------*/

	/* Version */
	xvid_gbl_init.version = XVID_VERSION;

	/* Assembly setting */
	if(use_assembler)
	    xvid_gbl_init.cpu_flags = 0;
	else
		xvid_gbl_init.cpu_flags = XVID_CPU_FORCE;

	xvid_gbl_init.debug = debug_level;

	xvid_global(NULL, 0, &xvid_gbl_init, NULL);

	/*------------------------------------------------------------------------
	 * XviD encoder initialization
	 *----------------------------------------------------------------------*/

	/* Version */
	xvid_dec_create.version = XVID_VERSION;

	/*
	 * Image dimensions -- set to 0, xvidcore will resize when ever it is
	 * needed
	 */
	xvid_dec_create.width = 0;
	xvid_dec_create.height = 0;

	ret = xvid_decore(NULL, XVID_DEC_CREATE, &xvid_dec_create, NULL);

	dec_handle = xvid_dec_create.handle;

	return(ret);
}

/* decode one frame  */
static int
dec_main(unsigned char *istream,
		 unsigned char *ostream,
		 int istream_size,
		 xvid_dec_stats_t *xvid_dec_stats)
{

	int ret;

	xvid_dec_frame_t xvid_dec_frame;

	/* Reset all structures */
	memset(&xvid_dec_frame, 0, sizeof(xvid_dec_frame_t));
	memset(xvid_dec_stats, 0, sizeof(xvid_dec_stats_t));

	/* Set version */
	xvid_dec_frame.version = XVID_VERSION;
	xvid_dec_stats->version = XVID_VERSION;

	/* No general flags to set */
	xvid_dec_frame.general          = 0;

	/* Input stream */
	xvid_dec_frame.bitstream        = istream;
	xvid_dec_frame.length           = istream_size;

	/* Output frame structure */
	xvid_dec_frame.output.plane[0]  = ostream;
	xvid_dec_frame.output.stride[0] = XDIM*BPP;
	xvid_dec_frame.output.csp = CSP;

	ret = xvid_decore(dec_handle, XVID_DEC_DECODE, &xvid_dec_frame, xvid_dec_stats);

	return(ret);
}

/* close decoder to release resources */
static int
dec_stop()
{
	int ret;

	ret = xvid_decore(dec_handle, XVID_DEC_DESTROY, NULL, NULL);

	return(ret);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色软件下载| 国产精品国模大尺度视频| 国产欧美日韩三区| 亚洲一区中文在线| 国产999精品久久| 日韩欧美三级在线| 亚洲乱码一区二区三区在线观看| 黑人精品欧美一区二区蜜桃| 欧美日韩午夜影院| 《视频一区视频二区| 国产美女主播视频一区| 日韩一级免费一区| 午夜电影网一区| 欧洲中文字幕精品| 1024成人网色www| 懂色av噜噜一区二区三区av| 欧美白人最猛性xxxxx69交| 亚洲一级不卡视频| 欧日韩精品视频| 亚洲欧美日韩小说| 99久久国产免费看| 欧美国产日本视频| 成人动漫视频在线| 国产精品国产自产拍高清av| 国产成人综合网站| 日本一区二区不卡视频| 风间由美一区二区三区在线观看 | 欧美日韩日日骚| 亚洲精选视频在线| 91亚洲精品久久久蜜桃网站| 国产精品污网站| 成人一道本在线| 国产精品不卡在线观看| 91麻豆免费看片| 中文字幕欧美一| 日本韩国一区二区| 亚洲电影第三页| 777精品伊人久久久久大香线蕉| 亚洲综合色噜噜狠狠| 欧美三级中文字幕| 美女视频黄a大片欧美| 欧美一区二区美女| 激情丁香综合五月| 中文字幕久久午夜不卡| aaa亚洲精品一二三区| 亚洲精品国产一区二区三区四区在线| 91影院在线观看| 亚洲一二三专区| 欧美一卡二卡在线观看| 蜜臀av国产精品久久久久| 欧美成人福利视频| 懂色av一区二区三区免费观看| 中文字幕一区二区三| 91蜜桃视频在线| 日韩电影免费一区| 欧美韩国日本综合| 欧美伊人久久久久久午夜久久久久| 偷拍一区二区三区四区| 久久理论电影网| 一本色道久久综合亚洲精品按摩| 亚洲专区一二三| www激情久久| 欧美午夜宅男影院| 看电视剧不卡顿的网站| 国产精品久久久久久久久晋中 | 久久久国产精品不卡| 成人高清视频在线| 日韩不卡免费视频| 久久精品免费在线观看| 在线观看视频一区二区 | xnxx国产精品| 色哟哟精品一区| 久久91精品久久久久久秒播| 国产三级精品三级| 欧美喷潮久久久xxxxx| 国产一区二区免费看| 一区二区三区视频在线看| 日韩美一区二区三区| 91麻豆产精品久久久久久| 麻豆精品新av中文字幕| 一区二区成人在线| 欧美国产禁国产网站cc| 欧美一区二区三区的| 色狠狠一区二区三区香蕉| 精品无码三级在线观看视频| 亚洲永久精品国产| 国产欧美日韩在线| 欧美成人性战久久| 欧美色欧美亚洲另类二区| www.色精品| 国产麻豆一精品一av一免费| 日本不卡高清视频| 亚洲高清不卡在线| 亚洲精品日韩一| 国产精品第五页| 国产区在线观看成人精品| 精品少妇一区二区三区免费观看| 日本高清不卡aⅴ免费网站| 成人av先锋影音| 国产成人精品午夜视频免费| 国内精品免费在线观看| 麻豆中文一区二区| 日韩电影一区二区三区| 亚洲18色成人| 亚洲成在人线免费| 一区二区三区四区在线免费观看| 国产精品久久久久久久久果冻传媒 | 欧美大片一区二区| 欧美一区二区三区人| 欧美美女一区二区三区| 欧美精品久久天天躁| 欧美日韩日日骚| 91精品国产综合久久蜜臀| 中文字幕巨乱亚洲| 国产日韩欧美高清| 日本一区二区三区电影| 国产日韩三级在线| 国产精品免费av| 亚洲精品视频在线观看网站| 亚洲欧美日韩成人高清在线一区| 亚洲天堂成人在线观看| 国产精品大尺度| 亚洲免费电影在线| 亚洲成av人在线观看| 日韩影院免费视频| 久久99精品一区二区三区| 免费在线观看日韩欧美| 黄色日韩三级电影| 大桥未久av一区二区三区中文| 暴力调教一区二区三区| 欧洲激情一区二区| 欧美一级艳片视频免费观看| 日韩精品最新网址| 欧美国产日本韩| 亚洲一区二区在线视频| 六月婷婷色综合| 国产久卡久卡久卡久卡视频精品| 成人激情开心网| 在线观看欧美黄色| 精品少妇一区二区三区日产乱码 | 欧美一区二区视频在线观看 | 91精品久久久久久久91蜜桃| 日韩你懂的在线观看| 中文字幕免费一区| 午夜精品免费在线观看| 久久99精品一区二区三区| 暴力调教一区二区三区| 国产一区二区导航在线播放| 日韩一区在线播放| 天堂影院一区二区| 亚洲午夜电影在线| 久久se精品一区精品二区| www.色精品| 日韩欧美中文字幕公布| 亚洲欧美在线高清| 狠狠色丁香久久婷婷综| 日本久久电影网| 国产日韩欧美精品综合| 午夜亚洲福利老司机| 成人av先锋影音| 欧美草草影院在线视频| 亚洲乱码中文字幕综合| 国产伦精一区二区三区| 欧美欧美欧美欧美首页| 亚洲视频电影在线| 国产麻豆精品theporn| 精品视频在线免费| 日韩伦理电影网| 狠狠色丁香婷综合久久| 在线不卡欧美精品一区二区三区| 欧美激情在线观看视频免费| 国产自产2019最新不卡| 成人黄色软件下载| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲一区二区精品久久av| 成人美女视频在线观看18| 精品国产欧美一区二区| 午夜久久久影院| 欧美视频一区二区三区在线观看| 中文字幕欧美三区| 国内一区二区视频| 欧美r级在线观看| 亚洲午夜久久久久久久久久久 | 久久综合久久久久88| 五月天婷婷综合| 欧美三级乱人伦电影| 亚洲欧美色综合| 91在线高清观看| 亚洲精品欧美专区| 成人av网址在线观看| 中文字幕亚洲欧美在线不卡| 国产成人亚洲综合a∨婷婷| 精品裸体舞一区二区三区| 久久精品久久久精品美女| 日韩视频免费观看高清完整版| 视频一区欧美日韩| 欧美日韩国产首页| 调教+趴+乳夹+国产+精品| 6080国产精品一区二区| 日日夜夜免费精品视频|