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

📄 tvpinaudio.cpp

📁 mysee网络直播源代码Mysee Lite是Mysee独立研发的网络视频流媒体播放系统。在应有了P2P技术和一系列先进流媒体技术之后
💻 CPP
字号:
#include "stdafx.h"
//
//////////////////////////////////////////////////////////////
// audio

CTVStreamSourceAudioPin::CTVStreamSourceAudioPin(HRESULT *phr, CSource *pFilter)
	: CTVStreamSourcePin(NAME("Chaos Filter Audio Pin"), phr, pFilter, true)
{	
}

HRESULT CTVStreamSourceAudioPin::OnThreadStartPlay(void)    
{	
	m_pFilter->SetBaseRef(_I64_MAX);
	m_pFilter->SetRawAudioRef(_I64_MAX);
	//
	return CTVStreamSourcePin::OnThreadStartPlay();
}

HRESULT CTVStreamSourceAudioPin::OnThreadDestroy(void)
{
	m_pFilter->SetRawAudioRef(_I64_MAX);
	return CTVStreamSourcePin::OnThreadDestroy();
}
//
STDMETHODIMP CTVStreamSourceAudioPin::NonDelegatingQueryInterface(REFIID riid, void ** ppv)
{
	return CTVStreamSourcePin::NonDelegatingQueryInterface(riid,ppv);
}
//IMediaSeeking
HRESULT CTVStreamSourceAudioPin::ChangeStart()
{
	//SetCurrTime(0);
	//SetBaseRef(_I64_MAX);
	if (m_pFilter && m_pFilter->m_pComm)
		return NOERROR;
	//
	if (ThreadExists()) 
	{
		// next time round the loop the worker thread will
		// pick up the position change.
		// We need to flush all the existing data - we must do that here
		// as our thread will probably be blocked in GetBuffer otherwise
		DeliverBeginFlush();

		// make sure we have stopped pushing
		Stop();

		// complete the flush
		DeliverEndFlush();

		// restart
		Run();
	}

	return NOERROR;
}
//
HRESULT CTVStreamSourceAudioPin::ChangeStop()
{
	return NOERROR;
}
//
HRESULT CTVStreamSourceAudioPin::ChangeRate()
{
	return NOERROR;
}
//
HRESULT CTVStreamSourceAudioPin::Active(void)
{
	//SetSeekData(m_rtStart + m_llBaseTime);
	return CSourceStream::Active();
	
}

void	CTVStreamSourceAudioPin::RawSync(LONGLONG start)
{
	m_pFilter->SetRawAudioRef(start);
}

⌨️ 快捷键说明

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