diff options
author | Kacper Michajłow <kasper93@gmail.com> | 2017-08-14 15:33:53 +0300 |
---|---|---|
committer | Kacper Michajłow <kasper93@gmail.com> | 2017-08-15 23:23:00 +0300 |
commit | bf13748b32a653595d290e4eaeedcf3dba4200f5 (patch) | |
tree | a1d6f1f8b360c80f3669128694354b7bb9eb55bc | |
parent | 2034ddd99b0ec26270999fbb11f1fb03202d27ae (diff) |
LAV Filters: Recognize new D3D11 decoder.
-rw-r--r-- | src/mpc-hc/FGFilterLAV.cpp | 13 | ||||
-rw-r--r-- | src/mpc-hc/MainFrm.cpp | 4 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/mpc-hc/FGFilterLAV.cpp b/src/mpc-hc/FGFilterLAV.cpp index fe50b712a..2c147c192 100644 --- a/src/mpc-hc/FGFilterLAV.cpp +++ b/src/mpc-hc/FGFilterLAV.cpp @@ -558,18 +558,21 @@ void CFGFilterLAVVideo::ShowPropertyPages(CWnd* pParendWnd) LPCTSTR CFGFilterLAVVideo::GetUserFriendlyDecoderName(const CString& decoderName)
{
- static std::pair<LPCTSTR, LPCTSTR> userFriendlyDecoderNames[] = {
+ static constexpr std::pair<LPCTSTR, LPCTSTR> userFriendlyDecoderNames[] = {
std::make_pair(_T("avcodec"), _T("FFmpeg")),
std::make_pair(_T("dxva2n"), _T("DXVA2 Native")),
std::make_pair(_T("dxva2cb"), _T("DXVA2 Copy-back")),
std::make_pair(_T("dxva2cb direct"), _T("DXVA2 Copy-back (Direct)")),
std::make_pair(_T("cuvid"), _T("NVIDIA CUVID")),
- std::make_pair(_T("quicksync"), _T("Intel QuickSync"))
+ std::make_pair(_T("quicksync"), _T("Intel QuickSync")),
+ std::make_pair(_T("d3d11 cb direct"), _T("D3D11 Copy-back (Direct)")),
+ std::make_pair(_T("d3d11 cb"), _T("D3D11 Copy-back")),
+ std::make_pair(_T("d3d11 native"), _T("D3D11 Native")),
};
- for (int i = 0; i < _countof(userFriendlyDecoderNames); i++) {
- if (decoderName == userFriendlyDecoderNames[i].first) {
- return userFriendlyDecoderNames[i].second;
+ for (const auto& name : userFriendlyDecoderNames) {
+ if (decoderName == name.first) {
+ return name.second;
}
}
diff --git a/src/mpc-hc/MainFrm.cpp b/src/mpc-hc/MainFrm.cpp index f645c54d6..294f36bef 100644 --- a/src/mpc-hc/MainFrm.cpp +++ b/src/mpc-hc/MainFrm.cpp @@ -16685,14 +16685,14 @@ void CMainFrame::UpdateDXVAStatus() // If LAV Video is in the graph, we query it since it's always more reliable than the hook.
if (CComQIPtr<ILAVVideoStatus> pLAVVideoStatus = FindFilter(GUID_LAVVideo, m_pGB)) {
CStringW decoderName = pLAVVideoStatus->GetActiveDecoderName();
- if (decoderName.Find(L"dxva") == 0 || decoderName == L"cuvid" || decoderName == L"quicksync") {
+ if (decoderName != L"avcodec") {
m_HWAccelType = CFGFilterLAVVideo::GetUserFriendlyDecoderName(decoderName);
CString LAVDXVAInfo;
LAVDXVAInfo.Format(_T("LAV Video Decoder (%s)"), m_HWAccelType);
if (!m_bUsingDXVA) { // Don't trust the hook
m_bUsingDXVA = true;
- DXVAInfo.Format(_T("DXVA2 : %s"), LAVDXVAInfo);
+ DXVAInfo.Format(_T("H/W Decoder : %s"), LAVDXVAInfo);
} else {
DXVAInfo.AppendFormat(_T(" [%s]"), LAVDXVAInfo);
}
|