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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? play_vdemux.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/* * * Copyright (c) Sigma Designs, Inc. 2002. All rights reserved. * *//**	@file dcc_demo.c	@brief sample application to access the Mambo chip and test DMA transfers		@author Julien Soulier	@ingroup dccsamplecode*/// utilizing mono so the main function can easily be attached as a thread function// assuming software demux support only one demux task#include <pthread.h>#include "sample_os.h"#define ENABLE_SPU_OP 1#define ALLOW_OS_CODE 1#include "../dcc/include/dcc.h"#include "../dcc/src/dcc_common.h"#include "common.h"#include "psfdemux_common.h"#include "play_psfdemux_helper.h"#include "main_apps.h"#include "../rmvdemux/include/rmvdemuxapi.h"#include "play_vdemux.h"#define PTS_DISCONTINUITY_DETECTION	/* defined for files with pts discontinuities */#define GETBUFFER_TIMEOUT_US (TIMEOUT_10MS)#define SENDDATA_TIMEOUT_US  (TIMEOUT_10MS)#define DMA_BUFFER_SIZE_LOG2 15#define DMA_BUFFER_COUNT     32#define REPACK_SIZE (4096)#define VIDEO_FIFO_SIZE (1792*1024)#define AUDIO_FIFO_SIZE (128*1024)#define SPU_FIFO_SIZE   (256*1024)#define XFER_FIFO_COUNT (32)#define VIDEO_PTS_FIFO_COUNT (512) /* ~8 sec fifo for 60 frames/sec */#define VIDEO_INBAND_FIFO_COUNT (16)#define RM_DEVICES_STC 0x1#define RM_DEVICES_VIDEO 0x2#define RM_DEVICES_AUDIO 0x4#define KEYFLAGS (SET_KEY_DISPLAY | SET_KEY_PLAYBACK | SET_KEY_AUDIO | SET_KEY_DEBUG)#define PTS_DISCONTINUITY_RANGE	0x20000	// ~1.4sec#if 0  #define SENDDBG ENABLE#else  #define SENDDBG DISABLE#endif#if 0#define KEYDBG ENABLE#else#define KEYDBG DISABLE#endif#define WAIT_KEY()						\{								\	RMascii key;						\	fprintf(stderr, "press key to continue\n");	        \	while ( !(RMGetKeyNoWait(&key)) );			\}							#define GET_XFER_FIFO_INFO(pRUA, ModuleId)										\{															\	struct XferFIFOInfo_type XferFIFOInfo;										\	fprintf(stderr, "( %lx: 0x%08lx %ld %ld %ld %ld ) ", ModuleId, XferFIFOInfo.StartAddress,          		\		    XferFIFOInfo.Size, XferFIFOInfo.Writable,  XferFIFOInfo.Readable, XferFIFOInfo.Erasable);		\	RUAGetProperty(pRUA, ModuleId, RMGenericPropertyID_XferFIFOInfo, &XferFIFOInfo, sizeof(XferFIFOInfo));		\}														// copy from dcc_multiple_audio.cstruct DCCMultipleAudioSource {	struct RUA *pRUA;	struct DCC *pDCC;	RMuint32 instances;  //number of decoders opened	struct DCCAudioSourceHandle AudioSourceHandles[MAX_AUDIO_DECODER_INSTANCES];	RMuint32 nextInstance;};// hardcode the thread filename for now//char alt_filename[] = "/media/transport/mpeg2/svt1.ts";RMascii alt_filename[2048] = { 0, };// software demux thread idpthread_t software_demux_tid;RMbool software_demux_in_action;RMuint64 start_time_stamp;RMuint64 start_file_position;// mirror the task variables from static struct context_per_task  *Tasks;static RMuint32 task_count;static RMuint32 output_count_per_task;// software demux keeps its own copy of dcc_info// while command line options structures are shared with the hardware demux modulestatic struct dcc_context dcc_info = {0,};extern RMbool manutest; // should be removedstatic RMbool enable_spu = FALSE;static RMuint32 NTimes = 0;static RMuint32 file_offset = 0;static RMuint32 trickBuffersToSend = 0;static RMuint32 trickSizeToSend = 0;static RMuint32 trickBuffersSent = 0;static struct playback_cmdline *play_opt;static struct video_cmdline *video_opt;static struct audio_cmdline *audio_opt;static struct demux_cmdline *demux_opt;static RMuint32 manutest_res = 0;static struct display_cmdline *disp_opt;struct demux_context {	struct RUA *pRUA;	struct RUABufferPool *pDMA;	RMbool FirstSystemTimeStamp;	RMbool ResumeFromTrickMode;	RMuint32 audio_byte_counter;	RMuint32 video_byte_counter;	RMbool repack_sample;	RMuint8 *audio_repack_buf;	RMuint8 *video_repack_buf;	RMuint8 *spu_repack_buf;	RMuint32 audio_repack_offset;	RMuint32 video_repack_offset;	RMuint32 spu_repack_offset;	RMuint32 audio_repack_size;	RMuint32 video_repack_size;	RMuint32 spu_repack_size;	RMuint64 audio_repack_pts;	RMuint64 video_repack_pts;	RMuint64 spu_repack_pts;	RMbool audio_repack_pts_valid;	RMbool video_repack_pts_valid;	RMbool spu_repack_pts_valid;	RMbool enable_spu;	struct dcc_context *dcc_info;	struct RM_PSM_Context   *PSMcontext;	RMbool isTrickMode;	RMbool isIFrameMode;	RMbool initVideo;	RMbool initAudio;	RMbool waitForValidAudioPTS;	RMbool waitForValidVideoPTS;	RMuint32 cmd;	RMuint32 audio_first_access_unit_pointer;	// a value of 0 is invalid - see DVD VI.5.2.4	RMbool audio_first_access_unit_pointer_valid;		RMuint32 start_90khz;	RMint64 file_size;	// test user data receive	struct ReceiveObject_type *pReceive;	struct RUABufferPool *pDmaUserData;	struct RUAEvent EventUserData;	FILE *f_record;	RMuint32 f_record_size;	RMbool ignoreCallback;	RMbool fakePrevPts;	RMuint32 prebufferedBytes;	RMint64 realFirstPTS;};static RMstatus SyncTimerWithDecoderPTS(struct demux_context *pSendContext);#define REPACK_AUDIO  1#define REPACK_VIDEO  2#define REPACK_SPU    4#define REPACK_ALL    7static void release_repacked_buffers(void *context, RMuint32 flag){	struct demux_context *pSendContext = (struct demux_context *) context;		if ((flag & REPACK_VIDEO) & (pSendContext->video_repack_buf != NULL)) {		RUAReleaseBuffer(pSendContext->pDMA, pSendContext->video_repack_buf);		pSendContext->video_repack_buf = (RMuint8 *) NULL;		pSendContext->video_repack_offset = 0;		pSendContext->video_repack_size = 0;		pSendContext->video_repack_pts = 0;		pSendContext->video_repack_pts_valid = FALSE;	}	if ((flag & REPACK_AUDIO) && (pSendContext->audio_repack_buf != NULL)) {		RUAReleaseBuffer(pSendContext->pDMA, pSendContext->audio_repack_buf);		pSendContext->audio_repack_buf = (RMuint8 *) NULL;		pSendContext->audio_repack_offset = 0;		pSendContext->audio_repack_size = 0;		pSendContext->audio_repack_pts = 0;		pSendContext->audio_repack_pts_valid = FALSE;	}	if ((flag & REPACK_SPU) && (pSendContext->spu_repack_buf != NULL)) {		RUAReleaseBuffer(pSendContext->pDMA, pSendContext->spu_repack_buf);			pSendContext->spu_repack_buf = (RMuint8 *) NULL;		pSendContext->spu_repack_offset = 0;		pSendContext->spu_repack_size = 0;		pSendContext->spu_repack_pts = 0;		pSendContext->spu_repack_pts_valid = FALSE;	}}static struct RM_PSM_Actions actions;#define PROCESS_KEY(release, getkey)					\do {								        \	RMDBGLOG((KEYDBG, "processkey(%lu, %lu)\n", release, getkey));		\	if (getkey) {							\		PlaybackStatus = RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)); \		if ((PlaybackStatus == RM_PSM_Stopped) || (PlaybackStatus == 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(&PSMContext, &(context.dcc_info), &actions); \		if (RMFAILED(err)) {					\			fprintf(stderr, "Error processing key %d\n", err); \			goto cleanup;					\		}							\	}								\	if (actions.toDoActions & RM_PSM_FLUSH_VIDEO) {			\		RMDBGLOG((ENABLE, "flushVIDEO\n"));			\		Stop(&context, RM_DEVICES_VIDEO, DCCStopMode_LastFrame); \		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.performedActions & RM_PSM_VIDEO_STOPPED) {		\		RMDBGLOG((ENABLE, "video stopped\n"));			\		context.initVideo = TRUE;				\		actions.performedActions &= ~RM_PSM_VIDEO_STOPPED;	\	}								\	if (actions.performedActions & RM_PSM_AUDIO_STOPPED) {		\		RMDBGLOG((ENABLE, "audio stopped\n"));			\		if (release) {						\			if (context.repack_sample) {			\				RMDBGLOG((ENABLE, "release audio buffers\n")); \				release_repacked_buffers(&context, REPACK_AUDIO); \			}						\			else  {						\				RMDBGLOG((ENABLE, "release a buffer\n")); \				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\		}							\		context.initAudio = TRUE;				\		context.waitForValidAudioPTS = TRUE;			\		actions.performedActions &= ~RM_PSM_AUDIO_STOPPED;	\	}								\	if ((actions.cmd == RM_QUIT) && (!actions.cmdProcessed)) {	\		RMDBGLOG((ENABLE, "quit\n"));				\		actions.cmdProcessed = TRUE;				\		if (manutest == TRUE)                                   \		        manutest_res = RM_QUIT;                         \		if (release) {						\			if (context.repack_sample) {			\				RMDBGLOG((ENABLE, "release audio buffers\n")); \				release_repacked_buffers(&context, REPACK_ALL); \			}						\			else  {						\				RMDBGLOG((ENABLE, "release a buffer\n")); \				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\		}							\		goto cleanup;						\	}								\	if ((manutest == TRUE) && (actions.cmd == RM_MANU_QUIT_OK) && (!actions.cmdProcessed)) { \		if (manutest == TRUE)                                   \		        manutest_res = RM_MANU_QUIT_OK;                 \		if (release) {						\			if (context.repack_sample) {			\				RMDBGLOG((ENABLE, "release audio buffers\n")); \				release_repacked_buffers(&context, REPACK_ALL); \			}						\			else  {						\				RMDBGLOG((ENABLE, "release a buffer\n")); \				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\		}							\		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.isTrickMode)) {		\		RMDBGLOG((ENABLE, ">> trick mode all frames\n"));	\		context.isTrickMode = TRUE;				\	}								\	if ((RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)) == RM_PSM_Playing) && \	    (context.isTrickMode) &&					\	    (actions.cmdProcessed)) {					\		RMDBGLOG((ENABLE, ">> resume from trickmode\n"));	\		context.isTrickMode = FALSE;				\	}								\	if (actions.toDoActions & RM_PSM_DEMUX_NORMAL) {		\		RMDBGLOG((ENABLE, "demuxNormal\n"));			\		context.isTrickMode = FALSE;				\		Play(&context, RM_DEVICES_VIDEO, DCCVideoPlayFwd);	\		actions.toDoActions &= ~RM_PSM_DEMUX_NORMAL;		\	}								\	if (actions.toDoActions & RM_PSM_DEMUX_IFRAME) {		\		RMDBGLOG((ENABLE, "demuxIFrame\n"));			\		Play(&context, RM_DEVICES_VIDEO | RM_DEVICES_STC, DCCVideoPlayIFrame);	\		context.isIFrameMode = TRUE;				\		if (context.ignoreCallback)				\			context.ignoreCallback = FALSE;			\		actions.toDoActions &= ~RM_PSM_DEMUX_IFRAME;		\	}								\	if (actions.toDoActions & RM_PSM_RESYNC_TIMER) {		\		RMDBGLOG((ENABLE, "resyncTimer\n"));			\		SyncTimerWithDecoderPTS(&context);			\		actions.toDoActions &= ~RM_PSM_RESYNC_TIMER;		\	}								\	if ((RM_PSM_GetState(context.PSMcontext, &(context.dcc_info)) == RM_PSM_Stopped) && (actions.cmdProcessed)) { \		RMDBGLOG((ENABLE,"Got stop command\n"));		\		if (release) {						\			if (context.repack_sample) {			\				RMDBGLOG((ENABLE, "release audio buffers\n")); \				release_repacked_buffers(&context, REPACK_ALL); \			}						\			else  {						\				RMDBGLOG((ENABLE, "release a buffer\n")); \				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\		}							\		context.isIFrameMode = FALSE;				\		context.FirstSystemTimeStamp = TRUE;			\		goto mainloop_no_seek;					\	}								\	if ((actions.cmd == RM_STOP_SEEK_ZERO) && (!actions.cmdProcessed)) {	\		RMDBGLOG((ENABLE,"Got stop seek zero command\n"));	\		Stop(&context, RM_DEVICES_VIDEO | RM_DEVICES_AUDIO | RM_DEVICES_STC, DCCStopMode_BlackFrame); \		RM_PSM_SetState(context.PSMcontext, &(context.dcc_info), RM_PSM_Stopped); \		context.isIFrameMode = FALSE;				\		context.FirstSystemTimeStamp = TRUE;				\		actions.cmdProcessed = TRUE;				\		if (release) {						\			if (context.repack_sample) {			\				RMDBGLOG((ENABLE, "release audio buffers\n")); \				release_repacked_buffers(&context, REPACK_ALL); \			}						\			else  {						\				RMDBGLOG((ENABLE, "release a buffer\n")); \				RUAReleaseBuffer(pDMA, buf);		\				buf = NULL;				\			}						\		}							\		goto mainloop;						\	}								\	if ((actions.cmd == RM_SEEK) && (!actions.cmdProcessed)) {	\		RMDBGLOG((ENABLE, "got seek command\n"));		\

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美中文字幕精品| 久久精品亚洲精品国产欧美kt∨ | 亚洲欧洲韩国日本视频| 一区二区在线观看av| 精品一区二区三区在线播放 | 亚洲美女免费在线| 国产乱码精品一品二品| 欧美色综合网站| 国产精品传媒入口麻豆| 久久电影网电视剧免费观看| 欧美日韩在线播放| 亚洲精品日日夜夜| 成人97人人超碰人人99| 久久先锋资源网| 日韩电影在线观看电影| 91国产免费看| 亚洲视频在线一区二区| 成人h版在线观看| 国产亚洲一区字幕| 国产一区二区看久久| 日韩欧美www| 蜜臀av在线播放一区二区三区| 日本精品裸体写真集在线观看| 中文字幕一区免费在线观看 | 色噜噜狠狠一区二区三区果冻| 国产欧美日韩精品一区| 狠狠狠色丁香婷婷综合激情| 欧美日韩一区二区三区在线看| 亚洲图片另类小说| 91网站最新地址| 一区二区在线观看不卡| 欧亚洲嫩模精品一区三区| 亚洲黄色在线视频| 欧美视频你懂的| 亚洲电影一区二区| 欧美年轻男男videosbes| 亚洲一区二区三区不卡国产欧美| 在线免费观看日本一区| 亚洲一区二区欧美日韩| 欧美精品亚洲二区| 久久99国产精品免费| 国产亚洲自拍一区| 91在线观看一区二区| 亚洲图片欧美色图| 欧美一区二区免费| 国产精品18久久久久久vr | 欧美一区二区三区免费| 麻豆国产精品一区二区三区 | 国产精品久久久久久久午夜片| 韩国成人精品a∨在线观看| 精品国产免费一区二区三区香蕉| 久久国产精品99久久久久久老狼| 欧美一级日韩不卡播放免费| 美女视频黄久久| 国产女人aaa级久久久级| av成人老司机| 日本午夜一本久久久综合| 欧美精品一区二区精品网| av影院午夜一区| 亚洲在线观看免费视频| 日韩精品中午字幕| 99久久精品国产导航| 亚洲成av人片在www色猫咪| 精品国产精品一区二区夜夜嗨| 国产传媒欧美日韩成人| 亚洲制服丝袜在线| 久久男人中文字幕资源站| 91亚洲精品久久久蜜桃网站| 青青草精品视频| 一区在线观看免费| 精品国产不卡一区二区三区| 99re66热这里只有精品3直播 | 国产精品免费av| 欧美自拍丝袜亚洲| 国产精品一区二区在线观看不卡| 17c精品麻豆一区二区免费| 日韩一级二级三级| 色综合天天综合| 久久精品国产精品亚洲精品| 亚洲日本成人在线观看| 精品国产乱码久久久久久图片| 99精品久久99久久久久| 精品一区二区三区久久久| 一区二区三区在线视频观看58| 日韩免费观看高清完整版| 色久优优欧美色久优优| 国产98色在线|日韩| 日韩avvvv在线播放| 一区二区三区中文免费| 欧美极品美女视频| 日韩精品中文字幕在线不卡尤物| 91国产精品成人| 99国产精品国产精品毛片| 国产盗摄视频一区二区三区| 久久99国产精品尤物| 亚洲成人av在线电影| 亚洲人成网站在线| 国产精品国产自产拍在线| 久久精品日韩一区二区三区| 日韩视频中午一区| 91精品国产综合久久久久久漫画 | 亚洲一区自拍偷拍| 自拍偷拍亚洲综合| 亚洲国产成人一区二区三区| 久久综合久色欧美综合狠狠| 日韩一区国产二区欧美三区| 欧美日本一区二区三区四区| 欧美主播一区二区三区美女| 在线看一区二区| 欧美亚洲国产怡红院影院| 色哟哟国产精品| 91黄色免费观看| 日本黄色一区二区| 欧美性大战久久久久久久| 欧美性极品少妇| 欧美军同video69gay| 6080国产精品一区二区| 欧美精品一二三| 欧美一级二级在线观看| 日韩免费高清av| 久久精品视频免费| 国产精品拍天天在线| 亚洲免费伊人电影| 亚洲第一电影网| 爽好多水快深点欧美视频| 美女视频网站久久| 国产激情一区二区三区桃花岛亚洲| 国产99精品国产| 91久久精品一区二区| 欧美日韩日日摸| 日韩一区二区视频在线观看| 久久蜜桃av一区二区天堂| 欧美激情资源网| 一区二区三区在线观看网站| 亚洲成a人片在线观看中文| 久久99国产精品麻豆| 从欧美一区二区三区| 日本精品一区二区三区高清| 制服丝袜一区二区三区| 国产日韩成人精品| 亚洲一区二区在线观看视频| 青青国产91久久久久久| 国产69精品久久99不卡| 色哟哟精品一区| 欧美一个色资源| 1024成人网| 麻豆精品视频在线观看免费| 99久久伊人精品| 91精品国产高清一区二区三区蜜臀| www成人在线观看| 亚洲精品欧美在线| 韩国一区二区三区| 在线观看日韩电影| 久久精品一二三| 性做久久久久久免费观看欧美| 国内精品视频666| 欧美性猛片xxxx免费看久爱| 久久久综合精品| 亚洲高清一区二区三区| 国产91丝袜在线观看| 欧美乱熟臀69xxxxxx| 中文字幕五月欧美| 久久66热偷产精品| 欧美三片在线视频观看| 久久久久久久久久看片| 五月综合激情婷婷六月色窝| 粉嫩蜜臀av国产精品网站| 69p69国产精品| 亚洲一线二线三线视频| 成人91在线观看| 欧美精品一区在线观看| 亚洲午夜久久久久久久久电影网 | 91成人免费网站| 国产欧美日韩三区| 麻豆成人久久精品二区三区小说| 91激情在线视频| 亚洲色图.com| 成人黄色在线看| 亚洲国产精品高清| 国产曰批免费观看久久久| 69久久夜色精品国产69蝌蚪网| 一区二区理论电影在线观看| 粉嫩av一区二区三区粉嫩| 精品精品国产高清一毛片一天堂| 亚洲狠狠爱一区二区三区| 91成人看片片| 日韩毛片视频在线看| 99九九99九九九视频精品| 国产亚洲欧美一级| 91精品国产色综合久久不卡电影 | 亚洲sss视频在线视频| 99re热视频精品| 国产精品全国免费观看高清 | 卡一卡二国产精品| 日韩午夜在线观看| 图片区日韩欧美亚洲| 欧美日韩中文字幕一区| 亚洲综合一区在线| 欧美三级日韩三级国产三级| 亚洲福利视频一区|