From 9c231b6a65aeaae76a286be1663e151b82b6e827 Mon Sep 17 00:00:00 2001 From: fritsch Date: Sun, 7 Dec 2014 21:11:19 +0100 Subject: [PATCH 1/3] VAAPI: Don't return false when vlVaQueryDisplayAttributes returns empty --- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp index 369bbde5a51a1..c001ff8df2c9d 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp @@ -150,9 +150,12 @@ bool CVAAPIContext::CreateContext() CLog::Log(LOGDEBUG, "VAAPI - driver in use: %s", vaQueryVendorString(m_display)); QueryCaps(); - if (!m_profileCount || !m_attributeCount) + if (!m_profileCount) return false; + if (!m_attributeCount) + CLog::Log(LOGWARNING, "VAAPI - driver did not return anything from vlVaQueryDisplayAttributes"); + return true; } From 1c5c60fb6ceafd1b5e5de52143ba556ad1a418da Mon Sep 17 00:00:00 2001 From: fritsch Date: Tue, 9 Dec 2014 14:44:24 +0100 Subject: [PATCH 2/3] VAAPI: Report failure when VPP is not usable --- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp index c001ff8df2c9d..a6f60b2b80efa 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp @@ -2480,6 +2480,9 @@ bool CVppPostproc::PreInit(CVaapiConfig &config, SDiMethods *methods) // create config if (!CheckSuccess(vaCreateConfig(m_config.dpy, VAProfileNone, VAEntrypointVideoProc, NULL, 0, &m_configId))) { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "CVppPostproc::PreInit - VPP init failed"); + return false; } @@ -2494,6 +2497,9 @@ bool CVppPostproc::PreInit(CVaapiConfig &config, SDiMethods *methods) nb_surfaces, NULL, 0))) { + if (g_advancedSettings.CanLogComponent(LOGVIDEO)) + CLog::Log(LOGDEBUG, "CVppPostproc::PreInit - VPP init failed"); + return false; } for (int i=0; i Date: Mon, 22 Dec 2014 20:40:56 +0100 Subject: [PATCH 3/3] VAAPI: Log the function of the CheckSuccess that failed --- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp index a6f60b2b80efa..58fa1a37f9d17 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp @@ -243,7 +243,7 @@ bool CVAAPIContext::CheckSuccess(VAStatus status) { if (status != VA_STATUS_SUCCESS) { - CLog::Log(LOGERROR, "VAAPI error: %s", vaErrorStr(status)); + CLog::Log(LOGERROR, "VAAPI::%s error: %s", __FUNCTION__, vaErrorStr(status)); return false; } return true; @@ -943,7 +943,7 @@ bool CDecoder::CheckSuccess(VAStatus status) { if (status != VA_STATUS_SUCCESS) { - CLog::Log(LOGERROR, "VAAPI - error: %s", vaErrorStr(status)); + CLog::Log(LOGERROR, "VAAPI::%s - error: %s", __FUNCTION__, vaErrorStr(status)); m_ErrorCount++; if(m_DisplayState == VAAPI_OPEN) @@ -2309,7 +2309,7 @@ bool COutput::CheckSuccess(VAStatus status) { if (status != VA_STATUS_SUCCESS) { - CLog::Log(LOGERROR, "VAAPI - Error: %s(%d)", vaErrorStr(status), status); + CLog::Log(LOGERROR, "VAAPI::%s - Error: %s(%d)", __FUNCTION__, vaErrorStr(status), status); m_vaError = true; return false; } @@ -2930,7 +2930,7 @@ bool CVppPostproc::CheckSuccess(VAStatus status) { if (status != VA_STATUS_SUCCESS) { - CLog::Log(LOGERROR, "VAAPI - Error: %s(%d)", vaErrorStr(status), status); + CLog::Log(LOGERROR, "VAAPI::%s - Error: %s(%d)", __FUNCTION__, vaErrorStr(status), status); return false; } return true;