|
전송 랜더필터를 만들고 있습니다.
핀에서 데이터를 수신받는 Receive 부분에서 수정을 해주어야할것같아서 소스를 짜고있습니다.
일단 네트워크 전송을 하는 클래스를 하나 만들었습니다.(TCP입니다.)
그 클래스를 상속한 상태에서 아래와같이 하고있습니다.
HRESULT CTestNetRenderFilter::Receive(IMediaSample *pSample)
{
CAutoLock cObjectReceiveLock(&m_csReceive);
HRESULT hr = S_OK;
PBYTE pData;
hr=pSample->GetPointer(&pData);//데이터를 가져오고.
if(FAILED(hr))
return hr;
LONG lActualDataLength = pSample->GetActualDataLength(); //크기를 얻고
// 전송?????
// Store the media times from this sample
if (m_pPosition)
{
//미디어 검색 처리를 하기 위한것.
hr = m_pPosition->RegisterMediaTime(pSample);
}
return hr;
}
데이터를 가져오고 바로 전송을 하려 합니다.
이것이 맞는지는 잘 모르겠습니다만... 틀린점이 있다면 지적부탁드립니다...
그리고 ffdshow인코더를 앞에 붙이고 이것 랜더필터를 붙일 예정인데. 따로 해주어야되는 일이 있나요??
그리고 이것을 전송하고 전송한후 제작한 소스필터에서 이것을 수신하게 하려면
어떤것을 추가로 보내주어야 하나요? 미디어타입 협상시 했던것을 그대로 넘기기만 하면 되는건가요??
초보라 모르는게 너무 많네요...
고수분들 부탁드립니다...
|