예제 #1
0
HRESULT CSubtitleInputPin::BreakConnect()
{
    RemoveSubStream(m_pSubStream);
    m_pSubStream = NULL;

    ASSERT(IsStopped());

    return __super::BreakConnect();
}
예제 #2
0
HRESULT CSubtitleInputPin::BreakConnect()
{
    InvalidateSamples();

    RemoveSubStream(m_pSubStream);
    m_pSubStream = nullptr;

    ASSERT(IsStopped());

    return __super::BreakConnect();
}
예제 #3
0
STDMETHODIMP CSubtitleInputPin::ReceiveConnection(IPin* pConnector, const AM_MEDIA_TYPE* pmt)
{
    if (m_Connected) {
        RemoveSubStream(m_pSubStream);
        m_pSubStream = nullptr;

        m_Connected->Release();
        m_Connected = nullptr;
    }

    return __super::ReceiveConnection(pConnector, pmt);
}
예제 #4
0
HRESULT CSubtitleInputPin::BreakConnect()
{
    CAutoLock cAutoLock(m_pSubLock);
    XY_LOG_DEBUG("");
    if (m_helper)
    {
        RemoveSubStream(m_helper->GetSubStream());
        delete m_helper; m_helper = NULL;
    }
    ASSERT(IsStopped());

    return __super::BreakConnect();
}
예제 #5
0
STDMETHODIMP CSubtitleInputPin::ReceiveConnection(IPin* pConnector, const AM_MEDIA_TYPE* pmt)
{
    CAutoLock cAutoLock(m_pSubLock);
    XY_LOG_DEBUG(XY_LOG_VAR_2_STR(pConnector)<<XY_LOG_VAR_2_STR(pmt));
	if(m_Connected)
	{
        RemoveSubStream(m_helper->GetSubStream());
        delete m_helper; m_helper = NULL;

        m_Connected->Release();
        m_Connected = NULL;
	}

	return __super::ReceiveConnection(pConnector, pmt);
}