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

📄 rtpjitterbuffer.h

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

#ifndef AFX_RTPJITTERBUFFER_H__6EA27482_0A63_473E_9EBD_03F510481719__INCLUDED_
#define AFX_RTPJITTERBUFFER_H__6EA27482_0A63_473E_9EBD_03F510481719__INCLUDED_

#pragma warning(disable:4786)

#include <map>
#include "AudioTransformer.h"

#define DEFAULT_SILENCE_THRESHOLD 15

class RTPAudioStream;

class RTPJitterBuffer :	public AudioTransformer
{
public:
	RTPJitterBuffer();
	~RTPJitterBuffer();
	int SetTraceLevel();
	int SetJitterBufferDepth(int depth);
	int SetOutputDuration(int outputDuration);
	virtual int StartTransform();
	virtual int StopTransform();
protected:
	virtual int RenderAudioSamples(std::vector<std::pair<AudioSample *, AudioSource *> > &data);
	virtual int GenerateData(AudioSample **ppAudioSample);
	virtual int TransformAudioSamples(std::vector<std::pair<AudioSample *, AudioSource *> > &data, AudioSample **ppAudioSample);
private:
	int ChooseNewActiveAudioStream();
	int Clear();
private:
	typedef std::map<unsigned long, RTPAudioStream *> AUDIO_STREAM_MAP;
	RTPAudioStream *activeAudioStream;
	int jitterBufferDepth;
	int outputDuration;
	bool bRunning;
	CRITICAL_SECTION rtpAudioStreamsMutex;
	CRITICAL_SECTION stateMutex;
	AUDIO_STREAM_MAP rtpAudioStreams;
};

#endif // !defined(AFX_RTPJITTERBUFFER_H__6EA27482_0A63_473E_9EBD_03F510481719__INCLUDED_)

⌨️ 快捷键说明

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