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

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

?? vmwithdirectshowmultivideo.cpp

?? VideoMan (Video Manager) is an open-source C++ library that helps you developing video based applica
?? CPP
字號:
#include <windows.h>
#include <GL/glut.h>
#include <iostream>

#include "VideoManControl.h"
#include "VideoManInputFormat.h"

using namespace std;

/*
This is an example using VideoMan with DirectShow and OpenGL.
Multiple video files are initilized using DirectShow
To use this example, VideoMan must be built with the directive VM_OGLRenderer, 
also you need to build the input VMDirectShow
*/

VideoManControl videoMan;
int screenLeft, screenUp, screenWidth, screenHeight;
bool fullScreened;
double videoLength;
bool activated; //To know if the first input is activated or not
int visualMode = 0;
int mainInput = 0;
std::vector< int > videoInputIDs; //List of indexes of the initialized inputs

size_t maxVideos = 10;
bool renderAudio = true;
string dirPath;


void glutResize(int width, int height)
{
	screenLeft = 0;
	screenUp = 0;
	screenWidth = width;
	screenHeight = height;
	//Notify to VideoMan the change of the screen size
	videoMan.changeScreenSize( screenLeft, screenUp, screenWidth, screenHeight );
}


void glutKeyboard(unsigned char key, int x, int y)
{
	switch (key)
	{
		case 27:
		{
			exit(0);
		}
	}
}


void glutSpecialKeyboard(int value, int x, int y)
{
	switch (value)
    {
		case GLUT_KEY_F1:
		{
			if ( !fullScreened )
				glutFullScreen();
			else
			{
				glutPositionWindow( 0, 20 );
				glutReshapeWindow( 640, 480 );
			}
			fullScreened = !fullScreened;
			break;
		}
		case GLUT_KEY_F2:
		{
			visualMode = (visualMode + 1 ) %2;
			videoMan.changeVisualizationMode( visualMode);
			break;
		}		
		case GLUT_KEY_F3:
		{
			mainInput = ( mainInput + 1 ) %videoInputIDs.size();
			videoMan.changeMainVisualizationInput( mainInput );
			break;
		}
    }
}


void InitializeOpenGL()
{

}

void loadFiles( string dirPath, vector< string > &files )
{
	WIN32_FIND_DATA fd;
	DWORD dwAttr = FILE_ATTRIBUTE_ARCHIVE;
	const std::string path  = dirPath + "/*.*";
	HANDLE hFind = FindFirstFile( path.c_str(), &fd);
	if(hFind == INVALID_HANDLE_VALUE)
	{
		FindClose( hFind);
		return;
	}
	do
	{
		if ( fd.dwFileAttributes & dwAttr )
		{
			std::string fileName = dirPath + "/" + fd.cFileName;			 
			/*if ( fileName.rfind(".dll") != std::string::npos )
			{
			}*/
			files.push_back( fileName );

		}
	}while( FindNextFile( hFind, &fd));
	FindClose( hFind);
}

bool InitializeVideoMan()
{
	vector< string > files;
	loadFiles( dirPath, files );

	VideoManInputFormat format;	
	inputIdentification device;

	for ( size_t v = 0; v < files.size() && videoInputIDs.size() < maxVideos; ++v )
	{
		//Initialize one input from a video file
		device.fileName = files[v]; //file name
		device.identifier = "DSHOW_VIDEO_FILE"; //using directshow	
		format.timeFormat = SECONDS; //We want the time format in seconds
		//play in real-time
		format.clock = true;
		format.dropFrames = true;
		format.renderAudio = renderAudio;
		int inputID;
		if ( ( inputID = videoMan.addVideoInput( device, &format ) ) != -1 )
		{
			cout << endl;
			cout << "Loaded video file: " << device.fileName << endl;
			cout << "resolution: " << format.width <<" " << format.height << endl;
			//get the length of the video
			videoLength = videoMan.getLength( inputID );
			printf("duration: %f seconds\n\n", videoLength );
			videoInputIDs.push_back( inputID );
		}	
	}
	for ( size_t v = 0; v < videoInputIDs.size(); ++v )
		videoMan.playVideo( v );
	
	//We want to display all the intialized video inputs
	videoMan.activateAllVideoInputs();	
	activated = true;

	return ( videoInputIDs.size() > 0);
}


