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

📄 tvpinvideo.cpp

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

// Video Pin
CTVStreamSourceVideoPin::CTVStreamSourceVideoPin(HRESULT *phr, CSource *pFilter)
	: CTVStreamSourcePin(NAME("Chaos Filter Video Pin"), phr, pFilter, false)
{

	
}
//
CTVStreamSourceVideoPin::~CTVStreamSourceVideoPin() 
{
}
//
HRESULT CTVStreamSourceVideoPin::ChangeStop()
{
	return NOERROR;
}
//
HRESULT CTVStreamSourceVideoPin::ChangeRate()
{
	return NOERROR;
}
//
HRESULT CTVStreamSourceVideoPin::SeekTime(REFERENCE_TIME rtPos)
{
	SetSeekData(rtPos);
	//
	return S_FALSE;
}
//
STDMETHODIMP CTVStreamSourceVideoPin::NonDelegatingQueryInterface(REFIID riid, void ** ppv) 
{
	CheckPointer(ppv, E_POINTER);
	return CTVStreamSourcePin::NonDelegatingQueryInterface(riid, ppv);
}
//
HRESULT CTVStreamSourceVideoPin::ChangeStart()
{
	if (m_pFilter && m_pFilter->m_pComm)
		return NOERROR;
	//
	if (ThreadExists()) 
    {
        DeliverBeginFlush();
		//
	    Stop();
        // complete the flush
        DeliverEndFlush();	
	    // restart
		Run();
       
    }
	//
	return NOERROR;
}
//
HRESULT CTVStreamSourceVideoPin::OnThreadStartPlay(void) 
{
	m_pFilter->SetBaseRef(_I64_MAX);
	//
	SetSeekData(m_rtStart + m_llBaseTime);
	//
    return CTVStreamSourcePin::OnThreadStartPlay();
}

HRESULT CTVStreamSourceVideoPin::OnThreadDestroy(void) 
{
	return  CTVStreamSourcePin::OnThreadDestroy();
}
//
HRESULT CTVStreamSourceVideoPin::Active(void)
{
	return CSourceStream::Active();
}

void	CTVStreamSourceVideoPin::RawSync(LONGLONG start)
{
	LONGLONG m_audiotime = m_pFilter->GetRawAudioRef();
	//如果videopin太快,则拖延一下video的行为
	if(m_audiotime != _I64_MAX && (start > m_audiotime) && (start - m_audiotime > 50000000))
	{
		Sleep(1000);
	}
}

⌨️ 快捷键说明

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