summaryrefslogtreecommitdiff
path: root/avstream/sampledevicemft/basepin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'avstream/sampledevicemft/basepin.cpp')
-rw-r--r--avstream/sampledevicemft/basepin.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/avstream/sampledevicemft/basepin.cpp b/avstream/sampledevicemft/basepin.cpp
index 80647f39..5e4ba038 100644
--- a/avstream/sampledevicemft/basepin.cpp
+++ b/avstream/sampledevicemft/basepin.cpp
@@ -644,9 +644,11 @@ STDMETHODIMP COutPin::ProcessOutput(_In_ DWORD dwFlags,
}
//
// Any processing before we pass the sample to further in the pipeline should be done here
- // PROCESSSAMPLE(pSample);
+ // PROCESSSAMPLE(pSample); There is a bug in the pipeline and to circumvent that we have to
+ // keep a reference on the sample. The pipeline is not releasing a reference when the sample
+ // is fed in ProcessInput. We are explicitly releasing it for the pipeline.
//
- pOutputSample->pSample = spSample.Get();
+ pOutputSample->pSample = spSample.Detach();
pOutputSample->dwStatus = S_OK;
done:
return hr;