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

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

?? videorenderer.cpp

?? < VC++視頻音頻開發>> 這本書的源碼
?? CPP
字號:
/**************************************************************************************
 *                                                                                    *
 *                                                                                    *
 **************************************************************************************/

#include "VideoRenderer.h"

/*
 * 視頻補償器封裝類
 */

MediaVideoRenderer::MediaVideoRenderer()
{
	this->overlayRenderer = new MediaVideoRendererOverlay();
	this->rgbRenderer     = new MediaVideoRendererRGB();

	this->renderer        = NULL;
}

MediaVideoRenderer::~MediaVideoRenderer()
{
	delete this->overlayRenderer;
	delete this->rgbRenderer;
}

/*
 * 媒體項方法
 */

media_type_t  MediaVideoRenderer::GetType()
{
	return MEDIA_TYPE_VIDEO_RENDERER;
}

char         *MediaVideoRenderer::GetName()
{
	if(this->renderer)
		return this->renderer->GetName();

	return "Video Renderer Wrapper";
}

MP_RESULT     MediaVideoRenderer::Connect(MediaItem *item)
{
	if(this->renderer)
		return this->renderer->Connect(item);

	return MP_RESULT_ERROR;
}

MP_RESULT     MediaVideoRenderer::ReleaseConnections()
{
	return MP_RESULT_OK;
}

DWORD         MediaVideoRenderer::GetCaps()
{
	return 0;
}

MP_RESULT     MediaVideoRenderer::Configure(HINSTANCE hInstance, HWND hwnd)
{
	return MP_RESULT_ERROR;
}

/*
 * 視頻補償方法
 */

MP_RESULT MediaVideoRenderer::Init(HWND hwnd, 
								   unsigned int width, 
								   unsigned int height, 
								   media_video_mode_t preferedMode)
{
	this->renderer = NULL;

	switch(preferedMode) {

	case VIDEO_MODE_RGB16:
	case VIDEO_MODE_RGB24:
	case VIDEO_MODE_RGB32:

		if(this->rgbRenderer->Init(hwnd, width, height) == MP_RESULT_OK) {
				
			this->renderer = (MediaVideoRenderer *) this->rgbRenderer;
			return MP_RESULT_OK;
		}
		else {

			return MP_RESULT_ERROR;
		}
		break;

	case VIDEO_MODE_YUV12:
	case VIDEO_MODE_UYVY:
	case VIDEO_MODE_YUY2:

		if(this->overlayRenderer->Init(hwnd, width, height) == MP_RESULT_OK) {

			this->renderer = (MediaVideoRenderer *) this->overlayRenderer;
			return MP_RESULT_OK;
		}
		else {

			/*
			 * 嘗試標準補償器
			 */

			if(this->rgbRenderer->Init(hwnd, width, height) == MP_RESULT_OK) {
	
				this->renderer = (MediaVideoRenderer *) this->rgbRenderer;
				return MP_RESULT_OK;
			}
			else {

				return MP_RESULT_ERROR;
			}
		}
		break;
	}

	return MP_RESULT_ERROR;
}

MP_RESULT MediaVideoRenderer::InitFullscreen(HWND hwnd, 
											 unsigned int width, 
											 unsigned int height,
											 media_video_mode_t preferedMode)
{
	this->renderer = NULL;

	switch(preferedMode) {

	case VIDEO_MODE_RGB16:
	case VIDEO_MODE_RGB24:
	case VIDEO_MODE_RGB32:

		if(this->rgbRenderer->InitFullscreen(hwnd, width, height) == MP_RESULT_OK) {
				
			this->renderer = (MediaVideoRenderer *) this->rgbRenderer;
			return MP_RESULT_OK;
		}
		else {

			return MP_RESULT_ERROR;
		}
		break;

	case VIDEO_MODE_YUV12:
	case VIDEO_MODE_UYVY:
	case VIDEO_MODE_YUY2:

		if(this->overlayRenderer->InitFullscreen(hwnd, width, height) == MP_RESULT_OK) {

			this->renderer = (MediaVideoRenderer *) this->overlayRenderer;
			return MP_RESULT_OK;
		}
		else {

			/*
			 * 嘗試標準補償器
			 */

			if(this->rgbRenderer->InitFullscreen(hwnd, width, height) == MP_RESULT_OK) {
	
				this->renderer = (MediaVideoRenderer *) this->rgbRenderer;
				return MP_RESULT_OK;
			}
			else {

				return MP_RESULT_ERROR;
			}
		}
		break;
	}

	return MP_RESULT_ERROR;
}

