diff options
author | Aleksoid <aleksoid@users.sourceforge.net> | 2011-11-21 10:28:32 +0400 |
---|---|---|
committer | Aleksoid <aleksoid@users.sourceforge.net> | 2011-11-21 10:28:32 +0400 |
commit | c45c78aa9010dbb3bb6bdf5aad35713c04f6daea (patch) | |
tree | 6d595124cdb8d17bec57a92ff13cb885b9b91502 /src | |
parent | 27bf62fe16a2847ad171afc43cfe4facfc0b7759 (diff) |
Fix : issue with black screen on Haali render at file open, thanks to judelaw;
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@3846 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src')
-rw-r--r-- | src/filters/parser/BaseSplitter/BaseSplitter.cpp | 13 |
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();
}
|