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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? network_ctrl.cpp

?? 嵌入式linux系統(tǒng)的網(wǎng)絡(luò)編程(C++) 在ARM上實(shí)現(xiàn)視頻會議源碼
?? CPP
字號:
///////////////////////////////////////////////////////// FileName:	network_ctrl.cpp// Author:		b1gm0use// Project:		myvideo#include <iostream>#include <qwaitcondition.h>#include "network_ctrl.h"#include "capture_event.h"#include "network_ctrl_send_thread.h"#include "network_ctrl_recv_thread.h"#include "video.h"#include "audio.h"#include "network.h"#include "avi.h"using namespace std;///////////////////////////////////////////////////////// Public Functions///////////////////////////////////////////////////////// 構(gòu)造函數(shù)// 其余三個為widget的子類要求的參數(shù)network_ctrl::network_ctrl( avi * avi_ptr_in, QWidget *parent, const char *name, int wFlags ) 		: QWidget( parent, name, wFlags ) // {{{{	verbose_output( 2, "create network_ctrl." );	ncrt = NULL;	ncst = NULL;	audio_send_buff_sema = NULL;	video_send_buff_sema = NULL;		ready_to_send_audio = NULL;	ready_to_send_video = NULL;	audio_buff[0] = audio_buff[1] = audio_buff[2] = NULL;	video_buff[0] = video_buff[1] = video_buff[2] = NULL;	video_frame = audio_frame = 0;	avi_ptr = avi_ptr_in;	term_sub_thread_sema = NULL;	term_sub_thread = false;} // }}}// 析構(gòu)函數(shù)network_ctrl::~network_ctrl( void ) // {{{{	verbose_output( 2, "delete network_ctrl." );	if ( avi_ptr->net_mode == CONNECT && NULL != ncrt )	{		if ( ncrt->running() )		{			ncrt->terminate();		}		delete ncrt;	}	if ( avi_ptr->net_mode == LISTEN && NULL != ncst )	{		if ( ncst->running() )		{			ncst->terminate();		}		delete ncst;	}	delete audio_send_buff_sema;	delete video_send_buff_sema;	delete ready_to_send_audio;	delete ready_to_send_video;	delete [] audio_buff[0];	delete [] audio_buff[1];	delete [] audio_buff[2];	delete [] video_buff[0];	delete [] video_buff[1];	delete [] video_buff[2];	delete term_sub_thread_sema;} // }}}// 初始化函數(shù)int network_ctrl::init ( void ) // {{{{	verbose_output( 2, "init network_ctrl." );	audio_send_buff_sema = new QSemaphore( 1 );	video_send_buff_sema = new QSemaphore( 1 );		ready_to_send_audio = new QWaitCondition;	ready_to_send_video = new QWaitCondition;	BUFF * temp;	term_sub_thread_sema = new QSemaphore( 1 );	// 如果做做為LISTEN方,則要接收數(shù)據(jù)幀	// 開辟緩沖區(qū)	if ( avi_ptr->net_mode == LISTEN )	{		if ( avi_ptr->use_g723 )		{			for ( int i=0; i<3; i++ )			{				temp = new BUFF [ BUFF_SIZE_G723 * LENGTH ];				audio_buff[i] = new buff_t( temp, BUFF_SIZE_G723 * LENGTH );			}		}		else		{			for ( int i=0; i<3; i++ )			{				temp = new BUFF [ BUFF_SIZE_G711 * LENGTH ];				audio_buff[i] = new buff_t( temp, BUFF_SIZE_G711 * LENGTH );			}		}		for ( int i=0; i<3; i++ )		{			temp = new BUFF [ avi_ptr->video_opt.min_width * avi_ptr->video_opt.factor * avi_ptr->video_opt.min_height * avi_ptr->video_opt.factor * 3 ];			video_buff[i] = new buff_t( temp, avi_ptr->video_opt.min_width * avi_ptr->video_opt.factor * avi_ptr->video_opt.min_height * avi_ptr->video_opt.factor * 3 );		}	}	return SUCCEED;} // }}}void network_ctrl::stop_running ( void ) // {{{{	if ( avi_ptr->net_mode == LISTEN )	{		if ( NULL != ncst )		{			(*term_sub_thread_sema)++;			term_sub_thread = true;			(*term_sub_thread_sema)--;						cout << "before ncst wait" << endl;			if ( ncst->wait() )			{				cout << "before ncst wait" << endl;				delete ncst;				term_sub_thread = false;				cout << "kill ok" << endl;				ncst = NULL;				return;			}		}	}	else	{		if ( avi_ptr->net_mode == CONNECT )		{			if ( NULL != ncrt )			{				(*term_sub_thread_sema)++;				term_sub_thread = true;				(*term_sub_thread_sema)--;				cout << "before wait" << endl;				if ( ncrt->wait() )				{				cout << "after wait" << endl;					delete ncrt;					term_sub_thread = false;					ncrt = NULL;					cout << "kill ok" << endl;					return;				}			}		}	}	return;} // }}}void network_ctrl::begin_running ( void ) // {{{{		// 創(chuàng)建不同的連接線程	if ( avi_ptr->net_mode == LISTEN && NULL == ncst )	{		ncst = new network_ctrl_send_thread( avi_ptr, this );		ncst->start();	}	else	{		if ( avi_ptr->net_mode == CONNECT && NULL == ncrt )		{			ncrt = new network_ctrl_recv_thread( avi_ptr, this );			ncrt->start();		}	}	return;} // }}}bool network_ctrl::running ( void ) // {{{{	if ( avi_ptr->net_mode == LISTEN  )	{		if ( NULL != ncst )		{			return true;		}		else		{			return false;		}	}	else	{		if ( avi_ptr->net_mode == CONNECT )		{			if ( NULL != ncrt )			{				return true;			}			else			{				return false;			}		}	}	return false;} // }}}///////////////////////////////////////////////////////// Protected Functions///////////////////////////////////////////////////////// 內(nèi)部函數(shù),用于接收自定義的事件void network_ctrl::customEvent ( QCustomEvent * e ) // {{{{	verbose_output( 4, "network_ctrl change image event." );	// 判斷事件類型,是否正確	if ( e->type() == VIDEO_NET_SEND_EVENT )	{		// 視頻數(shù)據(jù)		capture_event * new_event = (capture_event *) e;		BUFF * temp = new_event->get_buff();		int size = new_event->get_size();		(*video_send_buff_sema)++;		memcpy( video_buff[video_frame]->buff_ptr, temp, size );		video_buff[video_frame]->buff_size = size;		(*video_send_buff_sema)--;		video_frame = (video_frame+1) % 3;		ready_to_send_video->wakeAll();	}	else	{		if ( e->type() == AUDIO_NET_SEND_EVENT )		{			// 音頻數(shù)據(jù)			capture_event * new_event = (capture_event*) e;			BUFF * temp = new_event->get_buff();			int size = new_event->get_size();			(*audio_send_buff_sema)++;			memcpy( audio_buff[audio_frame]->buff_ptr, temp, size );			audio_buff[audio_frame]->buff_size = size;			(*audio_send_buff_sema)--;			audio_frame = (audio_frame + 1) % 3;			ready_to_send_audio->wakeAll();		}		else		{			cerr << "Error! You shouldn't be here!" << endl;			cerr << "Error in network_ctrl." << endl;			exit( 1 );		}	}} // }}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费在线观看入口| 视频在线在亚洲| 五月激情六月综合| 国产美女一区二区三区| 色视频一区二区| 久久综合999| 亚洲bt欧美bt精品| 91女神在线视频| 久久色在线观看| 视频一区欧美日韩| 色妹子一区二区| 国产精品久线观看视频| 久久99久久99精品免视看婷婷 | 日韩中文字幕91| 91福利精品视频| 中文字幕在线观看不卡视频| 国产一区福利在线| 日韩午夜精品电影| 婷婷久久综合九色国产成人| 91麻豆成人久久精品二区三区| 国产午夜亚洲精品不卡| 美女视频一区二区三区| 欧美精品1区2区3区| 一区二区成人在线视频| 91原创在线视频| 17c精品麻豆一区二区免费| 国产成人av影院| 国产欧美一区二区精品性色超碰| 性久久久久久久久| 欧美日本免费一区二区三区| 一区二区三区在线免费视频| 色婷婷久久99综合精品jk白丝 | 日韩一区二区精品葵司在线| 亚洲高清视频在线| 欧美日韩视频在线第一区 | 一本大道久久精品懂色aⅴ| 国产欧美日韩三级| 高清免费成人av| 国产精品欧美经典| 91在线你懂得| 亚洲精品欧美专区| 欧美无砖砖区免费| 日韩主播视频在线| 日韩午夜三级在线| 国产高清在线观看免费不卡| 亚洲国产成人在线| 色哟哟精品一区| 亚洲一二三级电影| 日韩一区二区精品| 国产精品一卡二| 国产精品美女www爽爽爽| 日本高清不卡在线观看| 亚洲精品一区二区三区四区高清| 亚洲精品亚洲人成人网在线播放| 国产在线麻豆精品观看| 欧美猛男gaygay网站| 中文字幕在线不卡一区二区三区| 青青草国产成人av片免费| 一本大道av伊人久久综合| 2020国产精品久久精品美国| 亚洲一区二区三区激情| 99久久免费视频.com| 日韩美女视频一区二区在线观看| 亚洲一区二区三区免费视频| 99国产精品国产精品毛片| 国产视频视频一区| 久久精品噜噜噜成人88aⅴ| 欧美乱妇20p| 亚洲va在线va天堂| 欧美日韩精品一区视频| 亚洲男同1069视频| 亚洲人成小说网站色在线| 99久久久精品| 日韩vs国产vs欧美| 国产精品网曝门| 制服.丝袜.亚洲.中文.综合| 成人精品一区二区三区中文字幕| 亚洲va天堂va国产va久| 国产精品少妇自拍| 欧美日本一区二区三区| 不卡在线观看av| 麻豆国产精品一区二区三区| 亚洲欧美自拍偷拍色图| 日韩欧美另类在线| 在线观看视频欧美| 丰满少妇久久久久久久| 日本不卡视频在线观看| 亚洲另类春色国产| 久久精品人人做| 日韩一区二区麻豆国产| 在线观看日韩精品| av激情综合网| 色又黄又爽网站www久久| 日本v片在线高清不卡在线观看| 中文字幕一区二区三区乱码在线| 精品免费视频.| 欧美日韩dvd在线观看| 一本色道久久综合精品竹菊| 国产精品一区久久久久| 麻豆国产精品视频| 日韩精品视频网站| 亚洲午夜电影在线观看| 亚洲欧洲国产日本综合| 国产网站一区二区三区| 欧美精品一区男女天堂| 欧美一区在线视频| 在线电影国产精品| 欧美三级韩国三级日本一级| 91激情五月电影| 色综合天天狠狠| 91亚洲精品一区二区乱码| 粉嫩绯色av一区二区在线观看| 国产一区免费电影| 国产精品中文有码| 国产在线精品视频| 国产剧情av麻豆香蕉精品| 久久99精品久久久久久久久久久久| 欧美96一区二区免费视频| 日韩高清国产一区在线| 日韩电影一区二区三区四区| 三级影片在线观看欧美日韩一区二区 | 9人人澡人人爽人人精品| 欧美激情在线一区二区三区| 99re这里只有精品视频首页| 图片区小说区区亚洲影院| 久久久亚洲欧洲日产国码αv| 欧洲一区二区三区在线| 99视频在线精品| 国产综合色视频| 视频一区二区三区入口| 亚洲视频在线一区观看| 久久综合九色综合97婷婷女人| 欧洲一区在线观看| 国产成人自拍在线| 日本sm残虐另类| 亚洲男人的天堂在线观看| 精品乱码亚洲一区二区不卡| 欧美三区免费完整视频在线观看| 成人三级在线视频| 精品一区二区成人精品| 视频一区在线视频| 亚洲精品久久久久久国产精华液| 国产人久久人人人人爽| 精品国产一区二区在线观看| 欧美挠脚心视频网站| 色猫猫国产区一区二在线视频| 成人高清视频在线| 粉嫩久久99精品久久久久久夜| 国产麻豆欧美日韩一区| 激情都市一区二区| 极品少妇一区二区三区精品视频| 日韩二区三区四区| 日本sm残虐另类| 麻豆精品久久久| 黄一区二区三区| 国产美女精品在线| 国产成人免费网站| 国产盗摄精品一区二区三区在线| 国产一区 二区 三区一级| 精品一二线国产| 美女一区二区在线观看| 韩国理伦片一区二区三区在线播放 | 国产精品麻豆久久久| 国产精品美女www爽爽爽| 国产精品短视频| 依依成人精品视频| 亚洲一区二区三区视频在线播放 | 国产伦理精品不卡| 国产91高潮流白浆在线麻豆 | 色综合婷婷久久| 欧美日韩一区 二区 三区 久久精品 | 日韩一区二区不卡| 久久久影视传媒| 国产精品不卡一区二区三区| 亚洲欧美日韩国产综合在线| 亚洲国产视频一区| 精品一区精品二区高清| 国产一区在线精品| 99精品欧美一区二区三区小说| 91福利小视频| 精品久久久久av影院| 国产精品久99| 亚洲一二三四在线观看| 久久成人免费电影| 播五月开心婷婷综合| 欧美日韩综合在线| 久久精品欧美一区二区三区麻豆| 亚洲人成小说网站色在线| 免费高清不卡av| 成人激情校园春色| 91精品国产综合久久蜜臀| 欧美国产精品v| 亚洲国产成人av好男人在线观看| 男人操女人的视频在线观看欧美| 国产成都精品91一区二区三| 91激情五月电影| www日韩大片| 亚洲一区二区视频在线观看| 国产成人啪免费观看软件| 欧美三级韩国三级日本三斤|