aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoakim Plate <elupus@ecce.se>2013-10-13 05:20:00 -0700
committerJoakim Plate <elupus@ecce.se>2013-10-13 05:20:00 -0700
commitf02ac98fe8851aac15245792b9798813fbd06c1a (patch)
treeb66159bb00350d826f012e6bf65f964139ef731a
parent82ba5d998b5cbe58b04768a270ed366957e17823 (diff)
parent99243803fc0c13051f44040dc5081e5a98634252 (diff)
Merge pull request #3417 from elupus/mpeg2sd
dvdplayer: disallow hw accel of SD mpeg2's
-rw-r--r--xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
index 143675ab6c..59dc781849 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
@@ -71,6 +71,14 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
if(!ctx->IsHardwareAllowed())
return ctx->m_dllAvCodec.avcodec_default_get_format(avctx, fmt);
+ /* there are many corrupt mpeg2 rips from dvd's which don't *
+ * follow profile spec properly, they go corrupt on hw, so *
+ * keep those running in software for the time being. */
+ if (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO
+ && avctx->height <= 576
+ && avctx->width <= 720)
+ return ctx->m_dllAvCodec.avcodec_default_get_format(avctx, fmt);
+
const PixelFormat * cur = fmt;
while(*cur != PIX_FMT_NONE)
{