/*
 * 以下兩個不使用
 */

MP_RESULT MediaVideoRenderer::Init(HWND hwnd, unsigned int width, unsigned int height)
{
	if(this->renderer) {

		this->renderer->Close();
		return this->renderer->Init(hwnd, width, height);
	}

	return MP_RESULT_ERROR;
}

MP_RESULT MediaVideoRenderer::InitFullscreen(HWND hwnd, unsigned int width, unsigned int height)
{
	if(this->renderer) {

		this->renderer->Close();
		return this->renderer->InitFullscreen(hwnd, width, height);
	}

	return MP_RESULT_ERROR;
}



 

MP_RESULT MediaVideoRenderer::Stop()
{
	if(this->renderer)
		return this->renderer->Stop();

	return MP_RESULT_ERROR;
}

RECT *MediaVideoRenderer::GetFullscreenRects()
{
	if(this->renderer)
		return this->renderer->GetFullscreenRects();

	return NULL;
}

media_video_mode_t MediaVideoRenderer::GetVideoMode()
{
	if(this->renderer)
		return this->renderer->GetVideoMode();

	return VIDEO_MODE_NONE;
}

MP_RESULT MediaVideoRenderer::Draw(MediaBuffer *buffer, RECT *rect, int frameNumber, int invertFlag)
{
	if(this->renderer)
		return this->renderer->Draw(buffer, rect, frameNumber, invertFlag);

	return MP_RESULT_ERROR;
}

MP_RESULT MediaVideoRenderer::DrawFullscreen(MediaBuffer *buffer, int frameNumber, int invertFlag, int desktop)
{
	if(this->renderer)
		return this->renderer->DrawFullscreen(buffer, frameNumber, invertFlag, desktop);

	return MP_RESULT_ERROR;
}

