[mythtv] No video on macbook on with 0.25

Michael T. Dean mtdean at thirdcontact.com
Sat May 26 15:31:17 UTC 2012


On 05/26/2012 09:22 AM, Andrew Leech wrote:
> Having recently purchased a new macbook (early '11 model), I found 
> that 0.25 would simply show a white screen permanently when playing 
> video, with the audio running fine in the background. Changing the 
> video profile made no difference.
> I found however that the 05 May build of 0.25b on 
> http://avenard.org/files/mac/ worked fine. Anything newer including 
> 0.25 release, /fixes and master all show the same problem.
> After setting up compiling in the mac a couple of days ago, and then 
> spending a good few hours bisecting and rebuilding, I've found the 
> causal commit to be
>
> fa639a77c0 - Make users have to figure out if their video works.
>
> After reading the commit description, I followed the advice, found the 
> painter setting and turned it to Auto, and there we go, my video now 
> works fine!
>
> Was this really the desired behavior of this commit?

Yes, unfortunately.

> And if so, where should I have found this information needed to make 
> video work?
> Why isn't auto the default setting here, as surely it would give the 
> best experience for the majority of users?
>
> I'm not a new user, I've been using myth on linux for about 7 years, 
> but this had me stumped for quite a while. I've since checked my main 
> machine, running mythbuntu, and it's interface was set to QT also 
> although it's video has always worked fine. I had always wondered why 
> the myth interface on that computer had been so slow, now I know. 
> Switching it to Auto has made it run a lot better too!

Auto creates an OpenGL painter, and if the OpenGL subsystem claims to 
support all the required behaviors and have the required capability, we 
use the OpenGL painter, and otherwise, we fall back to Qt painter.  
Unfortunately, the video drivers lie.

For example, on GNU/Linux users with current AMD video drivers get a 
good UI with the OpenGL painter, but after first playback, return to a 
black screen and cannot get video back without restarting X.  Also, many 
current distros are shipping a broken Mesa version that results in 
segfaults for users of the OpenGL painter with Intel video drivers.  
Therefore, Auto (and/or the OpenGL painter) only works for users who use 
(the highly recommended, by me, at least) NVIDIA video cards/drivers.

The original plan was to remove the setting completely and just "do the 
right thing."  We ran like that (which is equivalent to having Auto as 
the default for the setting) in master for many months, but it actually 
caused more problems than it solved due to broken video 
drivers/systems.  So, the theory behind that change is that by using the 
most-basic, "doesn't require any special video capabilities" paint 
engine, MythTV's UI would work for all users.  Even if they miss out on 
some capabilities, it's better than the non-functional UI they'd get if 
they're not using good (spelled "NVIDIA") video cards/drivers--and the 
slew of bug reports we'd get for something we can't fix (their 
"BrokenGL" implementations, that require better cards/drivers/X/Mesa/...).

Unfortunately, on Mac OS X, the "most-basic, 'doesn't require any 
special video capabilities' paint engine" doesn't work-- 
http://code.mythtv.org/trac/ticket/10559 .  The proper fix for that 
issue is to fix the Qt paint engine on Mac OS X (though I haven't even 
figured out where to start on that--and probably won't be able to do so, 
myself, without access to any OS X systems).  In the interim, I left the 
default such that it would work on all GNU/Linux systems because a) we 
have a lot more GNU/Linux users than Mac OS X users, and b) I really 
didn't want to add more system-specific conditionals and have to keep 
track of what works where, and c) it's only a default value for a 
setting (meaning it only affects new installs) and settings are those 
things that we, the developers, are telling users, "I can't figure out 
the right thing to do, so you have to tell me," so in theory, users will 
adjust them appropriately.

As far as how you would find the information, it's pretty much as 
described in my rant in the commit message--most users won't.  Only 
those who see a failure (such as you) would continue to look into the 
issue, until they find the setting to change.  Ideally, they would 
either notice http://code.mythtv.org/trac/ticket/10559 or messages on 
the mailing list archive ( http://www.gossamer-threads.com/lists/mythtv/ 
) or ask on the mailing list or on IRC and someone would let them know 
that only OpenGL painter works on Mac OS X, and that they should set 
their Paint Engine to Auto.

On the bright side, I'm pretty sure (though I haven't proven) that Qt 
4.8 has some major changes that mean we use OpenGL even when we don't 
tell Qt to use OpenGL, and I expect it will encourage further changes in 
the future (including better support from video drivers), which may 
allow us to change the default to the sane choice, Auto.

Out of curiosity, which Mythbuntu and which Qt version is on your main 
system?

Also, I'm assuming you have OS X 10.7?  What version of Qt is on that 
system?  (Wonder if the non-functionality may be related to the 4.8 
changes I mentioned above.)

Mike


More information about the mythtv-dev mailing list