diff options
author | davilla <davilla@svn> | 2010-10-17 23:39:23 +0000 |
---|---|---|
committer | davilla <davilla@svn> | 2010-10-17 23:39:23 +0000 |
commit | 2d4b88a0aec5d6b5723b49bb6a1329cd2b100743 (patch) | |
tree | 5380d6905b7c9e5ba3de25d01135176a194dd2d7 | |
parent | e0fc102bdc8b2141c58df394bd6f05c02fc9bbda (diff) |
[vda] updated to use CDVDCodecUtils::IsVP3CompatibleWidth
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@34809 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r-- | xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp index b694fd0668..f99d2dbfc1 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp @@ -28,6 +28,7 @@ #include "GUISettings.h" #include "DVDClock.h" #include "DVDStreamInfo.h" +#include "DVDCodecUtils.h" #include "DVDVideoCodecVDA.h" #include "Codecs/DllAvFormat.h" #include "Codecs/DllSwScale.h" @@ -427,23 +428,10 @@ bool CDVDVideoCodecVDA::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) extrasize = hints.extrasize; extradata = (uint8_t*)hints.extradata; - if (Cocoa_GPUForDisplayIsNvidiaPureVideo3()) + if (Cocoa_GPUForDisplayIsNvidiaPureVideo3() && !CDVDCodecUtils::IsVP3CompatibleWidth(width)) { - // known hardware limitation of purevideo 3. (the Nvidia 9400 is a purevideo 3 chip) - // from nvidia's linux vdpau README: All current third generation PureVideo hardware - // (G98, MCP77, MCP78, MCP79, MCP7A) cannot decode H.264 for the following horizontal resolutions: - // 769-784, 849-864, 929-944, 1009–1024, 1793–1808, 1873–1888, 1953–1968 and 2033-2048 pixel. - // This relates to the following macroblock sizes. - int macroblocksize[] = {49, 54, 59, 64, 113, 118, 123, 128}; - for (size_t i = 0; i < sizeof(macroblocksize)/sizeof(macroblocksize[0]); i++) - { - if (((width + 15) / 16) == macroblocksize[i]) - { - CLog::Log(LOGNOTICE, "%s - Nvidia 9400 GPU hardware limitation, cannot decode a width of %d", - __FUNCTION__, width); - return false; - } - } + CLog::Log(LOGNOTICE, "%s - Nvidia 9400 GPU hardware limitation, cannot decode a width of %d", __FUNCTION__, width); + return false; } switch (hints.codec) |