Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/filters/parser/BaseSplitter/BaseSplitter.cpp')
-rw-r--r--src/filters/parser/BaseSplitter/BaseSplitter.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/filters/parser/BaseSplitter/BaseSplitter.cpp b/src/filters/parser/BaseSplitter/BaseSplitter.cpp
index 9913c7a75..589dd2d2f 100644
--- a/src/filters/parser/BaseSplitter/BaseSplitter.cpp
+++ b/src/filters/parser/BaseSplitter/BaseSplitter.cpp
@@ -447,7 +447,18 @@ DWORD CBaseSplitterOutputPin::ThreadProc()
m_eEndFlush.Set();
// fix for Microsoft DTV-DVD Video Decoder - video freeze after STOP/PLAY
- if(IsConnected()) {
+ bool iHaaliRenderConnect = false;
+ CComPtr<IPin> pPinTo = this, pTmp;
+ while(pPinTo && SUCCEEDED(pPinTo->ConnectedTo(&pTmp)) && (pPinTo = pTmp)) {
+ pTmp = NULL;
+ CComPtr<IBaseFilter> pBF = GetFilterFromPin(pPinTo);
+ if(GetCLSID(pBF) == CLSID_DXR) { // Haali Renderer
+ iHaaliRenderConnect = true;
+ break;
+ }
+ pPinTo = GetFirstPin(pBF, PINDIR_OUTPUT);
+ }
+ if(IsConnected() && !iHaaliRenderConnect) {
GetConnected()->BeginFlush();
GetConnected()->EndFlush();
}