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

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

?? play_mp4.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* * * Copyright (c) Sigma Designs, Inc. 2005. All rights reserved. * *//**	@file play_mp4.c	@brief sample application to access the Mambo chip and test DMA transfers		@author Sebastian Frias Feltrer   	@ingroup dccsamplecode*//*  ******************************************************************************************  This file is part of libsamples library, therefore *NO* static variables should be defined  *******************************************************************************************/#include "sample_os.h"#define ALLOW_OS_CODE 1#include "../dcc/include/dcc.h"#include "../rmmp4api/include/rmmp4api.h"#include "common.h"#include "parsemp4dsi.h"#ifndef WITHOUT_NERO_SPU#ifdef WITH_MONO#include "spuapi.h"#endif#endif // WITHOUT_NERO_SPU#define MAX_SAMPLE_SIZE 2048#define COMMON_TIMEOUT_US    (TIMEOUT_10MS)	  // 10 ms#define DMA_BUFFER_SIZE_LOG2 14#define DMA_BUFFER_COUNT     64#define AUDIO_BASE 90000#define VIDEO_FIFO_SIZE (1024*1024)#define AUDIO_FIFO_SIZE (128*1024)#define VIDEO_XFER_FIFO_COUNT 1024#define AUDIO_XFER_FIFO_COUNT 1024#define VIDEO_PREBUFFER_SIZE (2048) // in KB#define AUDIO_PREBUFFER_SIZE ( 128) // in KB#define KEYFLAGS (SET_KEY_DISPLAY | SET_KEY_PLAYBACK | SET_KEY_AUDIO | SET_KEY_SPI)#define RM_DEVICES_STC 0x1#define RM_DEVICES_VIDEO 0x2#define RM_DEVICES_AUDIO 0x4#define SEND_VIDEO_TRACK 1#define SEND_AUDIO_TRACK 2#define SEND_SPU_TRACK   3#if 0  #define SENDDBG ENABLE#else  #define SENDDBG DISABLE#endif#if 0  #define DBG ENABLE#else  #define DBG DISABLE#endif#if 0  #define SPU_DBG ENABLE#else  #define SPU_DBG DISABLE#endif#if 0  #define INTERLEAVE_DBG ENABLE#else  #define INTERLEAVE_DBG DISABLE#endif#if 0  #define H264_SC_DBG ENABLE#else  #define H264_SC_DBG DISABLE#endif#define DMABUFFER_UNUSED_BLOCK_SIZE 256typedef enum {	MP4_MP3,	MP4_AAC} RMmp4AudioTrackType_t;typedef enum {	MP4_MP4} RMmp4VideoTrackType_t;typedef enum {	RMMP4_AVSend_FSM_GetBuffer = 0,	RMMP4_AVSend_FSM_ReadData,	RMMP4_AVSend_FSM_SendData,	RMMP4_AVSend_FSM_ReleaseBuffer,	RMMP4_AVSend_FSM_StopSending} RMMP4SendFSMStates;typedef enum {	RMMP4_Subtitle_FSM_Get = 0,	RMMP4_Subtitle_FSM_WaitSync,	RMMP4_Subtitle_FSM_Show,	RMMP4_Subtitle_FSM_Clear,	RMMP4_Subtitle_FSM_Stop} RMMP4SubtitleFSMStates;typedef enum {	RMMP4_SPU_FSM_Get = 0,	RMMP4_SPU_FSM_WaitSync,	RMMP4_SPU_FSM_Clear,	RMMP4_SPU_FSM_Stop} RMMP4SPUFSMStates;enum goto_label {	LABEL_ERROR = 1,	LABEL_NONE,	LABEL_CLEANUP,	LABEL_MAINLOOP,	LABEL_MAINLOOP_NOSEEK,	LABEL_START_SENDING_DATA,	LABEL_SIGNAL_EOS_AND_EXIT};#define SPU_FIFO_ENTRIES 256struct spu_fifo_entry_type {	RMuint8 *ptr;	RMuint32 size;	struct emhwlib_info Info;};struct priv_cmdline {	RMuint32 audio_track;	RMuint32 internal_file_open;	// should we open the file internally	RMbool spuEnabled;	RMbool subtitlesEnabled;	RMbool monitorFIFOs;};struct SendMP4DataContext {	struct RUA *pRUA;	struct DCC *pDCC;	struct RUABufferPool *pDMA;	RMbool FirstSystemTimeStamp;	RMbool WaitAtExit;	RMMP4SPUFSMStates spuFSMStatus;	RMfile mp4_file;	ExternalRMmp4Client mp4c;	ExternalRMmp4Track mp4tV, mp4tA, mp4tSPU, mp4tSubT;	RMmp4Sample audiosample, videosample, spusample, subtitlesample;	RMuint8 *subtitleString;	RMbool SendVideoData;	RMbool SendAudioData;	RMbool SendSPUData;	RMbool SendVideoPts;	RMbool SendAudioPts;	RMbool SendSPUPts;	RMuint32 videoDataSent;	RMuint32 audioDataSent;	RMuint32 spuDataSent;	RMbool  isIFrameMode;	RMint32 IFrameDirection;	RMbool  isTrickMode;	RMuint32 video_vop_tir, audio_vop_tir;	// is AudioCTSTimeScale	RMuint32 VideoCTSTimeScale;	RMuint32 AudioCTSTimeScale;	RMuint32 spuCTSTimeScale;	RMuint32 subtCTSTimeScale;	RMuint32 audioSampleRate;	RMuint32 AAC_SampleRateFromDSI;	RMuint32 AAC_ChannelsFromDSI;	RMuint32 AAC_ObjectIDFromDSI;	RMbool isAudioOnly;	RMuint64 lastSTC;	RMuint64 Duration;	RMint64 fileSize;	struct emhwlib_info video_Info;	struct emhwlib_info audio_Info;	struct emhwlib_info spu_Info;	struct emhwlib_info subt_Info;	struct dcc_context *dcc_info;	struct RM_PSM_Context *PSMcontext;	RMbool video_ptsScalingMsg;	RMbool audio_ptsScalingMsg;	RMbool forceTimersToZero;	RMbool isNeroDigitalFile;	RMbool hasChapters;	RMbool playbackAllowed;	RMuint32 videoTracks;	RMuint32 audioTracks;	RMuint32 spuTracks;	RMuint32 subtitleTracks;	RMuint32 currentVideoTrack;	RMuint32 currentAudioTrack;	RMuint32 currentSPUTrack;	RMuint32 currentSubtitleTrack;	RMuint8 *videodsiBuf; 	RMuint32 videodsiSize;	RMbool sendVideoDSI;	RMuint32 videoWidth;	RMuint32 videoHeight;	RMuint8 *spuDSIBuf;	RMuint32 spuDSISize;	RMbool setSPUPalette;	RMuint32 spuWidth;	RMuint32 spuHeight;	RMbool enableSPU;	RMbool displaySPU;#ifdef WITH_MONO	struct OSDdoubleBuffer doubleBuffer;#ifndef WITHOUT_NERO_SPU	RMNeroSPUDecoderHandle SPUDecoder;#endif //WITHOUT_NERO_SPU	RMbool clearSPU;	RMuint8 *ndsp_buffer;#endif	RMint32 queuedSPUsamples;	RMbool enableSubtitles;	RMbool displaySubtitles;	RMbool initTerminal;	// for prebuffering	RMuint32 videoPrebufferSize;	RMuint32 audioPrebufferSize;	RMbool prebufferingDone;	struct RMFileStreamInfo streamInfo;	RMbool isAACaudioPayload;	RMint32 avRatio;	RMuint32 dmaBufferCount;	RMuint32 dmaBufferSizeLog2;	RMuint32 videoBitstreamFIFOSize;	RMuint32 videoFIFOXFERCount;	RMuint32 audioBitstreamFIFOSize[MAX_AUDIO_DECODER_INSTANCES];	RMuint32 audioFIFOXFERCount[MAX_AUDIO_DECODER_INSTANCES];	RMuint64 lastVideoPTS;	RMuint64 lastAudioPTS;	RMuint64 lastSPUPTS;	RMbool   videoEOS;	RMbool   audioEOS;	RMbool   spuEOS;	RMuint8 *startCodeDMABuffer;	RMuint32 startCodeDMABufferOffset;	RMuint8 *videoDMABuffer;	RMuint32 videoDMABufferOffset;	RMbool   videoTransferPending;	RMuint8 *audioDMABuffer;	RMuint32 audioDMABufferOffset;	RMbool   audioTransferPending;	RMuint8 *spuDMABuffer;	RMuint32 spuDMABufferOffset;	RMbool   spuTransferPending;	RMuint8  h264DummyBuffer[4];	RMuint8 *h264PktLenBuf;	RMuint32 h264PktLen;	RMuint32 h264LengthSize;	RMuint32 h264BytesLeft;	RMbool   h264sendStartCode;	RMbool   h264readPacketSize;	struct RMfifo *spu_fifo;	RMuint32 videoTrackSize;	RMuint32 audioTrackSize;	RMuint32 videoMeanSampleSize;	RMuint32 audioMeanSampleSize;	RMbool monitorFIFOs;	RMbool linearInterleaving;	void **dmabuffer_array;	RMuint32 dmabuffer_index;	RMbool isH264;	struct RM_PSM_Actions actions;	enum RM_PSM_State ACTUAL_PlaybackStatus;	enum RM_PSM_State OLD_PlaybackStatus;	RMuint32 Ntimes;	struct playback_cmdline *play_opt;	struct video_cmdline *video_opt;	struct display_cmdline *disp_opt;	struct audio_cmdline *audio_opt;	struct priv_cmdline priv_opt;	RMuint32 audioInstances;		struct timeval last;	RMbool first;	RMuint32 videoSampleSize;	RMuint32 videoFrameCount;  // equivalent to AUs	// the result of local_process_key are put here	enum goto_label processKeyResult;	RMbool processKeyResultValid;};#define GET_DATA_FIFO_INFO(pRUA, ModuleId)				\	{								\		struct DataFIFOInfo DataFIFOInfo;			\		RMuint32 fullness;					\		RUAGetProperty(pRUA, ModuleId, RMGenericPropertyID_DataFIFOInfo, &DataFIFOInfo, sizeof(DataFIFOInfo)); \		fullness = (100*DataFIFOInfo.Readable)/DataFIFOInfo.Size; \		fprintf(stderr, "Data 0x%lx: st=0x%08lx sz=%ld wr=%ld rd=%ld --> f : %lu/100\n", ModuleId, DataFIFOInfo.StartAddress,	\			DataFIFOInfo.Size, DataFIFOInfo.Writable,  DataFIFOInfo.Readable, fullness); \	}								\#define GET_XFER_FIFO_INFO(pRUA, ModuleId)				\	{								\		struct XferFIFOInfo_type XferFIFOInfo;			\		RMuint32 fullness;					\		RUAGetProperty(pRUA, ModuleId, RMGenericPropertyID_XferFIFOInfo, &XferFIFOInfo, sizeof(XferFIFOInfo)); \		fullness = (100*XferFIFOInfo.Readable)/XferFIFOInfo.Size; \		fprintf(stderr, "XFER 0x%lx: st=0x%08lx sz=%ld wr=%ld rd=%ld er=%lx --> f : %lu/100\n", ModuleId, XferFIFOInfo.StartAddress, \			XferFIFOInfo.Size, XferFIFOInfo.Writable,  XferFIFOInfo.Readable, XferFIFOInfo.Erasable, fullness); \	}#define GET_XFER_FIFO_BYTES_QUEUED(pRUA, ModuleId)			\	{								\		RMuint32 bytes_queued;					\		RUAGetProperty(pRUA, ModuleId, RMGenericPropertyID_XferFIFOBytesQueued, &bytes_queued, sizeof(bytes_queued)); \		fprintf(stderr, "XFER 0x%lx: %lu\n", ModuleId, bytes_queued); \	}#define MONITOR_FIFO_INTERVAL_US 250000static void monitorFIFO(struct SendMP4DataContext *context, RMbool alwaysShow){		struct timeval now;	RMuint32 elapsed;	RMuint64 ptime;	struct dcc_context *dcc_info = context->dcc_info;	gettimeofday(&now, NULL);	elapsed = (now.tv_sec - context->last.tv_sec) * 1000000;	elapsed += (now.tv_usec - context->last.tv_usec);	if (elapsed > MONITOR_FIFO_INTERVAL_US || alwaysShow) {		DCCSTCGetTime(dcc_info->pStcSource, &ptime, 90000);		fprintf(stderr, "\n*****************************\n");		fprintf(stderr, "STC = %lld (%lld secs)\n", ptime, (ptime/90000));		/* sample code to get fifo info */		if (dcc_info->pVideoSource) {			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);			GET_XFER_FIFO_BYTES_QUEUED(dcc_info->pRUA, dcc_info->video_decoder);		}		if (dcc_info->pMultipleAudioSource) {			struct DCCAudioSourceHandle audioHandle;			RMuint32 i;			for (i = 0; i < context->audioInstances; i++) {				fprintf(stderr, "Audio[%lu] :\n", i);								DCCMultipleAudioSourceGetSingleDecoderHandleForInstance(dcc_info->pMultipleAudioSource, i, &audioHandle);										GET_DATA_FIFO_INFO(dcc_info->pRUA, audioHandle.moduleID);				GET_XFER_FIFO_INFO(dcc_info->pRUA, audioHandle.moduleID);				GET_XFER_FIFO_BYTES_QUEUED(dcc_info->pRUA, audioHandle.moduleID);			}		}		fprintf(stderr, "*****************************\n");		gettimeofday(&(context->last), NULL);		fflush(stderr);			}	return;}#define PROCESS_KEY(release, getkey)					\do {								        \	local_process_key(&SendContext, getkey, release);		\	if (SendContext.ACTUAL_PlaybackStatus != SendContext.OLD_PlaybackStatus) {		\		RMDBGLOG((ENABLE, "old status %lu new status %lu\n", (RMuint32)SendContext.OLD_PlaybackStatus, (RMuint32)SendContext.ACTUAL_PlaybackStatus)); \		SendContext.OLD_PlaybackStatus = SendContext.ACTUAL_PlaybackStatus;		\	}								\	if (SendContext.processKeyResultValid) {			\		SendContext.processKeyResultValid = FALSE;		\		switch(SendContext.processKeyResult) {			\		case LABEL_ERROR:					\		case LABEL_CLEANUP:					\			goto cleanup;					\		case LABEL_MAINLOOP:					\			goto mainloop;					\		case LABEL_MAINLOOP_NOSEEK:				\

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线综合网| 成人黄色片在线观看| 91精品国产综合久久久蜜臀图片| 亚洲国产成人av好男人在线观看| 欧美日本在线看| 久久综合综合久久综合| 久久夜色精品国产欧美乱极品| 国产一区二区剧情av在线| 国产欧美日韩卡一| 91性感美女视频| 亚洲成人福利片| 欧美草草影院在线视频| 成人高清在线视频| 亚洲制服丝袜av| 日韩亚洲欧美在线| 成人福利电影精品一区二区在线观看 | 91性感美女视频| 亚洲成在人线免费| 久久无码av三级| 不卡的av网站| 日韩电影在线一区二区三区| 久久综合九色综合97婷婷| 高清成人免费视频| 五月综合激情日本mⅴ| 2022国产精品视频| 99精品在线免费| 肉丝袜脚交视频一区二区| 久久久噜噜噜久久中文字幕色伊伊| 成人黄色电影在线| 免费看欧美女人艹b| 国产精品久久久久四虎| 91精品国产高清一区二区三区 | 日韩av在线播放中文字幕| 精品对白一区国产伦| 日本久久一区二区| 精品一区二区三区日韩| 一区二区三区在线观看国产| 精品久久久久久亚洲综合网| 91久久线看在观草草青青| 国产在线精品免费| 日韩影院免费视频| 中文字幕一区av| www日韩大片| 欧美精品aⅴ在线视频| k8久久久一区二区三区 | 91视视频在线直接观看在线看网页在线看| 亚洲va国产天堂va久久en| 国产精品美女久久久久高潮| 日韩一区二区三区在线视频| 99re热视频精品| 精品国产凹凸成av人导航| 亚洲成人动漫av| av一区二区不卡| 亚洲国产精品久久久久秋霞影院 | 亚洲一区在线视频观看| 91麻豆成人久久精品二区三区| 国产精品久久久久久久蜜臀| jizzjizzjizz欧美| 国产日韩av一区| 色综合天天天天做夜夜夜夜做| 久久精品99久久久| 天天色综合成人网| 亚洲第一二三四区| 亚洲精品一二三四区| 国产精品国产三级国产三级人妇 | 欧美一区二区在线免费播放| 色琪琪一区二区三区亚洲区| 成人免费视频免费观看| 国产精选一区二区三区| 激情图区综合网| 久久国产精品免费| 精品一区二区三区的国产在线播放 | 奇米亚洲午夜久久精品| 午夜视频一区二区三区| 一区二区三区成人在线视频| 亚洲欧美韩国综合色| 亚洲日本一区二区| 亚洲综合免费观看高清完整版| 亚洲欧美日韩国产手机在线| 亚洲色图清纯唯美| 亚洲综合图片区| 午夜精品国产更新| 日韩成人午夜电影| 久久精品国产99| 国产精品夜夜嗨| 成人动漫精品一区二区| 成人av电影观看| 欧美性淫爽ww久久久久无| 欧美日韩国产精品自在自线| 91精品国产一区二区| 精品黑人一区二区三区久久| 久久久久久9999| 国产精品每日更新在线播放网址| 亚洲色图制服丝袜| 性做久久久久久久久| 美国精品在线观看| 国产成人精品午夜视频免费 | 欧美综合色免费| 3d动漫精品啪啪| 久久久久九九视频| 综合久久久久久| 同产精品九九九| 久久99热国产| 99精品视频免费在线观看| 欧洲精品一区二区| 精品久久一二三区| 最新日韩在线视频| 日韩精品亚洲一区二区三区免费| 国产一区二区精品久久| 一本大道av一区二区在线播放| 337p亚洲精品色噜噜狠狠| 欧美韩国日本一区| 亚洲福利视频一区二区| 国产一区二区91| 在线观看免费亚洲| 精品国产乱码久久久久久1区2区 | 国产欧美日韩亚州综合 | 中文字幕在线一区免费| 午夜久久久久久| 成人精品视频一区二区三区尤物| 色婷婷国产精品| 国产欧美日韩久久| 蜜乳av一区二区| 色哟哟国产精品免费观看| 精品99一区二区| 亚洲在线一区二区三区| 国产成人日日夜夜| 欧美一卡在线观看| 亚洲黄色性网站| 国产精品亚洲视频| 欧美电影在哪看比较好| 最新国产精品久久精品| 久久99久久99| 欧美三级电影在线看| 国产精品沙发午睡系列990531| 日韩精品免费专区| 在线国产亚洲欧美| 国产精品久久久久久久久免费相片 | 欧美成人video| 亚洲高清三级视频| 91丨porny丨蝌蚪视频| 国产视频一区在线播放| 日韩电影在线免费看| 欧美性色黄大片| 最新成人av在线| 成人短视频下载| 欧美激情一区二区三区不卡| 蜜桃在线一区二区三区| 欧美日本不卡视频| 亚洲美女精品一区| 99久久99久久免费精品蜜臀| 久久久三级国产网站| 极品少妇一区二区| 69堂成人精品免费视频| 夜夜精品浪潮av一区二区三区| 成人高清免费观看| 国产精品久久久久影院色老大| 狠狠色狠狠色综合| 精品动漫一区二区三区在线观看| 日韩高清不卡在线| 日韩一级精品视频在线观看| 日韩高清欧美激情| 日韩午夜在线播放| 麻豆免费精品视频| 日韩欧美国产麻豆| 韩国女主播一区二区三区| 日韩欧美一区中文| 精品在线观看视频| 国产亚洲欧美中文| 不卡影院免费观看| 亚洲欧美乱综合| 欧美亚洲动漫另类| 日日夜夜精品视频免费| 日韩精品在线一区| 激情综合网av| 中文字幕av免费专区久久| 高清不卡一区二区| 亚洲黄色免费电影| 欧美丝袜自拍制服另类| 日精品一区二区| 日韩一区二区高清| 国产丶欧美丶日本不卡视频| 国产精品欧美久久久久无广告 | 国产精品久久久久一区二区三区 | 亚洲婷婷综合色高清在线| 91在线免费看| 午夜成人在线视频| 日韩美女主播在线视频一区二区三区| 久久不见久久见免费视频1| 国产视频一区不卡| 94-欧美-setu| 日韩国产精品久久久久久亚洲| 精品国产麻豆免费人成网站| 国产盗摄女厕一区二区三区| 国产精品免费视频观看| 91黄色免费网站| 久久国产剧场电影| 亚洲欧洲综合另类在线| 日韩女同互慰一区二区| 白白色亚洲国产精品|