From 133957688487995687b204159d28a9a4ff49b162 Mon Sep 17 00:00:00 2001 From: Armada Date: Thu, 9 May 2013 13:02:37 +0200 Subject: MediaFormats: Exclude non-associable formats from the search for supported extensions unless specified. Fixes #3091 --- src/mpc-hc/MediaFormats.cpp | 8 ++++---- src/mpc-hc/MediaFormats.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mpc-hc/MediaFormats.cpp b/src/mpc-hc/MediaFormats.cpp index fd5db9783..72caa9876 100644 --- a/src/mpc-hc/MediaFormats.cpp +++ b/src/mpc-hc/MediaFormats.cpp @@ -332,19 +332,19 @@ engine_t CMediaFormats::GetEngine(CString path) const return DirectShow; } -bool CMediaFormats::FindExt(CString ext, bool fAudioOnly) const +bool CMediaFormats::FindExt(CString ext, bool fAudioOnly, bool fAssocOnly) const { - return (FindMediaByExt(ext, fAudioOnly) != NULL); + return (FindMediaByExt(ext, fAudioOnly, fAssocOnly) != NULL); } -const CMediaFormatCategory* CMediaFormats::FindMediaByExt(CString ext, bool fAudioOnly) const +const CMediaFormatCategory* CMediaFormats::FindMediaByExt(CString ext, bool fAudioOnly, bool fAssocOnly) const { ext.TrimLeft(_T('.')); if (!ext.IsEmpty()) { for (size_t i = 0; i < GetCount(); i++) { const CMediaFormatCategory& mfc = GetAt(i); - if ((!fAudioOnly || mfc.IsAudioOnly()) && mfc.FindExt(ext)) { + if ((!fAudioOnly || mfc.IsAudioOnly()) && (!fAssocOnly || mfc.IsAssoc()) && mfc.FindExt(ext)) { return &mfc; } } diff --git a/src/mpc-hc/MediaFormats.h b/src/mpc-hc/MediaFormats.h index 40f2f582e..2b14b4942 100644 --- a/src/mpc-hc/MediaFormats.h +++ b/src/mpc-hc/MediaFormats.h @@ -99,8 +99,8 @@ public: bool IsUsingEngine(CString path, engine_t e) const; engine_t GetEngine(CString path) const; - bool FindExt(CString ext, bool fAudioOnly = false) const; - const CMediaFormatCategory* FindMediaByExt(CString ext, bool fAudioOnly = false) const; + bool FindExt(CString ext, bool fAudioOnly = false, bool fAssocOnly = true) const; + const CMediaFormatCategory* FindMediaByExt(CString ext, bool fAudioOnly = false, bool fAssocOnly = true) const; void GetFilter(CString& filter, CAtlArray& mask) const; void GetAudioFilter(CString& filter, CAtlArray& mask) const; -- cgit v1.2.3