Opened 17 years ago
Closed 17 years ago
#2912 closed patch (invalid)
UseXvMCForHDOnly with PreferredMPEG2Decoder=xvmc (Standard XVMC) causes internal player to use XVMC for DVDs and ISOs
Reported by: | maverik044 | Owned by: | Isaac Richards |
---|---|---|---|
Priority: | minor | Milestone: | 0.21 |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
If PreferredMPEG2Decoder is set to "Standard XVMC" and UseXvMCForHDOnly=1 is added to settings in database, the internal player will try to play DVDs and ISOs using xvmc. For me this does not work (DVDs).
This is because the function AvFormatDecoder::OpenFile? in avformatdecoder.cpp only checks PreferredMPEG2Decoder in the database. It does not check UseXvMCForHDOnly.
I propose to patch libs/libmythtv/videoout_xv.cpp such that UseXvMCForHDOnly forces xvmc if height>=720 instead. In this case the PreferredMPEG2Decoder is set to "Standard" (ffmpeg) and DVD then works properly. For HD content greater or equal to 720 lines, xvmc will be used.
--- libs/libmythtv/videoout_xv.cpp 2007-01-12 23:47:56.000000000 -0500 +++ libs/libmythtv/videoout_xv.cpp.orig 2007-01-12 23:36:46.000000000 -0500 @@ -1008,11 +1008,9 @@ MythCodecID VideoOutputXv::GetBestSuppor?
bool use_xv = true, use_shm = true;
QString dec = gContext->GetSetting?("PreferredMPEG2Decoder", "ffmpeg");
- if (dec != "libmpeg2" && height >= 720 &&
+ if (dec != "libmpeg2" && height < 720 &&
gContext->GetNumSetting?("UseXvMCForHDOnly", 0))
- dec = "xvmc";
- + dec = "ffmpeg";
if (dec == "xvmc")
use_xvmc_idct = use_xvmc = true;
else if (dec == "xvmc-vld")
Sorry got it backwards
--- libs/libmythtv/videoout_xv.cpp.orig 2007-01-12 23:36:46.000000000 -0500 +++ libs/libmythtv/videoout_xv.cpp 2007-01-13 01:51:56.000000000 -0500 @@ -1008,9 +1008,11 @@ MythCodecID VideoOutputXv::GetBestSuppor?
+
+ if (dec != "libmpeg2" && height >= 720 &&
+ dec = "xvmc";
+