diff options
Diffstat (limited to 'demuxer')
-rw-r--r-- | demuxer/LAVSplitter/LAVSplitter.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/demuxer/LAVSplitter/LAVSplitter.cpp b/demuxer/LAVSplitter/LAVSplitter.cpp index 592a9cbf..6340e86d 100644 --- a/demuxer/LAVSplitter/LAVSplitter.cpp +++ b/demuxer/LAVSplitter/LAVSplitter.cpp @@ -1115,6 +1115,11 @@ STDMETHODIMP CLAVSplitter::RenameOutputPin(DWORD TrackNumSrc, DWORD TrackNumDst, CheckPointer(m_pDemuxer, E_UNEXPECTED); if (TrackNumSrc == TrackNumDst) return S_OK; + // WMP/WMC like to always enable the first track, overwriting any initial stream choice + // So instead block it from doing anything here. + if (!m_bPlaybackStarted && (m_processName == L"wmplayer.exe" || m_processName == L"ehshell.exe")) + return S_OK; + CLAVOutputPin* pPin = GetOutputPin(TrackNumSrc); DbgLog((LOG_TRACE, 20, L"::RenameOutputPin() - Switching %s Stream %d to %d", CBaseDemuxer::CStreamList::ToStringW(pPin->GetPinType()), TrackNumSrc, TrackNumDst)); |