void glutDisplay(void)
{
	//Clear the opengl window
	glClear( GL_COLOR_BUFFER_BIT );
	//For each initialized inputs
	for ( size_t n=0; n < videoInputIDs.size(); n++ )
	{
		//Get a new frame from input n
		char *image = videoMan.getFrame( n );
		if ( image != NULL )
		{
			//Update the texture of the renderer
			videoMan.updateTexture( n ); 
            
			/*
				Process the image...
			*/

			//Release the frame
			videoMan.releaseFrame( n );
		}
		//render the image of input n in the screen
		videoMan.renderFrame( n ); 
	}

	//Check if the video file (input number 0) has reached the end	
	if ( videoMan.getPosition(0) == videoLength )
		videoMan.goToFrame( 0, 0 ); //restart from the begining

	glFlush();
    glutSwapBuffers();
}


void showHelp()
{
	cout << "========" << endl;
	cout << "keys:" << endl;
	cout << "Esc->Exit" << endl;
	cout << "F1->Fullscreen" << endl;
	cout << "F2->Switch Visualization Mode" << endl;
	cout << "F3->Switch Main Input" << endl;
	cout << "========" << endl;
}

int main(int argc, char** argv)
{
	cout << "Multiple video files are initilized using DirectShow" << endl;
	cout << "Usage: VMwithDirectShowMultiVideo.exe directoryPath(string) playAudio(0/1)" << endl;
	cout << "Example: VMwithDirectShowMultiVideo.exe c:\\MyVideos 0" << endl;
	cout << "=====================================================" << endl;
	if ( argc > 1 )
		dirPath = argv[1];
	if ( argc > 2 )
	{
		string num = argv[2];
		renderAudio = ( num != "0" );
	}
	
	glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA | GLUT_MULTISAMPLE );
    glutInitWindowPosition( 0, 0 );
    glutInitWindowSize( 640, 480 );
    glutInit( &argc, argv );

    glutCreateWindow("VideoMan with DirectShow");

    glutReshapeFunc(glutResize);
    glutDisplayFunc(glutDisplay);
    glutIdleFunc(glutDisplay);
    glutKeyboardFunc(glutKeyboard);
	glutSpecialFunc(glutSpecialKeyboard);

    InitializeOpenGL();
	
	if ( !InitializeVideoMan() )
	{
		return 0;
	}
	
	fullScreened = false;

	showHelp();

    glutMainLoop();

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合激情网| 26uuu欧美| 亚洲精品久久7777| 色婷婷av一区二区三区之一色屋| 国产精品美女久久久久aⅴ| 国产成人精品亚洲日本在线桃色| 国产日产欧美一区| 北条麻妃国产九九精品视频| 亚洲色图在线视频| 欧美在线免费视屏| 亚洲成人av一区| 日韩欧美国产三级电影视频| 精品一区二区久久久| 久久久久一区二区三区四区| 成人av片在线观看| 一区二区三区在线观看视频| 欧美日韩二区三区| 久久成人av少妇免费| 欧美国产一区在线| 91免费视频观看| 性欧美疯狂xxxxbbbb| 日韩免费看的电影| 欧美日韩在线播| 麻豆国产91在线播放| 久久亚洲二区三区| 91理论电影在线观看| 免费在线观看视频一区| 久久―日本道色综合久久| 成人av动漫在线| 亚洲国产精品一区二区久久恐怖片 | 国产日韩亚洲欧美综合| www.欧美色图| 日本亚洲电影天堂| 中文无字幕一区二区三区| 欧美午夜电影网| 国产在线一区二区| 亚洲黄色录像片| 精品国产一区二区三区av性色| 99re热这里只有精品视频| 免费成人在线网站| 亚洲卡通动漫在线| 久久精品在这里| 欧美日韩久久不卡| 东方aⅴ免费观看久久av| 99久久免费精品高清特色大片| 三级亚洲高清视频| 中文字幕制服丝袜成人av| 91精品在线免费观看| 成人av在线影院| 蜜乳av一区二区| 一区二区三区中文字幕精品精品| 欧美xxxx在线观看| 欧美亚洲一区三区| 成人国产精品免费观看| 老司机一区二区| 亚洲午夜激情av| 国产精品你懂的在线| 欧美xxxxxxxxx| 欧美日韩国产美| 一本一本久久a久久精品综合麻豆| 韩国女主播成人在线| 天天综合天天综合色| 亚洲精品免费在线观看| 欧美国产日产图区| 久久久久99精品一区| 欧美一区二区三区在线电影| 欧美色国产精品| 一本色道久久综合狠狠躁的推荐| 成人免费视频免费观看| 国产精品中文欧美| 久久福利资源站| 日韩**一区毛片| 亚洲成a人v欧美综合天堂| 亚洲激情在线播放| 综合av第一页| 亚洲欧美日韩久久精品| 国产精品传媒入口麻豆| 国产女人18毛片水真多成人如厕 | 国产精品久久久久久久第一福利| 久久综合久久久久88| 欧美一区二区精品在线| 制服丝袜成人动漫| 正在播放亚洲一区| 91精品蜜臀在线一区尤物| 欧美精品视频www在线观看| 欧美揉bbbbb揉bbbbb| 在线观看视频一区| 久久免费国产精品 | 久久在线观看免费| 精品久久久久久久久久久院品网 | 老色鬼精品视频在线观看播放| 亚洲国产精品久久一线不卡| 亚洲国产sm捆绑调教视频| 亚洲午夜影视影院在线观看| 亚洲成人久久影院| 日韩精品五月天| 久久精品国产精品亚洲精品| 国产在线精品视频| 成人天堂资源www在线| 成人激情电影免费在线观看| 9i在线看片成人免费| 色美美综合视频| 欧美人牲a欧美精品| 日韩欧美的一区| 国产丝袜欧美中文另类| 亚洲天堂2016| 亚洲专区一二三| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久精品国产精品亚洲精品| 国产成人免费av在线| 91麻豆精品一区二区三区| 欧美军同video69gay| 日韩精品一区二区三区swag| 国产欧美日韩麻豆91| 洋洋av久久久久久久一区| 日韩av电影一区| 成人免费视频app| 欧美日韩精品久久久| 精品国产3级a| 亚洲黄色在线视频| 蜜臀av性久久久久蜜臀aⅴ| 成人丝袜视频网| 欧美三级电影在线观看| 久久久国际精品| 夜夜精品视频一区二区| 精油按摩中文字幕久久| 99视频一区二区三区| 欧美疯狂性受xxxxx喷水图片| 国产色综合久久| 天堂久久久久va久久久久| 国产成人精品一区二| 在线观看91精品国产麻豆| 国产精品沙发午睡系列990531| 天天综合天天综合色| 成人黄色综合网站| 日韩一区二区电影网| 亚洲日本欧美天堂| 国产一区二区毛片| 欧美色图激情小说| 国产精品日韩精品欧美在线| 不卡大黄网站免费看| 欧美一区二区高清| 亚洲精品国产一区二区精华液| 国产呦萝稀缺另类资源| 欧美日韩精品一区视频| 国产精品久久久久国产精品日日| 人人狠狠综合久久亚洲| 在线日韩一区二区| 国产精品欧美一区二区三区| 黄页网站大全一区二区| 欧美日韩免费视频| 亚洲欧美日韩电影| 成人h精品动漫一区二区三区| 欧美大片国产精品| 日韩精品欧美精品| 欧美午夜寂寞影院| 亚洲免费av高清| 91在线观看一区二区| wwww国产精品欧美| 久久成人精品无人区| 欧美一区二区三区影视| 午夜精品视频在线观看| 色综合色狠狠综合色| 中文字幕亚洲区| 成人一区二区在线观看| 国产日产欧美一区二区视频| 国产伦精品一区二区三区免费| 日韩久久精品一区| 久久狠狠亚洲综合| 欧美α欧美αv大片| 免费在线一区观看| 日韩欧美一二三四区| 免费在线观看精品| 日韩欧美黄色影院| 精品一二线国产| 欧美精品一区二区三区视频| 久久国内精品自在自线400部| 日韩一区二区三区三四区视频在线观看 | 亚洲午夜精品17c| 欧美日韩亚洲综合在线 | 99久久精品免费看国产免费软件| 国产精品水嫩水嫩| 成人黄色小视频在线观看| 国产精品久久久久久久久免费樱桃| 成人综合婷婷国产精品久久蜜臀 | 欧美一区二区视频网站| 免费成人在线影院| 精品电影一区二区三区 | 亚洲综合色婷婷| 欧美性受极品xxxx喷水| 午夜精品国产更新| 日韩午夜电影在线观看| 韩国在线一区二区| 国产精品女主播av| 在线免费观看不卡av| 亚洲超碰精品一区二区| 欧美α欧美αv大片| 成人免费黄色大片| 亚洲香蕉伊在人在线观| 日韩三级av在线播放|