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

📄 rtpaudiosource.h

📁 rtp在linux下的实现
💻 H
字号:
// RTPAudioSource.h: interface for the RTPAudioSource class.
//
//////////////////////////////////////////////////////////////////////

#ifndef AFX_RTPAUDIOSOURCE_H__9A0DE2C0_90A9_4F86_B13C_58D1181EB505__INCLUDED_
#define AFX_RTPAUDIOSOURCE_H__9A0DE2C0_90A9_4F86_B13C_58D1181EB505__INCLUDED_

#include "AudioSource.h"
#include "Parameters.h"

#ifndef WIN32
#include "linTypes.h"
#include "UdpStack.hxx"
#endif

enum Modes {ACTIVE_MODE=0, PASSIVE_MODE};

class RTPAudioSource : public AudioSource
{
public:
	RTPAudioSource();
	virtual ~RTPAudioSource();
	int SetReceivePort(unsigned short receivePort);
	int StartSource();
	int StopSource();
#ifdef WIN32
	int SourceThreadStarted(HANDLE sourceThreadHandle, DWORD sourceThreadID);
	int SourceThreadStopped(HANDLE sourceThreadHandle, DWORD sourceThreadID);
#else
	int SourceThreadStarted(vthread_t sourceThreadHandle, DWORD sourceThreadID);
	int SourceThreadStopped(vthread_t sourceThreadHandle, DWORD sourceThreadID);
#endif
	int UnprepareSource();	// if the filter is in ACTIVE_MODE, then it waits on a socket
							// so user needs to call UnprepareSource (which closes the socket)
							// before the SourceThreadProc can end. Hence this method is public
protected:
	int GenerateData(AudioSample **ppAudioSample);
	int SetTraceLevel();
private:
	int CreateSocket();
	int CloseSocket();
	int PrepareSource();
private:
#ifdef WIN32
	SOCKET rtpSocket;
#else
	int rtpSocket;
#endif
	unsigned short receivePort;
	char receiveBuffer[RTPAUDIOSOURCE_RECEIVEBUFFER_SIZE];
	int mode;
	bool bRunning;
	CRITICAL_SECTION filterMutex;
};

#endif // !defined(AFX_RTPAUDIOSOURCE_H__9A0DE2C0_90A9_4F86_B13C_58D1181EB505__INCLUDED_)

⌨️ 快捷键说明

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