From 703b7dce84a52a9f6064769bafe5d67d0bb26607 Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Sun, 2 Feb 2014 12:19:04 +0100 Subject: Block WMP/WMC from overwriting the initial track choice. --- demuxer/LAVSplitter/LAVSplitter.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'demuxer') 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)); -- cgit v1.2.3