20 __inout_opt LPUNKNOWN pUnk,
25 m_bEOSDelivered(FALSE),
26 m_bQualityChanged(FALSE),
27 m_bSampleSkipped(FALSE)
36 __inout_opt LPUNKNOWN pUnk,
41 m_bEOSDelivered(FALSE),
42 m_bQualityChanged(FALSE),
43 m_bSampleSkipped(FALSE)
65 UNREFERENCED_PARAMETER(pIn);
66 UNREFERENCED_PARAMETER(pOut);
67 DbgBreak(
"CTransformFilter::Transform() should never be called");
148 if (0==lstrcmpW(Id,L
"In")) {
150 }
else if (0==lstrcmpW(Id,L
"Out")) {
154 return VFW_E_NOT_FOUND;
157 HRESULT
hr = NOERROR;
190 UNREFERENCED_PARAMETER(dir);
191 UNREFERENCED_PARAMETER(pPin);
201 UNREFERENCED_PARAMETER(dir);
211 UNREFERENCED_PARAMETER(direction);
212 UNREFERENCED_PARAMETER(pReceivePin);
222 UNREFERENCED_PARAMETER(direction);
223 UNREFERENCED_PARAMETER(pmt);
232 IMediaSample *pOutSample;
243 if (!(pProps->dwSampleFlags & AM_SAMPLE_SPLICEPOINT)) {
244 dwFlags |= AM_GBF_NOTASYNCPOINT;
250 , pProps->dwSampleFlags & AM_SAMPLE_TIMEVALID ?
251 &pProps->tStart :
NULL
252 , pProps->dwSampleFlags & AM_SAMPLE_STOPVALID ?
253 &pProps->tStop :
NULL
256 *ppOutSample = pOutSample;
262 IMediaSample2 *pOutSample2;
263 if (SUCCEEDED(pOutSample->QueryInterface(IID_IMediaSample2,
264 (
void **)&pOutSample2))) {
266 AM_SAMPLE2_PROPERTIES OutProps;
268 FIELD_OFFSET(AM_SAMPLE2_PROPERTIES, tStart), (PBYTE)&OutProps)
270 OutProps.dwTypeSpecificFlags = pProps->dwTypeSpecificFlags;
271 OutProps.dwSampleFlags =
272 (OutProps.dwSampleFlags & AM_SAMPLE_TYPECHANGED) |
273 (pProps->dwSampleFlags & ~AM_SAMPLE_TYPECHANGED);
274 OutProps.tStart = pProps->tStart;
275 OutProps.tStop = pProps->tStop;
276 OutProps.cbData = FIELD_OFFSET(AM_SAMPLE2_PROPERTIES, dwStreamId);
277 hr = pOutSample2->SetProperties(
278 FIELD_OFFSET(AM_SAMPLE2_PROPERTIES, dwStreamId),
281 if (pProps->dwSampleFlags & AM_SAMPLE_DATADISCONTINUITY) {
284 pOutSample2->Release();
286 if (pProps->dwSampleFlags & AM_SAMPLE_TIMEVALID) {
287 pOutSample->SetTime(&pProps->tStart,
290 if (pProps->dwSampleFlags & AM_SAMPLE_SPLICEPOINT) {
291 pOutSample->SetSyncPoint(TRUE);
293 if (pProps->dwSampleFlags & AM_SAMPLE_DATADISCONTINUITY) {
294 pOutSample->SetDiscontinuity(TRUE);
299 LONGLONG MediaStart, MediaEnd;
300 if (pSample->GetMediaTime(&MediaStart,&MediaEnd) == NOERROR) {
301 pOutSample->SetMediaTime(&MediaStart,&MediaEnd);
314 if (pProps->dwStreamId != AM_STREAM_MEDIA) {
319 IMediaSample * pOutSample;
361 pOutSample->Release();
374 pOutSample->Release();
385 UNREFERENCED_PARAMETER(q);
397 HRESULT
hr = NOERROR;
411 HRESULT
hr = NOERROR;
449 if (
m_State == State_Stopped) {
491 HRESULT
hr = NOERROR;
518 if (
m_State == State_Stopped) {
536 REFERENCE_TIME tStart,
537 REFERENCE_TIME tStop,
552 return VFW_E_NOT_CONNECTED;
563 return VFW_E_WRONG_STATE;
566 return VFW_E_RUNTIME_ERROR;
581 __in_opt LPCTSTR pObjectName,
583 __inout HRESULT * phr,
584 __in_opt LPCWSTR
pName)
585 :
CBaseInputPin(pObjectName, pTransformFilter, &pTransformFilter->m_csFilter, phr,
pName)
593 __in_opt LPCSTR pObjectName,
595 __inout HRESULT * phr,
596 __in_opt LPCWSTR
pName)
597 :
CBaseInputPin(pObjectName, pTransformFilter, &pTransformFilter->m_csFilter, phr,
pName)
715 return VFW_E_NOT_CONNECTED;
737 return VFW_E_NOT_CONNECTED;
774 REFERENCE_TIME tStart,
775 REFERENCE_TIME tStop,
794 __in_opt LPCTSTR pObjectName,
796 __inout HRESULT * phr,
797 __in_opt LPCWSTR pPinName)
798 :
CBaseOutputPin(pObjectName, pTransformFilter, &pTransformFilter->m_csFilter, phr, pPinName),
801 DbgLog((
LOG_TRACE,2,TEXT(
"CTransformOutputPin::CTransformOutputPin")));
808 __in_opt LPCSTR pObjectName,
810 __inout HRESULT * phr,
811 __in_opt LPCWSTR pPinName)
812 :
CBaseOutputPin(pObjectName, pTransformFilter, &pTransformFilter->m_csFilter, phr, pPinName),
815 DbgLog((
LOG_TRACE,2,TEXT(
"CTransformOutputPin::CTransformOutputPin")));
825 DbgLog((
LOG_TRACE,2,TEXT(
"CTransformOutputPin::~CTransformOutputPin")));
840 if (
riid == IID_IMediaPosition ||
riid == IID_IMediaSeeking) {
932 HRESULT
hr = NOERROR;
945 m_pInput->CurrentMediaType(),pmtOut))) {
946 DbgLog((
LOG_ERROR,0,TEXT(
"*** This filter is accepting an output media type")));
947 DbgLog((
LOG_ERROR,0,TEXT(
" that it can't currently transform to. I hope")));
948 DbgLog((
LOG_ERROR,0,TEXT(
" it's smart enough to reconnect its input.")));
960 IMemAllocator * pAllocator,
961 __inout ALLOCATOR_PROPERTIES* pProp)
982 return VFW_S_NO_MORE_ITEMS;
995 UNREFERENCED_PARAMETER(pSender);
1016 #pragma warning(disable:4514)