⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network_audio_recv_thread.h

📁 嵌入式linux系统的网络编程(C++) 在ARM上实现视频会议 此程序获得全国研究生电子大赛一等奖 压缩包内为全部源码
💻 H
字号:
///////////////////////////////////////////////////////// FileName:	network_audio_recv_thread.h// Author:		b1gm0use// Project:		myvideo#ifndef _NETWORK_AUDIO_RECV_THREAD_H_#define _NETWORK_AUDIO_RECV_THREAD_H_#include <qthread.h>#include <unistd.h>#include "common.h"#include "network.h"class network_ctrl;class sockaddr_in;class avi;class packet_head_t;// 继承自QThread类// 从网络上取得音频数据,并发送到播放模块class network_audio_recv_thread : public QThread{public:	// 构造函数	network_audio_recv_thread ( avi * avi_ptr_in, network_ctrl * nc_in, 			unsigned int stackSize = 0 );	// 析构函数	~network_audio_recv_thread ( void );	// 运行部分,线程代码在这里	virtual void run ( void );private:		// 连接初始化,创建套接字	void connect_init ( void );	// 处理连接后的数据接收工作	void connect_handle ( void );	// 组播初始化,创建套接字	void connect_init_mc ( void );	// 处理组播连接后的数据接收工作	void connect_handle_mc ( void );private:	// 上层network_ctrl对象指针	network_ctrl * nc;	// 音频连接的套接字	int fd_audio;	// 缓冲读入的数据	BUFF * audio_cap_buff[3];	// 指示当前使用的是第几个缓冲区	int audio_frame;	// 用于向网络发送数据和接收数据的两个缓冲区	BUFF * recv_buff;	BUFF * send_buff;	// 用于整合读出的数据	BUFF * merge_buff;	// 可能接收到的数据帧的最大值	int max_size;	// 表示连接的结构	sockaddr_in * addr_accept;	socklen_t * acclen;	// 指示下一个要发送的数据包的序号	int packet_num;	// 指示期待得到的下一个数据包的序号	int expect_num;	int sub_expect_num;	// 指向avi的指针	avi * avi_ptr;};#endif // _NETWORK_AUDIO_RECV_THREAD_H_

⌨️ 快捷键说明

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