Opened 13 years ago

Closed 13 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")

Change History (2)

comment:1 in reply to:  description Changed 13 years ago by maverik044

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?

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 = "ffmpeg";

+ dec = "xvmc";
+

if (dec == "xvmc")

use_xvmc_idct = use_xvmc = true;

else if (dec == "xvmc-vld")

comment:2 Changed 13 years ago by skamithi

Resolution: invalid
Status: newclosed

similiar feature already introduced. check out the mythtv-vid branch. feature is called display profiles.

Note: See TracTickets for help on using tickets.