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

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

?? em85xx.cpp

?? EM8511s中使用的avi播放器
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
#include "em85xx.h"#include "realmagichwl_userland_api.h"#if 0static void debug_break (void){}#define ASSERT(exp)					((void)((exp)?1:(printf ("ASSERT failed: line %d, file %s\n", __LINE__,__FILE__), debug_break(), 0)))#define DEBUGMSG(cond,printf_exp)	((void)((cond)?(printf printf_exp),1:0))#else#define ASSERT(exp)#define DEBUGMSG(cond,printf_exp)#endif#define MAX_FEEDPACKETS	8192static feedpacket FeedPacketsArray[MAX_FEEDPACKETS];extern BM_FONT font_myfont;		// include "myfont.c" somewhere in your projectstatic RMuint8 pixel_value = 1;static void SetPixel (RMuint32 x, RMuint32 y, RMuint32 colour, RMuint8 *pOsd, RMuint32 w, RMuint32 h){		if (pixel_value == 3)		pOsd[(y * w) + x] = 1;	else		pOsd[(y * w) + x] = pixel_value;}static void ClearPixel (RMuint32 x, RMuint32 y, RMuint8 *pOsd, RMuint32 w, RMuint32 h){	if (pixel_value == 3)		pOsd[(y * w) + x] = 3;	else		pOsd[(y * w) + x] = 0;}static void DrawCharacter (PBM_FONT pFont, RMint8 ch, RMuint32 colour, RMuint32 xOff, RMuint32 yOff, RMuint8 *pOsd, RMuint32 w, RMuint32 h){	RMuint16 *bits;	bits = pFont->bits + pFont->offset[ch - pFont->firstchar];	RMuint32 width, height, y, x;	height = pFont->height;	width = (pFont->width) ?		pFont->width[ch - pFont->firstchar] :		pFont->maxwidth;	for (y = 0; y < height; y++)	{		RMuint16 row = bits[y], mask;		for (mask = 0x8000, x = 0; x < width; (mask >>= 1), x++)		{			if (row & mask)				SetPixel (x + xOff, y + yOff, colour, pOsd, w, h);			else				ClearPixel (x + xOff, y + yOff, pOsd, w, h);		}	}}static RMuint32 mystrlen (PBM_FONT pFont, RMint8 *text){	RMuint32 length = 0;	if (text)	{		while ((*text != 0) && (*text != ' '))		{			length += (pFont->width) ?				pFont->width[*text - pFont->firstchar] :				pFont->maxwidth;			text++;		}	}	return length;}static void DrawText (PBM_FONT pFont, RMint8 *text, sdPOINT *pLoc, RMuint32 color, RMuint8 *pOsd, RMuint32 w, RMuint32 h){	RMuint32 xOffset = pLoc->x, width, wordlen, spacelen;	RMint8 *str = text;	spacelen = (pFont->width) ?		pFont->width[' ' - pFont->firstchar] :		pFont->maxwidth;	RMint32 k = 1;	while (*str != 0)	{		if (*str == ' ')		{			wordlen = mystrlen (pFont, str+1) + spacelen;			if (wordlen <= (pLoc->x2 - pLoc->x))			{				if ((xOffset + wordlen) > pLoc->x2)				{					str++;					xOffset = pLoc->x;					pLoc->y += pFont->height;					if ((pLoc->y + pFont->height) > pLoc->y2)						break;				}			}		}		if (*str == 0xa)		{			xOffset = pLoc->x;			pLoc->y += pFont->height;			k++;			str++;			continue;		}		if ((*str < pFont->firstchar) ||		   (*str >= (pFont->firstchar + pFont->size)))			*str = 0x3f; // '?'		DrawCharacter (pFont, *str, color, xOffset, pLoc->y, pOsd, w, h);		xOffset += (pFont->width) ?		           pFont->width[*str - pFont->firstchar] :		           pFont->maxwidth;		str++;		if (xOffset > pLoc->x2)		{			xOffset = pLoc->x;			pLoc->y += pFont->height;			if ((pLoc->y + pFont->height) > pLoc->y2)				break;		}	}}//////////////////////// rgb 2 yuv:// Y  =  0.257r + 0.504g + 0.098b + 16// Cb = -0.148r - 0.291g + 0.439b + 128// Cr =  0.439r + 0.368g + 0.071b + 128static RMuint8 rgb2y (RMuint8 r, RMuint8 g, RMuint8 b){	RMint32 f = 257*(RMint32)r + 504*(RMint32)g + 98*(RMint32)b + 16000;	if (f > 255000)		f = 255000;	f = f / 1000;	return (RMuint8)f;}static RMuint8 rgb2u (RMuint8 r, RMuint8 g, RMuint8 b){	RMint32 f = -148*(RMint32)r - 291*(RMint32)g + 439*(RMint32)b + 128000;	if (f > 255000)		f = 255000;	if (f < 0)		f = 0;	f = f / 1000;	return (RMuint8)f;}static RMuint8 rgb2v (RMuint8 r, RMuint8 g, RMuint8 b){	RMint32 f = 439*(RMint32)r - 368*(RMint32)g - 71*(RMint32)b + 128000;	if (f > 255000)		f = 255000;	if (f < 0)		f = 0;	f = f / 1000;	return (RMuint8)f;}MpegDecoder::MpegDecoder (){}MpegDecoder::~MpegDecoder (){}MPEG_DECODER_ERROR MpegDecoder::Init (){	DEBUGMSG (1, ("MpegDecoder::Init\n"));	m_handle = open ("/dev/realmagichwl0", O_RDONLY);	ASSERT (m_handle != -1);	if (m_handle == -1)		return MPEG_DECODER_ERROR_NO_DECODER;	m_yuvWidth = 0;	m_yuvHeight = 0;	m_osdWidth = 0;	m_osdHeight = 0;	m_isMPEG4 = 0;	FeedPacketQueuesInit (FeedPacketsArray, MAX_FEEDPACKETS);	// make the osd buffer is 320x240	RMuint32 i;	RMuint8 *pOSDHeader, *pPalette, *pBits;	m_osdWidth = 320;	m_osdHeight = 240;	asm ("mcr p15, 0, r0, c7, c10, 0\n");		ioctl (m_handle, REALMAGICHWL_IOCTL_OSDFB_REFRESH, &m_OsdBuffer);	ASSERT (m_OsdBuffer.framebuffer);	pOSDHeader = (RMuint8 *)(m_OsdBuffer.framebuffer);	pPalette = pOSDHeader + 8;	pBits = pPalette + 1024;	pOSDHeader[0] = 0x3e;	pOSDHeader[1] = ((m_osdWidth*m_osdHeight+1024+8) >> 16) & 0xff;	pOSDHeader[2] = ((m_osdWidth*m_osdHeight+1024+8) >>  8) & 0xff;	pOSDHeader[3] = ((m_osdWidth*m_osdHeight+1024+8) >>  0) & 0xff;	pOSDHeader[4] = (m_osdWidth >> 8) & 0xff;	pOSDHeader[5] = (m_osdWidth >> 0) & 0xff;	pOSDHeader[6] = (m_osdHeight >> 8) & 0xff;	pOSDHeader[7] = (m_osdHeight >> 0) & 0xff;	// init palette	for (i=0; i<256; i++)	{		pPalette[0] = 0x00;				// alpha (0x00 = transparent, 0xff = opaque)		if (i)			pPalette[0] = 0xff;		pPalette[1] = rgb2y (0, 0, 0);	// y		pPalette[2] = rgb2u (0, 0, 0);	// u		pPalette[3] = rgb2v (0, 0, 0);	// v		pPalette += 4;	}	// some pre-defined colours	pPalette = pOSDHeader + 8;	pPalette += 4;	pPalette[0] = 0xff;	pPalette[1] = rgb2y (0, 0, 0);			// y	pPalette[2] = rgb2u (0, 0, 0);			// u	pPalette[3] = rgb2v (0, 0, 0);			// v	pPalette += 4;	pPalette[0] = 0xff;	pPalette[1] = rgb2y (0xff, 0xff, 0);	// y	pPalette[2] = rgb2u (0xff, 0xff, 0);	// u	pPalette[3] = rgb2v (0xff, 0xff, 0);	// v	pPalette += 4;	pPalette[0] = 0x40;	pPalette[1] = rgb2y (0xff, 0xff, 0xff);		// y	pPalette[2] = rgb2u (0xff, 0xff, 0xff);		// u	pPalette[3] = rgb2v (0xff, 0xff, 0xff);		// v	for (i=0; i<m_osdWidth*m_osdHeight;i++)		pBits[i] = 0;	/* 	// Enable this if you do NOT want to wait for an I frame before	// the decoding AFTER a STOP	RMuint32 BroadcastVideo;	BroadcastVideo = 1;	RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evBroadcastedVideo, sizeof(BroadcastVideo), &BroadcastVideo);	*/	return MPEG_DECODER_ERROR_NO_ERROR;}MPEG_DECODER_ERROR MpegDecoder::GetMaxDisplayModes (RMint32 *pMode){	ASSERT (pMode);	*pMode = 2;	return MPEG_DECODER_ERROR_NO_ERROR;}MPEG_DECODER_ERROR MpegDecoder::SetupDisplay (RMint32 Mode, RMuint8 Pal){	ASSERT (m_handle);	ASSERT (Mode < 2);	DEBUGMSG (1, ("MpegDecoder::SetupDisplay (%d)\n", Mode));	// refresh osd buffer	asm ("mcr p15, 0, r0, c7, c10, 0\n");		ioctl (m_handle, REALMAGICHWL_IOCTL_OSDFB_REFRESH, 0);	Wnd_type Wnd;	evOutputDevice_type OutputDevice;	evTvStandard_type TvStandard;	evTvOutputFormat_type TvOutputFormat;	evDigOvOnlyParams_type	DVIParameters;	if (Mode == 0)	{		// go to digital output			Wnd.x = 0;		Wnd.y = 0;		Wnd.w = 320;		Wnd.h = 240;		m_numeratorPixelAspectRatio = 675;		m_denominatorPixelAspectRatio = 639;		TvStandard = evTvStandard_NTSC;		TvOutputFormat = evTvOutputFormat_OUTPUT_OFF;		OutputDevice = evOutputDevice_DigOvOnly;		//  HSyncTotal = PreHSync + HSyncActive + PostHSync + VideoWidth;		//  VSyncTotal = PreVSync + VSyncActive + PostVSync + VideoHeight;		//  HFreq = VFreq * VSyncTotal / (Interlaced ? 2:1);		//  PixelFreq = HFreq * HSyncTotal * ((nbits==8) ? 2:1);		DVIParameters.HFreq = 18328; //27859;		DVIParameters.VFreq = 7480; //11371;		DVIParameters.VideoWidth = 320;		DVIParameters.VideoHeight = 240;			DVIParameters.PreHSync = 0;		DVIParameters.HSyncActive = 18;		DVIParameters.PostHSync = 2;		DVIParameters.PreVSync = 1;		DVIParameters.VSyncActive = 3;		DVIParameters.PostVSync = 1;		DVIParameters.HSyncTotal = 			DVIParameters.VideoWidth +			DVIParameters.PreHSync +			DVIParameters.HSyncActive +			DVIParameters.PostHSync;		DVIParameters.VSyncTotal =			DVIParameters.VideoHeight +			DVIParameters.PreVSync +			DVIParameters.VSyncActive +			DVIParameters.PostVSync;		DVIParameters.PixelFreq = 0;		DVIParameters.Interlaced = 0;		DVIParameters.HSyncPolarity = 0;		DVIParameters.VSyncPolarity = 1;		DVIParameters.BitsPerClock = 24;		DVIParameters.Ccir = CCIR_601;		DVIParameters.InvertField = CCIR_NON_INVERT_FIELD;		DVIParameters.SyncEnable = VSyncEn_HSyncEn_VrdyEn;		DVIParameters.Vip20 = 1;		DVIParameters.SyncGen = evSyncGen_em8xxx_Master;		DVIParameters.TvHdtvStandard = evTvHdtvStandard_NTSC;	// actually doesn't matter		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evValidWindow, sizeof(Wnd), &Wnd);		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evDigOvOnlyParams, sizeof(DVIParameters), &DVIParameters);		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evTvOutputFormat, sizeof(TvOutputFormat), &TvOutputFormat);		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evTvStandard, sizeof(TvStandard), &TvStandard);		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evOutputDevice, sizeof(OutputDevice), &OutputDevice);		Wnd.x = 0;		Wnd.y = 0;		Wnd.w = 320;		Wnd.h = 240;		RUA_DECODER_SET_PROPERTY (m_handle, OSD_SET, eOsdDestinationWindow,			sizeof(Wnd), &Wnd);		Wnd.x = 0;		Wnd.y = 0;		Wnd.w = 320;		Wnd.h = 240;		m_screenWidth = 320;		m_screenHeight = 240;		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evDestinationWindow, sizeof(Wnd), &Wnd);	}	else	{		TvStandard = Pal ? evTvStandard_PAL : evTvStandard_NTSC;		TvOutputFormat = evTvOutputFormat_COMPOSITE;		OutputDevice = evOutputDevice_TV;		Wnd.x = 0;		Wnd.y = 0;		Wnd.w = 720;		Wnd.h = Pal ? 576 : 480;		m_numeratorPixelAspectRatio = 8;		m_denominatorPixelAspectRatio = 9;		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evValidWindow, sizeof(Wnd), &Wnd);		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evTvOutputFormat, sizeof(TvOutputFormat), &TvOutputFormat);		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evTvStandard, sizeof(TvStandard), &TvStandard);		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evOutputDevice, sizeof(OutputDevice), &OutputDevice);		Wnd.w = Pal ? 720 : 680; //ntsc: shrink width a bit		Wnd.h = Pal ? 576 : 480;		Wnd.x = (720 - Wnd.w)/2;		Wnd.y = ((Pal ? 576 : 480) - Wnd.h)/2;		RUA_DECODER_SET_PROPERTY (m_handle, OSD_SET, eOsdDestinationWindow,			sizeof(Wnd), &Wnd);		Wnd.x = 0;		Wnd.y = 0;		Wnd.w = 720;		Wnd.h = Pal ? 576 : 480;		m_screenWidth = 720;		m_screenHeight = Pal ? 576 : 480;		RUA_DECODER_SET_PROPERTY (m_handle, VIDEO_SET, evDestinationWindow, sizeof(Wnd), &Wnd);	}	return MPEG_DECODER_ERROR_NO_ERROR;}MPEG_DECODER_ERROR MpegDecoder::GetScreenDimensions (RMint32 *w, RMint32 *h, RMint32 *n, RMint32 *d){	ASSERT (w);	ASSERT (h);	*w = m_screenWidth;	*h = m_screenHeight;	*n = m_numeratorPixelAspectRatio;	*d = m_denominatorPixelAspectRatio;	return MPEG_DECODER_ERROR_NO_ERROR;	}MPEG_DECODER_ERROR MpegDecoder::DisplayYUV420 (RMuint8 *pY, RMuint8 *pUV, RMint32 x, RMint32 y, RMint32 w, RMint32 h, RMint32 w_screen, RMint32 h_screen){	RMint32 i, Yaddr, UVaddr, isMPEG4;	YUVframe F;	RMuint8 *Y = (RMuint8 *)pY;	RMuint8 *UV = (RMuint8 *)pUV;	if ((pY == 0) && (pUV == 0))	{					int retval;		decoderproperty Dp;		evYUVWriteParams_type yuv; 		ASSERT (m_yuvWidth);		ASSERT (m_yuvHeight);		isMPEG4 = 0;		RUA_DECODER_SET_PROPERTY (m_handle, DECODER_SET, edecVideoStd, sizeof (isMPEG4), &isMPEG4);		yuv.wWidth = m_yuvWidth;		yuv.wHeight = m_yuvHeight;		yuv.YUVFormat = YUV_420_UNPACKED;		Dp.PropSet = VIDEO_SET;		Dp.PropId = evYUVWriteParams;		Dp.PropTypeLength = sizeof (evYUVWriteParams_type);		Dp.pValue = &yuv;		retval = ioctl (m_handle, REALMAGICHWL_IOCTL_DECODER_SET_PROPERTY, &Dp);		if (retval != 0)		{			DEBUGMSG (1, ("ERROR: could not set yuv display parameters\n"));			return (MPEG_DECODER_ERROR)retval;		}		isMPEG4 = m_isMPEG4;		RUA_DECODER_SET_PROPERTY (m_handle, DECODER_SET, edecVideoStd, sizeof (isMPEG4), &isMPEG4);		return MPEG_DECODER_ERROR_NO_ERROR;	}	if ((w_screen != m_yuvWidth) || (h_screen != m_yuvHeight))	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久成人麻豆午夜电影| 亚洲欧美在线aaa| 性久久久久久久| 99精品久久只有精品| 日本一区二区三区国色天香| 久久精品国产色蜜蜜麻豆| 91精品婷婷国产综合久久| 亚洲成人午夜影院| 7777精品伊人久久久大香线蕉完整版 | 国产区在线观看成人精品| 美女一区二区视频| 精品国产亚洲在线| 国产伦理精品不卡| 国产精品天干天干在线综合| 不卡的av在线播放| 自拍av一区二区三区| 色爱区综合激月婷婷| 亚洲一区二区偷拍精品| 色综合久久天天| 中文字幕国产一区| 99久久99精品久久久久久| 亚洲欧美国产77777| 精品视频1区2区3区| 美洲天堂一区二卡三卡四卡视频| 欧美日韩中文字幕一区二区| 日韩电影免费在线观看网站| 精品日韩一区二区三区| 成人一级视频在线观看| 亚洲欧美激情插| 欧美麻豆精品久久久久久| 免费在线观看一区二区三区| 国产日本一区二区| 91亚洲男人天堂| 亚洲18色成人| 国产亚洲欧洲一区高清在线观看| kk眼镜猥琐国模调教系列一区二区 | 亚洲一线二线三线久久久| 这里只有精品视频在线观看| 国产真实乱对白精彩久久| 国产精品情趣视频| 制服丝袜日韩国产| 成人av在线资源| 亚洲bt欧美bt精品777| 久久精品欧美一区二区三区麻豆| 9色porny自拍视频一区二区| 天堂一区二区在线免费观看| 国产视频一区不卡| 欧美日韩免费在线视频| 国产成人av电影免费在线观看| 亚洲一区二区三区国产| 欧美精品一区二区三区久久久 | 亚洲日本乱码在线观看| 成人午夜av影视| 一区二区三区资源| 欧美喷潮久久久xxxxx| 国产精品一区二区在线播放| 一区二区三区四区乱视频| 国产三级欧美三级日产三级99 | 日韩在线卡一卡二| 亚洲国产成人一区二区三区| 337p亚洲精品色噜噜噜| 99久久精品免费精品国产| 日本美女一区二区三区视频| 亚洲精品亚洲人成人网在线播放| 久久久蜜臀国产一区二区| 欧美日韩情趣电影| 日本高清不卡在线观看| 蜜臂av日日欢夜夜爽一区| 亚洲另类在线制服丝袜| 欧美极品另类videosde| 欧美成人官网二区| 久久久久久夜精品精品免费| 欧美精品一二三| 日本乱人伦aⅴ精品| 国产成人免费在线观看不卡| 日本vs亚洲vs韩国一区三区二区| 日韩一区中文字幕| 欧美成人aa大片| 欧美高清hd18日本| 欧美日韩一区久久| 在线免费av一区| 在线观看不卡视频| 色综合久久久久网| 国产不卡免费视频| 国产精品影视网| 韩国欧美一区二区| 久久9热精品视频| 久久精品国产77777蜜臀| 日本一区中文字幕| 亚洲综合视频网| 亚洲一区在线看| 亚洲国产视频网站| 亚洲国产综合91精品麻豆| 亚洲一区二区三区中文字幕| 亚洲综合免费观看高清完整版| 国产精品大尺度| 亚洲视频在线一区观看| 亚洲婷婷综合久久一本伊一区| 综合激情网...| 亚洲男同1069视频| 精品国产乱码久久久久久1区2区| 日韩精品一区二区三区在线观看| 日韩一区二区免费在线观看| 欧美成人免费网站| 久久久精品人体av艺术| 中文字幕第一区综合| 中文字幕一区三区| 亚洲激情五月婷婷| 午夜欧美电影在线观看| 日韩国产一二三区| 日本成人在线一区| 国产精品自拍av| 91视视频在线直接观看在线看网页在线看| 色综合天天做天天爱| 欧美性生交片4| 久久久久久久久久久久电影| 依依成人精品视频| 国内国产精品久久| 在线亚洲高清视频| 国产色婷婷亚洲99精品小说| 亚洲最大的成人av| 国产精品一区二区黑丝| 欧美午夜理伦三级在线观看| 久久久欧美精品sm网站| 亚洲一区在线视频| 成人黄色大片在线观看| 日韩欧美中文字幕公布| 国产精品嫩草影院com| 日韩电影在线观看一区| av资源网一区| 精品伦理精品一区| 亚洲一区在线播放| 丁香桃色午夜亚洲一区二区三区| 欧美日韩国产大片| 国产精品久久久久国产精品日日| 天天综合日日夜夜精品| 色欲综合视频天天天| 亚洲国产精品成人综合色在线婷婷 | 白白色亚洲国产精品| 欧美一区二区三区公司| 一区二区在线观看视频| 国产精品中文欧美| 欧美一级视频精品观看| 亚洲一区二区三区在线播放| av在线播放一区二区三区| 欧美一区二视频| 亚洲国产一区二区视频| 91在线视频免费观看| 亚洲国产高清不卡| 国产精品亚洲一区二区三区妖精 | 成人激情综合网站| 久久尤物电影视频在线观看| 天天色天天爱天天射综合| 欧美亚洲综合一区| 一区二区三区不卡在线观看| 99久久免费视频.com| 国产精品伦理在线| 国产乱国产乱300精品| 日韩欧美国产麻豆| 秋霞午夜av一区二区三区| 欧美日韩中文字幕精品| 亚洲高清视频中文字幕| 欧美专区在线观看一区| 亚洲小说欧美激情另类| 欧美三级在线视频| 日韩一区精品字幕| 欧美一区二区三区色| 蜜臀av一区二区三区| 欧美xfplay| 国产成人亚洲精品狼色在线| 久久影院午夜论| 粉嫩av一区二区三区| 亚洲欧洲色图综合| 色成人在线视频| 亚洲成a人v欧美综合天堂下载| 欧美色图12p| 免费高清视频精品| 久久伊人蜜桃av一区二区| 国产一区二区不卡| 国产精品嫩草99a| 一本在线高清不卡dvd| 亚洲一区电影777| 91麻豆精品国产无毒不卡在线观看| 亚洲成人免费av| 日韩免费看的电影| 国产99精品视频| 亚洲免费在线电影| 欧美日产在线观看| 另类成人小视频在线| 久久久久久夜精品精品免费| 91在线国内视频| 图片区小说区区亚洲影院| 欧美一二三四在线| 风间由美一区二区三区在线观看| 亚洲欧美电影一区二区| 5566中文字幕一区二区电影| 极品少妇一区二区| 亚洲精品视频自拍| 精品国产欧美一区二区| 91在线视频观看|