MP_RESULT MediaVideoRenderer::Close()
{
	if(this->renderer) {
		
		this->renderer->Close();
		this->renderer = NULL;
	}

	return MP_RESULT_ERROR;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区在线| 日本一区二区三区四区在线视频| 不卡高清视频专区| a在线欧美一区| 97se亚洲国产综合自在线 | 欧美亚洲免费在线一区| 91亚洲国产成人精品一区二区三| 成人国产电影网| 97超碰欧美中文字幕| 在线观看91视频| 91精品国产91久久综合桃花| 日韩亚洲欧美成人一区| 久久综合久色欧美综合狠狠| 亚洲国产精品v| 一区二区三区在线影院| 亚洲aⅴ怡春院| 国产乱码精品一区二区三区五月婷| 国产在线精品一区二区| 国产91精品欧美| 欧美午夜宅男影院| 日韩欧美一级片| 中文字幕av免费专区久久| 久久久久国产精品麻豆ai换脸| 国产欧美精品在线观看| 亚洲激情欧美激情| 久久99久久久久| av不卡一区二区三区| 欧美三级日韩三级国产三级| 精品精品国产高清一毛片一天堂| 国产丝袜欧美中文另类| 最近日韩中文字幕| 久久精品国产一区二区| 菠萝蜜视频在线观看一区| 欧美三级韩国三级日本一级| 欧美精品一区二区三区在线播放| 亚洲人成网站在线| 美国毛片一区二区| 色一情一乱一乱一91av| 日韩精品一区二区三区中文不卡| 国产精品国产自产拍在线| 三级精品在线观看| 99精品黄色片免费大全| 欧美一区二区三区免费视频| 中文字幕中文字幕在线一区| 秋霞电影网一区二区| 不卡的av中国片| 精品久久国产老人久久综合| 一区二区三区四区五区视频在线观看| 激情久久久久久久久久久久久久久久| 色偷偷久久人人79超碰人人澡| 久久久青草青青国产亚洲免观| 一区二区激情视频| 成人午夜视频免费看| 欧美成人乱码一区二区三区| 亚洲精品久久久蜜桃| 国产成人免费网站| 久久人人爽爽爽人久久久| 五月婷婷色综合| 欧日韩精品视频| 亚洲嫩草精品久久| 成年人网站91| 国产免费观看久久| 韩国v欧美v日本v亚洲v| 欧美一区二区精品| 奇米在线7777在线精品| 欧美高清dvd| 婷婷综合五月天| 欧美精品乱码久久久久久| 一区二区免费在线| 欧美亚男人的天堂| 无吗不卡中文字幕| 欧美亚洲日本一区| 日韩国产精品91| 8v天堂国产在线一区二区| 三级一区在线视频先锋 | 亚洲欧美一区二区三区国产精品| 国产酒店精品激情| 国产免费成人在线视频| 国产成人av电影| 国产精品国产三级国产普通话蜜臀 | 欧美午夜不卡在线观看免费| 亚洲精品国产高清久久伦理二区| 91久久精品网| 日韩国产欧美视频| 久久综合色之久久综合| 粉嫩av一区二区三区在线播放 | 欧美在线短视频| 性久久久久久久久| 亚洲精品在线一区二区| 国产麻豆欧美日韩一区| 国产精品素人一区二区| 一本大道av一区二区在线播放| 玉米视频成人免费看| 欧美放荡的少妇| 国产一区二区视频在线播放| 国产片一区二区三区| 色先锋资源久久综合| 日韩精品五月天| 久久久久高清精品| 日本丶国产丶欧美色综合| 水野朝阳av一区二区三区| 欧美精品一区视频| 在线观看亚洲专区| 久久www免费人成看片高清| 国产欧美日韩另类视频免费观看 | 亚洲一区二区三区四区在线免费观看| 欧美少妇xxx| 黄色日韩网站视频| 亚洲一区在线观看免费 | 国产午夜亚洲精品羞羞网站| 成av人片一区二区| 热久久免费视频| 中文字幕日韩欧美一区二区三区| 欧美日韩国产一区二区三区地区| 国内精品不卡在线| 亚洲综合在线电影| 久久九九全国免费| 欧美一区二区三区视频在线观看 | 久久国产夜色精品鲁鲁99| 国产精品欧美极品| 日韩精品一区二区在线| 色欧美日韩亚洲| 国产成人自拍高清视频在线免费播放| 亚洲va天堂va国产va久| 国产婷婷色一区二区三区| 欧美老年两性高潮| 99国产精品久久久久久久久久久| 另类小说视频一区二区| 一级精品视频在线观看宜春院 | 国产精品77777| 人人超碰91尤物精品国产| 一区二区三区中文在线观看| 欧美极品少妇xxxxⅹ高跟鞋 | 秋霞电影网一区二区| 亚洲欧美乱综合| 中文一区在线播放| 国产香蕉久久精品综合网| 日韩无一区二区| 欧美一区二区三区免费观看视频 | 在线电影国产精品| 99精品在线观看视频| 成人综合在线网站| 成人综合在线网站| 粉嫩一区二区三区在线看| 久久精品国产亚洲aⅴ| 日韩精品电影在线观看| 亚洲成人tv网| 视频一区视频二区中文| 亚洲成人av电影| 亚洲777理论| 亚洲va国产天堂va久久en| 亚洲线精品一区二区三区八戒| 777奇米四色成人影色区| 色婷婷久久一区二区三区麻豆| 精品久久久久久久久久久久久久久久久 | 久久美女艺术照精彩视频福利播放| 欧美在线视频全部完| 色综合天天做天天爱| 色综合天天综合在线视频| av在线播放成人| 91美女蜜桃在线| 欧美性生活一区| 91精品国产一区二区三区| 欧美猛男超大videosgay| 欧美久久久久中文字幕| 日韩欧美电影一二三| 欧美精品一区二区三区蜜桃视频| 久久欧美一区二区| 中文字幕在线不卡国产视频| 日韩理论片一区二区| 亚洲一区二区三区四区五区黄 | 欧美一区二区三区白人| 欧美一区中文字幕| 日本一区二区三区在线观看| 亚洲三级电影全部在线观看高清| 亚洲最新视频在线播放| 青青草一区二区三区| 粉嫩一区二区三区性色av| 日本韩国欧美在线| 欧美大片在线观看| 亚洲人成伊人成综合网小说| 亚洲午夜精品网| 精品无码三级在线观看视频| 成人黄色电影在线| 欧美男人的天堂一二区| 欧美精品一区二区三区蜜臀| 亚洲人成在线观看一区二区| 免费成人av在线| 97成人超碰视| 欧美精品一区二区久久婷婷| 亚洲少妇中出一区| 美女爽到高潮91| 99久久久精品免费观看国产蜜| 91精品国产综合久久久久久漫画| 国产午夜精品在线观看| 午夜精品国产更新| 色婷婷av一区二区三区gif| 精品国产乱码久久久久久老虎| 亚洲精品第1页| 国产精品一区在线观看乱码|