[mythtv-users] Openchrome XvMC problems in mythfrontend

Paul Bender pebender at san.rr.com
Fri Jun 12 13:45:00 UTC 2009


Ronald Pijnacker wrote:
>>> Peter Holmes wrote:
>>>>> Ronald Pijnacker wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> This week I tried to upgrade my mythfrontend to mythbuntu jaunty.
>>>>>> Running mythfrontend gives an error about not being able to create an XvMC Surface.
>>>>>> The hardware I'm running on is a VIA EPIA M1000, the bug report can be found here:
>>>>>>
>>>>>> https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-openchrome/+bug/371512
>>>>>>
>>>>>> Initially I filed a bug report under the openchrome video driver, but after
>>>>>> a suggestion from the openchrome irc group, I ran xine with XvMC enabled.
>>>>>> This worked without any problems.
>>>>>> So the question now is, why I'm running into problems with mythtv. Any ideas?
>>>>>>
>>>>> As a quick hack, I modified the udev rules so that udev renames 
>>>>> /dev/dri/card0 to /dev/dri/card1, which causes MythTV ot not use DRM 
>>>>> vblank. Instead it uses usleep with busy wait. After that, no more stutter.
>>>>>
>>>>> Therefore, it appears that the problem is with DRM vblank. However, I do 
>>>>> not know whether this is a bug in DRM or in MythTV.
>>>> Could you provide information about the change you made. I would like to try this 
>>>> to see if it fixes my problem (see [mythtv-users] Video Jerky on a Epic Via Sp8000 board)
>>>>
>>> You will need to find your where the udev rules are located on your 
>>> system. Newer systems will likely have the rules in /lib/udev/rules.d/. 
>>> If not, they will likely be in /etc/udev/rules.d/.
>>>
>>> Next you will want to create a udev rules file 99-user.rules in the 
>>> rules directory with the line
>>> KERNEL=="card*", NAME="dri/card1%n"
>>> The reason for naming the file 99-user.rules is to ensure that it runs 
>>> after the rules file the normally puts card* devices in the dri directory.
>>>
>>> Finally, you will want to trigger the udev rules. On some systems, you 
>>> will use the command
>>> udevtrigger
>>> on other systems you will use
>>> udevadm trigger
>>>
>>> After that, the /dev/dri/ should not contain any card0 entries. Since 
>>> MythTV's DRM sync looks for /dev/dri/card0, it will fail and move on to 
>>> the next sync method.
>> Well I tried all that but I still had /dev/dri/card0, so I modified the mythcode and told it not to use dri.
>> Retested it and now it works fine.
> 
> I still have /dev/dri/card0 too. What did you change in mythtv to disable DRI?

Have a look at <http://svn.mythtv.org/trac/ticket/6561>.

Specifically, I commented out the line
TESTVIDEOSYNC(DRMVideoSync);
in
libs/libmythtv/vsync.cpp


More information about the mythtv-users mailing list