rtpjitterbuffer.h

来自「rtp在linux下的实现」· C头文件 代码 · 共 46 行

H
46
字号
// 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 + =
减小字号Ctrl + -
显示快捷键?