亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲欧美在线观看| 午夜电影久久久| 裸体健美xxxx欧美裸体表演| 99精品欧美一区二区蜜桃免费 | 九九九精品视频| 91麻豆精品国产无毒不卡在线观看 | 精东粉嫩av免费一区二区三区| 亚洲一区二区三区三| 国产制服丝袜一区| 精品国产污污免费网站入口| 日韩成人精品在线观看| 欧美亚洲一区二区三区四区| 亚洲一二三四在线| 欧洲日韩一区二区三区| 亚洲电影你懂得| 91精品视频网| 久久精品国产秦先生| 久久你懂得1024| 国产一区二区视频在线播放| 久久精品一区二区三区不卡牛牛| 国产成人午夜电影网| 国产精品欧美精品| 色综合久久88色综合天天| 一区二区三区在线视频免费| 欧美最新大片在线看| 首页国产欧美久久| 欧美精品一区二区三| 久久电影网站中文字幕| 精品日韩一区二区三区| 欧美大白屁股肥臀xxxxxx| 成人激情免费视频| 亚洲日韩欧美一区二区在线| 欧美色图片你懂的| 免费人成精品欧美精品 | 中文字幕一区二区三区乱码在线 | 成人a级免费电影| 久久久不卡影院| 一本一道综合狠狠老| 肉丝袜脚交视频一区二区| 欧美伦理影视网| 国产精品一区二区你懂的| 亚洲欧美激情小说另类| 日韩一区二区三区电影在线观看| 免费日本视频一区| 国产精品卡一卡二卡三| 欧美群妇大交群中文字幕| 国产一区二区h| 久久电影网站中文字幕| 91在线精品一区二区三区| 91精品在线麻豆| 国产成a人亚洲精品| 亚洲视频一区二区免费在线观看| 欧美三级电影精品| 国产精品一区二区久激情瑜伽| 日韩美女精品在线| 欧美α欧美αv大片| 日本久久电影网| 国产精品一二三| 亚洲精品乱码久久久久久| 日韩欧美资源站| 欧美亚洲综合在线| 精品亚洲国内自在自线福利| 一二三区精品视频| 欧美国产1区2区| 日韩你懂的在线播放| 欧美最猛黑人xxxxx猛交| 久久精品国内一区二区三区| 亚洲国产高清在线观看视频| 日韩一区二区三区免费观看| 91视频91自| 色丁香久综合在线久综合在线观看| 日韩欧美国产高清| 国产精品自在在线| 日韩和的一区二区| 中文字幕一区二区三区精华液 | 国产亚洲精品资源在线26u| 日韩美女在线视频| 精品国产乱码久久久久久老虎 | 中文字幕一区二区三| 国产精品久久久久久久午夜片| 中文av一区特黄| 亚洲天堂成人网| 一区二区三区在线免费播放| 亚洲一级不卡视频| 青青青伊人色综合久久| 麻豆视频观看网址久久| 韩国女主播成人在线观看| 国产一区二区三区香蕉| 岛国精品一区二区| 97se狠狠狠综合亚洲狠狠| 日本一区二区高清| 亚洲美女屁股眼交| 99re这里都是精品| 精品制服美女久久| 国产精品自在欧美一区| jlzzjlzz欧美大全| 欧美三级韩国三级日本一级| 日韩一区二区三区电影在线观看| 久久众筹精品私拍模特| 国产精品久久久久婷婷二区次| 亚洲欧美二区三区| 偷窥国产亚洲免费视频 | 久久成人18免费观看| 高清国产一区二区| 欧美午夜精品免费| 亚洲精品在线网站| 亚洲免费观看高清完整版在线观看 | 国产精品一区二区果冻传媒| 91在线码无精品| 日韩视频在线你懂得| 中文字幕欧美三区| 日韩精品乱码免费| 亚洲激情图片小说视频| 三级不卡在线观看| 色综合久久中文综合久久97| 国产在线一区观看| 色94色欧美sute亚洲线路二 | 日韩欧美色综合网站| 一二三四区精品视频| 精品一区二区三区在线播放 | 91麻豆国产精品久久| 欧美一级日韩免费不卡| 国产精品美女久久久久久久久| 午夜在线电影亚洲一区| 成人美女在线视频| 日韩一区二区在线观看视频播放| 国产精品美女久久久久久久久久久| 亚洲123区在线观看| a亚洲天堂av| 精品日韩99亚洲| 亚洲午夜免费电影| 成人av片在线观看| www国产成人| 成人深夜福利app| 日韩一区二区在线观看视频播放| 免费看黄色91| 色综合中文综合网| 欧美日韩在线三区| 国产欧美精品一区| 人人爽香蕉精品| 欧美日韩免费电影| 亚洲人亚洲人成电影网站色| 国产主播一区二区三区| 欧美一卡二卡在线观看| 亚洲午夜久久久久久久久电影网 | 午夜精品福利一区二区三区av | 日本久久电影网| 国产精品福利一区二区| 狠狠色综合日日| 欧美成人一区二区三区| 亚洲bt欧美bt精品777| 国产高清精品久久久久| 亚洲欧美视频一区| 欧美亚洲综合另类| 日韩精品国产精品| 欧美午夜不卡视频| 亚洲黄色免费网站| 一本到三区不卡视频| 亚洲日本电影在线| 色婷婷精品久久二区二区蜜臂av | 国产精品电影院| 国产精品一级片| 久久久99精品久久| 国产乱人伦精品一区二区在线观看 | 亚洲欧洲精品天堂一级| 国产不卡免费视频| 亚洲国产经典视频| av午夜一区麻豆| 亚洲美女偷拍久久| 欧美日韩国产片| 无吗不卡中文字幕| 日韩欧美国产系列| 国产成人午夜视频| 成人欧美一区二区三区白人| 欧美亚洲动漫另类| 91麻豆国产福利精品| 欧美一级欧美一级在线播放| 最近中文字幕一区二区三区| 色综合中文字幕| 亚洲一区在线播放| 欧美一区2区视频在线观看| 国产中文字幕一区| 国产精品久久一级| 色美美综合视频| 日韩电影在线免费看| 精品国产乱码久久久久久久| 国产大陆精品国产| 一区二区三国产精华液| 在线成人小视频| 国产乱码精品一区二区三区av| 国产精品色眯眯| 欧美三级电影在线看| 国产综合色在线视频区| 国产精品卡一卡二卡三| 欧美日韩国产综合一区二区| 久久 天天综合| 亚洲精品日日夜夜| 欧美mv日韩mv亚洲| 99久久精品国产一区| 日韩成人免费看|