network_video_send.cpp

来自「嵌入式linux系统的网络编程(C++) 在ARM上实现视频会议源码」· C++ 代码 · 共 82 行

CPP
82
字号
///////////////////////////////////////////////////////// FileName:	network_video_send.cpp// Author:		b1gm0use// Project:		myvideo#include <iostream>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <unistd.h>#include <qapplication.h>#include <qsemaphore.h>#include "network_video_send.h"#include "network.h"#include "capture_event.h"#include "video.h"#include "avi.h"using namespace std;///////////////////////////////////////////////////////// Public Functions///////////////////////////////////////////////////////// 构造函数network_video_send::network_video_send ( avi * avi_ptr_in ) // {{{{	verbose_output( 2, "create network_video_send" );	cfd = 0;		last_buff = NULL;	avi_ptr = avi_ptr_in;} // }}}network_video_send::~network_video_send ( void ) // {{{{	delete [] last_buff;} // }}}// 初始化函数int network_video_send::init ( void ) // {{{{	verbose_output( 2, "init network_video_send" );	last_buff = new BUFF [ avi_ptr->video_opt.min_height * avi_ptr->video_opt.factor * avi_ptr->video_opt.min_width * avi_ptr->video_opt.factor * 3 ];	return SUCCEED;} // }}}	// 向网络上发送图像int network_video_send::send_image ( const BUFF * buff, int size ) // {{{{	verbose_output( 2, "network_video_send send_image" );	memcpy( last_buff, buff, size );	capture_event new_event( VIDEO_NET_SEND_EVENT, last_buff, size );	if ( NULL != avi_ptr->network_ctrl_ptr )	{		(*(avi_ptr->send_image_semaphore))++;		QApplication::sendEvent( (QObject *) avi_ptr->network_ctrl_ptr, (QEvent *) &new_event );			(*(avi_ptr->send_image_semaphore))--;	}	verbose_output( 3, "send video frame ok" );	return SUCCEED;} // }}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?