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

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

?? play_video_checksum.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* * * Copyright (c) Sigma Designs, Inc. 2002-2006. All rights reserved. * *//**	@file play_video_checksum.c	@brief Application to calculate checksum of frames decoded from video decoder.		@author Julien Soulier, Michael Uman   	@ingroup dccsamplecode*/#include "sample_os.h"//#define SEND_IBC#define ALLOW_OS_CODE 1#include <libgen.h>#include "../dcc/include/dcc.h"#include "../rmlibcw/include/rmfile.h"#include "common.h"#include "bcc.h"#include "checksum.h"#define COMMON_TIMEOUT_US    (TIMEOUT_10MS)#define DMA_BUFFER_SIZE_LOG2 15#define DMA_BUFFER_COUNT     32#define REPACK_SIZE (4096)#define VIDEO_FIFO_SIZE (1024*1024)#define XFER_FIFO_COUNT (1024) // 32#define KEYFLAGS (SET_KEY_DISPLAY | SET_KEY_PLAYBACK | SET_KEY_DEBUG)#define ALLOW_OS_CODE 1#define MAXHEADERSIZE 4095#define RM_DEVICES_STC 0x1#define RM_DEVICES_VIDEO 0x2#define DEBUG	ENABLE#define START_IN_IFRAME_MODE 0#ifdef	SEND_IBC#define HARDCODE_BYTECOUNT	0x100000#endif#if 0#define SENDDBG ENABLE#define CRCDBG	ENABLE#else#define SENDDBG DISABLE#define CRCDBG 	DISABLE#endif#define ENABLE_MONITOR 0//	CHECKSUM OPTIONS#define	DO_SAVE			1#define DO_CRC32		1//#define DO_DUMP		1#define WAIT_FOR_KEY		1#define DO_LINEAR_BUFFER	1#define USE_WAITEOS			1#define DO_CAPTURE			1//#define INIT_DISPLAY_CONSUMER	1#define SAVEPATH			"SAVEYUV"//#define HANDLE_DISPLAY_STATUS	1/* 0 the decoder will remember the seqHeader,    1 we must store it locally and resend it (trickmodes not supported) */#define STORE_SEQ_HEADER_LOCALLY 0 #ifdef	USE_WAITEOSstatic RMuint32 NTimes = 0;#endifstatic struct playback_cmdline *play_opt;static struct video_cmdline *video_opt;static struct display_cmdline *disp_opt;static RMascii		crcLogFilename[1024];struct video_context {	struct RUABufferPool *pDMA;	RMbool FirstSystemTimeStamp;	RMuint32 FirstPTS;	struct dcc_context *dcc_info;	struct RM_PSM_Context *PSMcontext;	RMfile f_bitstream;	RMint64 fileSize;	RMbool video_decoder_initialized;	RMbool initVideo;	RMbool trickMode;	RMbool iframeMode;	RMbool ResyncTimer;	RMuint64 lastSTC;	RMuint64 lastVideoPTS;	RMuint64 lastDecoded;	RMbool highSpeedIFrameMode;	RMuint32 highSpeedIFrameSpeed;	RMbool bcc_enabled;	struct bcc *pbcc;	RMuint32 prebuf_level;	RMuint32 byte_counter;	RMbool monitor;	RMuint32 bitrate;	RMuint64 meanBitrate;	RMuint32 meanCount;	RMuint64 last_video_pts;};#ifdef DO_CAPTUREint get_picture(struct dcc_context *pSendContext);#endif#ifdef	DO_DUMPvoid dump(RMuint8* data, RMuint32 size);#endif#ifdef	DO_SAVE//void save_frame(int count, RMuint8* pLuma, RMuint8* pChroma, RMuint32 luma_size, RMuint32 chroma_size); void save_frame(int count,				RMuint8* pLuma, RMuint32 luma_w, RMuint32 luma_h, RMuint32 luma_width,				RMuint8* pChroma, RMuint32  chroma_w, RMuint32 chroma_h, RMuint32 chroma_width);#endifvoid extract_buffer(struct video_context *pSendContext, RMuint32 address, RMuint32 w, RMuint32 h, RMuint32 total_width, RMuint32 size);RMstatus WaitForEOSWithCommand2(struct RM_PSM_Context *PSMcontext, struct dcc_context *dcc_info_array[], struct RM_PSM_Actions *pActions, RMuint32 eos_bit_field);RMstatus WaitForFrames(struct video_context *pSendContext); void compute_crclog_filename(RMascii* bsFilename, RMascii* logFilename);#define GET_DATA_FIFO_INFO(pRUA, ModuleId)				\	{								\		struct DataFIFOInfo DataFIFOInfo;			\		RMreal fullness;					\		RUAGetProperty(pRUA, ModuleId, RMGenericPropertyID_DataFIFOInfo, &DataFIFOInfo, sizeof(DataFIFOInfo)); \		fullness = (RMreal)((100./DataFIFOInfo.Size)*DataFIFOInfo.Readable); \		fprintf(stderr, "Data %lx: st=%08lx sz=%ld wr=%ld rd=%ld --> f : %.02f\n", ModuleId, DataFIFOInfo.StartAddress,	\			DataFIFOInfo.Size, DataFIFOInfo.Writable,  DataFIFOInfo.Readable, fullness); \	}								\#define GET_XFER_FIFO_INFO(pRUA, ModuleId)				\	{								\		struct XferFIFOInfo_type XferFIFOInfo;			\		RMreal fullness;					\		RUAGetProperty(pRUA, ModuleId, RMGenericPropertyID_XferFIFOInfo, &XferFIFOInfo, sizeof(XferFIFOInfo)); \		fullness = (RMreal)((100./XferFIFOInfo.Size)*XferFIFOInfo.Readable); \		fprintf(stderr, "XFER %lx: st=%08lx sz=%ld wr=%ld rd=%ld er=%lx --> f : %.02f	\n", ModuleId, XferFIFOInfo.StartAddress, \			XferFIFOInfo.Size, XferFIFOInfo.Writable,  XferFIFOInfo.Readable, XferFIFOInfo.Erasable, fullness); \	}#define MONITOR_INTERVAL_US 250000static void monitor(struct video_context *context, RMbool alwaysShow){		/* the bitrate reading of this probe is accurate only if the blocking call is RUASendData */	struct timeval now;		static struct timeval last;		static int first = 1;	RMuint64 elapsed; 		RMuint64 ptime; 		struct dcc_context *dcc_info = context->dcc_info;	gettimeofday(&now, NULL);	elapsed = (now.tv_sec - last.tv_sec) * 1000000;			elapsed += (now.tv_usec - last.tv_usec);	if (elapsed > MONITOR_INTERVAL_US || first || alwaysShow){		RMuint64 bitrate = (RMuint64)context->bitrate * 1000000;		bitrate /= elapsed;		context->meanBitrate += bitrate;		context->meanCount++;		DCCSTCGetTime(dcc_info->pStcSource, &ptime, 90000);					fprintf(stderr, "\n*****************************\n");					fprintf(stderr, "STC = %llu (%llu secs)\n", ptime, (ptime/90000));		/* sample code to get fifo info */		fprintf(stderr, "Video :\n"); 					GET_DATA_FIFO_INFO(dcc_info->pRUA, dcc_info->video_decoder);		GET_XFER_FIFO_INFO(dcc_info->pRUA, dcc_info->video_decoder);					fprintf(stderr, "bitrate: mean %llu bit/sec, pseudo-instantaneus %llu bit/sec (%lu bytes/%llu us)\n", 			context->meanBitrate / context->meanCount,			bitrate, 			context->bitrate >> 3, 			elapsed);		fprintf(stderr, "*****************************\n");					gettimeofday(&last, NULL);		first = 0;		context->bitrate = 0;		fflush(stderr);			}					        	return;}static RMuint32 trickBuffersToSend = 0;static RMuint32 trickSizeToSend = 0;static RMuint32 trickBuffersSent = 0;static struct RM_PSM_Actions actions;#define PROCESS_KEY(release, getkey)					\do	{								\		RMDBGLOG((DISABLE, "process_key\n"));			\		if (getkey) {						\		        FSMstate = RM_PSM_GetState(context.PSMcontext, &(context.dcc_info));			\                        if ((FSMstate == RM_PSM_Stopped) || (FSMstate == RM_PSM_Paused)) {			\			        switch (play_opt->disk_ctrl_state) {						\			        case DISK_CONTROL_STATE_DISABLE:						\			        case DISK_CONTROL_STATE_SLEEPING:						\				        break;									\			        case DISK_CONTROL_STATE_RUNNING:						\						if(play_opt->disk_ctrl_callback && play_opt->disk_ctrl_callback(DISK_CONTROL_ACTION_SLEEP) == RM_OK) \					        play_opt->disk_ctrl_state = DISK_CONTROL_STATE_SLEEPING;	\				        break;									\			        }										\		        }						\			err = process_command(context.PSMcontext, &(context.dcc_info), &actions); \			if (RMFAILED(err)) {				\				fprintf(stderr, "Error while processing key %d\n", err); \				goto cleanup;				\			}						\		}							\		if (((RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)) == RM_PSM_Slow) || \		     (RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)) == RM_PSM_Fast) || \		     (RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)) == RM_PSM_NextPic)) && \		    (actions.cmdProcessed) && (!context.trickMode)) {	\			RMDBGLOG((ENABLE, ">> trick mode\n"));		\			if (release) {					\				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\			context.trickMode = TRUE;			\			context.FirstSystemTimeStamp = TRUE;		\		}							\		if (actions.toDoActions & RM_PSM_FLUSH_VIDEO) {		\			RMDBGLOG((ENABLE, "flushVIDEO\n"));		\			Stop(&context, RM_DEVICES_VIDEO);		\			context.video_decoder_initialized = FALSE;	\			context.initVideo = TRUE;			\			actions.toDoActions &= ~RM_PSM_FLUSH_VIDEO;	\		}							\		if (actions.toDoActions & RM_PSM_FIRST_PTS) {		\			RMDBGLOG((ENABLE, "firstPTS\n"));		\			context.FirstSystemTimeStamp = TRUE;		\			actions.toDoActions &= ~RM_PSM_FIRST_PTS;	\		}							\		if (actions.toDoActions & RM_PSM_RESYNC_TIMER) {	\			RMDBGLOG((ENABLE, "resyncTimer\n"));		\			context.ResyncTimer = TRUE;			\			actions.toDoActions &= ~RM_PSM_RESYNC_TIMER;	\		}							\		if (actions.performedActions & RM_PSM_VIDEO_STOPPED) {	\			RMDBGLOG((ENABLE, "video stopped\n"));		\			context.video_decoder_initialized = FALSE;	\			context.initVideo = TRUE;			\			actions.performedActions &= ~RM_PSM_VIDEO_STOPPED; \			/* needed for no dram copy version on standalone */ \			err = RUAResetPool(pDMA);			\			if (RMFAILED(err)) {				\				RMDBGLOG((ENABLE, "Error cannot reset dmapool\n")); \				goto cleanup;				\			}						\		}							\		if (actions.performedActions & RM_PSM_STC_STOPPED) {	\			RMDBGLOG((ENABLE, "stc stopped\n"));		\			actions.performedActions &= ~RM_PSM_STC_STOPPED; \		}							\		if (actions.toDoActions & RM_PSM_DEMUX_IFRAME) {	\			RMDBGLOG((ENABLE, "demuxIFrame\n"));		\			Play(&context, RM_DEVICES_VIDEO, DCCVideoPlayIFrame); \			context.iframeMode = TRUE;			\			actions.toDoActions &= ~RM_PSM_DEMUX_IFRAME;	\		}							\		if (actions.toDoActions & RM_PSM_DEMUX_NORMAL) {	\			RMDBGLOG((ENABLE, "demuxNormal\n"));		\			context.iframeMode = FALSE;			\			RMDBGLOG((ENABLE, "flushing fifos\n")); \			Stop(&context, RM_DEVICES_VIDEO);		\			Play(&context, RM_DEVICES_VIDEO, DCCVideoPlayFwd); \			context.highSpeedIFrameMode = FALSE;		\			actions.toDoActions &= ~RM_PSM_DEMUX_NORMAL;	\		}							\		if ((RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)) == RM_PSM_Playing) && \		    (context.trickMode))	{			\			RMDBGLOG((ENABLE, "got play after trickmode\n")); \			if (release) {					\				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\			context.trickMode = FALSE;			\		}							\		if ((RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)) == RM_PSM_Stopped) && (actions.cmdProcessed)) { \			RMDBGLOG((ENABLE,"Got stop command\n"));	\			if (release) {					\				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\			context.trickMode = FALSE;			\			context.iframeMode = FALSE;			\			context.highSpeedIFrameMode = FALSE;		\			context.video_decoder_initialized = FALSE;	\			context.initVideo = TRUE;			\			context.byte_counter = 0;			\			goto mainloop_no_seek;				\		}							\		if ((actions.cmd == RM_QUIT) && (!actions.cmdProcessed)) { \			RMDBGLOG((ENABLE, "Got quit command\n"));	\			if (release) {					\				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\			goto cleanup;					\		}							\		if ((actions.cmd == RM_STOP_SEEK_ZERO) && (!actions.cmdProcessed)) { \			RMDBGLOG((ENABLE,"Got stop seek zero command\n")); \			Stop(&context, RM_DEVICES_VIDEO | RM_DEVICES_STC); \			RM_PSM_SetState(context.PSMcontext, &(context.dcc_info), RM_PSM_Stopped); \			if (release) {					\				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\			context.trickMode = FALSE;			\			context.iframeMode = FALSE;			\			context.highSpeedIFrameMode = FALSE;		\			context.video_decoder_initialized = FALSE;	\			context.initVideo = TRUE;			\			goto mainloop;					\		}							\		if ((actions.cmd == RM_SEEK) && (!actions.cmdProcessed)){ \			RMDBGLOG((ENABLE,"Got seek command\n"));	\			if (release) {					\				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\			if (dcc_info.seek_supported)			\				seek(&context, context.dcc_info->seek_time); \			else						\				fprintf(stderr, "Unsuported command\n"); \			context.trickMode = FALSE;			\			context.iframeMode = FALSE;			\			context.highSpeedIFrameMode = FALSE;		\			RM_PSM_SetState(context.PSMcontext, &(context.dcc_info), RM_PSM_Playing); \			goto mainloop_no_seek;				\		}							\		computeSpeed(&context);					\		if (context.monitor)					\			monitor(&context, FALSE);			\} while(0)static RMstatus computeSpeed(struct video_context *pSendContext);static RMuint64 round_int_div(RMuint64 numerator, RMuint32 divisor) {	RMuint64 temp;	temp = numerator / divisor;	if ((numerator % divisor) * 2 > divisor)		temp++;	return temp;}#ifndef WITH_MONOstatic void show_usage(char *progname){	show_playback_options();	show_display_options();	show_video_options();	fprintf(stderr, "--------------------------------\n");	fprintf(stderr, "Minimum cmd line: %s <file name>\n", progname);	fprintf(stderr, "--------------------------------\n");	exit(1);}static void parse_cmdline(int argc, char *argv[]){	int i;	RMstatus err;	if (argc < 2) 		show_usage(argv[0]);		i = 1;	while ((argc > i)) {		if (argv[i][0] != '-') {			if (play_opt->filename == NULL) {				play_opt->filename = argv[i];				i++;			}			else				show_usage(argv[0]);		}		else {			err = parse_playback_cmdline(argc, argv, &i, play_opt);			if (err == RM_ERROR) 				show_usage(argv[0]);			if (err != RM_PENDING)				continue;			err = parse_display_cmdline(argc, argv, &i, disp_opt);			if (err == RM_ERROR) 				show_usage(argv[0]);			if (err != RM_PENDING)				continue;			err = parse_video_cmdline(argc, argv, &i, video_opt);			if (RMFAILED(err))				show_usage(argv[0]);		}	}	if (play_opt->filename == NULL)		show_usage(argv[0]);}#endif //WITH_MONOstatic RMstatus WaitForEOS(struct video_context *pSendContext, struct RM_PSM_Actions *pActions){	RMuint32 eos_bit_field = 0;	if (pSendContext == NULL || pActions == NULL)		return RM_ERROR;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合欧美一区二区三区| 久久精品国产精品青草| 日日嗨av一区二区三区四区| 粉嫩av一区二区三区粉嫩| 日本高清不卡一区| 久久久久久一二三区| 日本亚洲欧美天堂免费| 91浏览器打开| 国产亚洲成年网址在线观看| 午夜在线成人av| 97超碰欧美中文字幕| 久久综合久久综合久久| 日本vs亚洲vs韩国一区三区| 色综合久久88色综合天天| 国产日韩欧美在线一区| 久久精品99国产国产精| 欧美乱熟臀69xxxxxx| 依依成人精品视频| 97久久人人超碰| 国产精品网友自拍| 国产精品一线二线三线| 欧美α欧美αv大片| 日韩精品每日更新| 在线观看视频一区| 亚洲最色的网站| 91香蕉国产在线观看软件| 国产精品久99| 不卡的电视剧免费网站有什么| 精品欧美一区二区三区精品久久| 日精品一区二区三区| 精品污污网站免费看| 午夜视频在线观看一区二区三区| 欧美性受xxxx| 一区二区三区欧美久久| 色视频欧美一区二区三区| 一区二区三区四区不卡视频| 色综合天天综合色综合av| 欧美国产一区视频在线观看| 粉嫩av一区二区三区| 国产精品久久毛片av大全日韩| www.在线成人| 一区二区久久久久| 欧美三级一区二区| 美女爽到高潮91| 久久久久国产精品厨房| 99久久综合精品| 亚洲国产精品久久久久秋霞影院 | 亚洲色图欧洲色图婷婷| 成人av综合一区| 亚洲黄色小说网站| 欧美精品成人一区二区三区四区| 免费xxxx性欧美18vr| 日韩精品一区二区三区蜜臀| 国产aⅴ精品一区二区三区色成熟| 国产精品视频一二| 欧美视频日韩视频| 老色鬼精品视频在线观看播放| 久久综合999| 欧美在线一二三四区| 老司机精品视频线观看86| 国产色综合一区| 色婷婷av一区二区三区大白胸| 日韩av高清在线观看| 国产三级三级三级精品8ⅰ区| 99视频精品全部免费在线| 午夜视频一区二区三区| 国产欧美一区二区三区网站| 一本大道久久精品懂色aⅴ| 麻豆传媒一区二区三区| 亚洲天堂久久久久久久| 在线综合+亚洲+欧美中文字幕| 国产成人午夜精品影院观看视频| 亚洲国产三级在线| 国产欧美日韩三区| 在线播放日韩导航| 99精品欧美一区二区三区综合在线| 日韩国产精品91| 亚洲欧美日韩国产另类专区 | 国产精品久久久久一区二区三区| 在线一区二区三区四区五区| 国产一区二区视频在线播放| 一区二区三区免费在线观看| 久久久一区二区三区捆绑**| 欧洲精品中文字幕| 国产精品一区二区在线观看不卡 | 国产一区欧美二区| 一区二区三区.www| 日本一二三四高清不卡| 欧美肥妇bbw| 欧美日韩三级在线| 99久久99精品久久久久久| 国产在线视视频有精品| 午夜婷婷国产麻豆精品| 亚洲另类春色国产| 日本一区二区三区在线不卡| 日韩欧美专区在线| 欧美喷水一区二区| 91久久人澡人人添人人爽欧美| 国产成人av一区| 韩国成人福利片在线播放| 日本伊人色综合网| 日产欧产美韩系列久久99| 亚洲h动漫在线| 午夜av电影一区| 亚洲成人av免费| 亚洲成人自拍偷拍| 亚洲电影你懂得| 亚洲一二三区视频在线观看| 亚洲精品成人天堂一二三| 亚洲日穴在线视频| 亚洲日本青草视频在线怡红院 | aaa亚洲精品| 国产69精品一区二区亚洲孕妇| 国产一区二三区好的| 久久爱另类一区二区小说| 精品亚洲porn| 国产乱国产乱300精品| 国产精品18久久久久久久久久久久| 久久精品国产亚洲aⅴ| 久久国产日韩欧美精品| 激情国产一区二区| 国产精品1区2区| 白白色 亚洲乱淫| 91麻豆swag| 欧美老肥妇做.爰bbww| 日韩一区二区三区视频在线| 欧美一级专区免费大片| 日韩一级二级三级精品视频| 精品免费视频.| 国产精品伦理一区二区| 亚洲美女精品一区| 日欧美一区二区| 精品一区二区日韩| av激情综合网| 欧美精品一级二级| 久久免费美女视频| 1024精品合集| 日韩不卡一区二区三区| 高清国产午夜精品久久久久久| 色综合天天性综合| 91精品黄色片免费大全| 国产色婷婷亚洲99精品小说| 亚洲女人的天堂| 麻豆国产精品一区二区三区 | 久久国产福利国产秒拍| 国产一区不卡视频| 色欧美88888久久久久久影院| 欧美肥妇毛茸茸| 国产欧美日韩中文久久| 亚洲一区二区不卡免费| 国模娜娜一区二区三区| 99天天综合性| 欧美一区二区三区在线| 成人免费一区二区三区在线观看| 偷拍自拍另类欧美| 不卡av免费在线观看| 91精品国产综合久久精品性色| 中文字幕精品在线不卡| 亚洲v日本v欧美v久久精品| 国产精品1024| 欧美日韩情趣电影| 亚洲欧美自拍偷拍色图| 免费在线看一区| 91成人国产精品| 国产精品伦理一区二区| 免费成人美女在线观看.| 欧美精品久久久久久久久老牛影院| 久久一区二区三区四区| 亚洲狠狠爱一区二区三区| 成人av免费在线播放| 日韩精品一区二区三区中文精品| 亚洲狼人国产精品| 国产一区999| 精品成a人在线观看| 天天综合天天综合色| 91麻豆国产自产在线观看| 久久精品日韩一区二区三区| 日本人妖一区二区| 欧美性xxxxxx少妇| 综合婷婷亚洲小说| 不卡一二三区首页| 国产蜜臀97一区二区三区| 九九视频精品免费| 欧美日韩欧美一区二区| 亚洲在线视频网站| 色94色欧美sute亚洲线路一ni| 亚洲国产高清在线| 国产精品一级片在线观看| 精品少妇一区二区| 乱一区二区av| 欧美xxxx老人做受| 青青草国产精品亚洲专区无| 欧美日韩视频第一区| 亚洲香蕉伊在人在线观| 日本道在线观看一区二区| 亚洲色图丝袜美腿| 91麻豆123| 亚洲成人一区在线| 日韩一区二区三区观看| 久久se这里有精品|