Mailing List Archive

1 2  View All
Re: first remote button press is ignored [ In reply to ]
On Wed, 24 Jan 2018 11:01:34 -0600
Greg Oliver <oliver.greg@gmail.com> wrote:

> I am beginning to agree - I turned on "all" debugs on mythfrontend
> and it does not log any LIRC events at all, so we will not be getting
> help from that unfortunately. Like I mentioned, I use redhat
> derivatives and do not see this issue (nor have I ever), so I cannot
> replicate it here. The fact that multiple debian users see it though
> is another wrnech in the mix.
>
> I see 2 options -
>
> 1. mythfrontend on debian does something odd
> 2. mythbuntu packages have left an old setting around causing the
> issue
>

The code
https://github.com/MythTV/mythtv/blob/master/mythtv/libs/libmythui/mythmainwindow.cpp#L2496

will silently ignore lirc events if the screensaver is "active".

That might tie in with the distro-specific nature.

Note resetting the screensaver generates an event - it does not get
reset immediately.

So if the screen is considered asleep the first press will be ignored.
By the 2nd it would have woken up.

No idea why it would be asleep when playback starts. Not being
initialised ?

You could try disabling any screensavers. It might prove something.
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On Wed, Jan 24, 2018 at 12:21 PM, Roger Siddons <dizygotheca@ntlworld.com>
wrote:

> On Wed, 24 Jan 2018 11:01:34 -0600
> Greg Oliver <oliver.greg@gmail.com> wrote:
>
> > I am beginning to agree - I turned on "all" debugs on mythfrontend
> > and it does not log any LIRC events at all, so we will not be getting
> > help from that unfortunately. Like I mentioned, I use redhat
> > derivatives and do not see this issue (nor have I ever), so I cannot
> > replicate it here. The fact that multiple debian users see it though
> > is another wrnech in the mix.
> >
> > I see 2 options -
> >
> > 1. mythfrontend on debian does something odd
> > 2. mythbuntu packages have left an old setting around causing the
> > issue
> >
>
> The code
> https://github.com/MythTV/mythtv/blob/master/mythtv/
> libs/libmythui/mythmainwindow.cpp#L2496
>
> will silently ignore lirc events if the screensaver is "active".
>
> That might tie in with the distro-specific nature.
>
> Note resetting the screensaver generates an event - it does not get
> reset immediately.
>
> So if the screen is considered asleep the first press will be ignored.
> By the 2nd it would have woken up.
>
> No idea why it would be asleep when playback starts. Not being
> initialised ?
>
> You could try disabling any screensavers. It might prove something.
>

I run:

xset -dpms
xset s off

before I start mythfrontend to make sure it cannot be blanked or active.
Of course I could care less about power since I have no children to worry
about having a place to live in the future :)

I do turn off my TV when not watching it though.
Re: first remote button press is ignored [ In reply to ]
On 24/01/18 20:08, Greg Oliver wrote:
> On Wed, Jan 24, 2018 at 12:21 PM, Roger Siddons
> <dizygotheca@ntlworld.com <mailto:dizygotheca@ntlworld.com>> wrote:
>
> On Wed, 24 Jan 2018 11:01:34 -0600
> Greg Oliver <oliver.greg@gmail.com <mailto:oliver.greg@gmail.com>>
> wrote:
>
> > I am beginning to agree - I turned on "all" debugs on mythfrontend
> > and it does not log any LIRC events at all, so we will not be getting
> > help from that unfortunately.

Would it be possible to add a patch providing some logging? The
alternative would be to fire up gdb and set some breakpoints. To my
simple head, the next logical step should be to actually trace when
mythfrontend gets the lirc input. Without this info, we are kind of
lost, are we not?

--alec
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On Wed, Jan 24, 2018 at 1:45 PM, Alec Leamas <leamas.alec@gmail.com> wrote:

>
>
> On 24/01/18 20:08, Greg Oliver wrote:
> > On Wed, Jan 24, 2018 at 12:21 PM, Roger Siddons
> > <dizygotheca@ntlworld.com <mailto:dizygotheca@ntlworld.com>> wrote:
> >
> > On Wed, 24 Jan 2018 11:01:34 -0600
> > Greg Oliver <oliver.greg@gmail.com <mailto:oliver.greg@gmail.com>>
> > wrote:
> >
> > > I am beginning to agree - I turned on "all" debugs on mythfrontend
> > > and it does not log any LIRC events at all, so we will not be
> getting
> > > help from that unfortunately.
>
> Would it be possible to add a patch providing some logging? The
> alternative would be to fire up gdb and set some breakpoints. To my
> simple head, the next logical step should be to actually trace when
> mythfrontend gets the lirc input. Without this info, we are kind of
> lost, are we not?
>
> --alec
>

Could you first try the screensaver disabling post. You can ssh into the
frontend:

export DISPLAY=:0
xset -dpms
xset s off

play a video and try it. Barring that, I'll just be honest - I'm not
willing to spend the time to track it down with gdb (you would have to
decipher the output anyway) and you would need to email the dev list to try
for a patch with extra logging baked in.

Does the debian version run Xorg or Wayland? I still run X for other
reaason, so the xset commands may not work on Wayland - I am not sure.
Re: first remote button press is ignored [ In reply to ]
Catching up on several points here....

> This is correct, mythtv uses ~/.mythtv/lircrc rather than ~/.lircrc.

I have a ~/.lircrc but not a ~/.mythtv/lircrc. Looking through the source code,
I'm fairly sure MythTV is looking for it in ~/.lircrc. This is corroborated by
the observation that when I edit ~/.lircrc, MythTV responds to those edits.

> You could try disabling any screensavers. It might prove something.

As far as I can tell, I don't have a screensaver installed, but I disabled
screen blanking/sleeping in the XFCE settings GUI. I also ran `xset s off` and
`xset -dpms`, then restarted mythfrontend, but the problem remained.

> Does the debian version run Xorg or Wayland?

It runs Xorg.

> Would it be possible to add a patch providing some logging?

I build from source, so I'll look into adding some logging around the LIRC code,
including the part Roger noted where it ignores events if the screen is asleep.
It might be the weekend before I have time for that.

Thanks again all.
Joey

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On Wed, 2018-01-24 at 22:47 -0500, Joey Morris wrote:
> Catching up on several points here....
>
> > This is correct, mythtv uses ~/.mythtv/lircrc rather than
> ~/.lircrc.
>
> I have a ~/.lircrc but not a ~/.mythtv/lircrc. Looking through the
> source code,
> I'm fairly sure MythTV is looking for it in ~/.lircrc. This is
> corroborated by
> the observation that when I edit ~/.lircrc, MythTV responds to those
> edits.

It must be more complex than a static path then because on my myth
system (where both mythtv and irexec behave as expected):

mythtv@iranon :~$ grep prog.= .lircrc | sort -ub
prog = irexec
mythtv@iranon :~$ grep prog.= .mythtv/lircrc | sort -ub
# prog = mythtv
prog = mythtv

And indeed the code says:

void MythMainWindow::StartLIRC(void)
{
#ifdef USE_LIRC
[...]

QString config_file = GetConfDir() + "/lircrc";
if (!QFile::exists(config_file))
config_file = QDir::homePath() + "/.lircrc";

So we are both right...

There's some different looking code in mythtv/libs/libmythui/, which
looks like it might be doing something different, not sure how/where
that fits in.

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On Wed, 24 Jan 2018 22:47:00 -0500
Joey Morris <rjmorris.list@zoho.com> wrote:

> > Would it be possible to add a patch providing some logging?
>
> I build from source, so I'll look into adding some logging around the
> LIRC code, including the part Roger noted where it ignores events if
> the screen is asleep. It might be the weekend before I have time for
> that.
>
My (quick) look suggests there's only 3 paths;

1. A big fat logging error - Bad keycode
2. A key event, which is handled like any other keyboard key
3. Ignore it because the screen is supposedly asleep

I would just comment out those lines and see if starts working.

If so, then it may be related to DBus & the screensaver support
added in 0.28. https://code.mythtv.org/trac/ticket/12414#comment:5
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On Wed, 2018-01-24 at 11:01 -0600, Greg Oliver wrote:
> I am beginning to agree - I turned on "all" debugs on mythfrontend
> and it does not log any LIRC events at all, so we will not be getting
> help from that unfortunately. Like I mentioned, I use redhat
> derivatives and do not see this issue (nor have I ever), so I cannot
> replicate it here. The fact that multiple debian users see it though
> is another wrnech in the mix.

FWIW my myth system runs Debian (using the dmo packages, since 0.16 or
0.14 or something) and I don't see anything like this.

FWIW my .xinitrc has:
/usr/bin/xset s noblank
/usr/bin/xset s off
/usr/bin/xset -dpms

The `noblank` seems to be extra compared with what others are
mentioning here.

Also FWIW my windows manager is evilwm.

Ian.
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On 01/24/2018 10:47 PM, Joey Morris wrote:
> Catching up on several points here....
>
>> This is correct, mythtv uses ~/.mythtv/lircrc rather than ~/.lircrc.
> I have a ~/.lircrc but not a ~/.mythtv/lircrc. Looking through the source code,
> I'm fairly sure MythTV is looking for it in ~/.lircrc. This is corroborated by
> the observation that when I edit ~/.lircrc, MythTV responds to those edits.

MythTV uses $HOME/.mythtv/lircrc , if present, else it looks for
$HOME/.lircrc .

Mike
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
Roger Siddons <dizygotheca@ntlworld.com> wrote on Thu, Jan 25, 2018 at 10:06:53AM +0000:
> On Wed, 24 Jan 2018 22:47:00 -0500
> Joey Morris <rjmorris.list@zoho.com> wrote:
> > I build from source, so I'll look into adding some logging around the
> > LIRC code, including the part Roger noted where it ignores events if
> > the screen is asleep. It might be the weekend before I have time for
> > that.
> >
> My (quick) look suggests there's only 3 paths;
>
> 1. A big fat logging error - Bad keycode
> 2. A key event, which is handled like any other keyboard key
> 3. Ignore it because the screen is supposedly asleep
>
> I would just comment out those lines and see if starts working.
>
> If so, then it may be related to DBus & the screensaver support
> added in 0.28. https://code.mythtv.org/trac/ticket/12414#comment:5

Mythfrontend's DBus/screensaver behavior appears to be the source of the issue.
I describe a solution at the end of this message, although I wonder if there is
a better one.

Adding some log messages to the section of code Roger is referring to (in the
MythMainWindow::customEvent function in libs/libmythui/mythmainwindow.cpp), I
saw that the first button press was ignored because the following condition was
true:

if (GetMythUI()->GetScreenIsAsleep())
return;

So MythTV thinks my screen is asleep when it receives the first button press.
But why?

I have these messages in my log when I start mythfrontend:

screensaver-dbus.cpp:61 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
Created for DBus service: org.freedesktop.ScreenSaver
screensaver-dbus.cpp:57 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
Could not connect to dbus: The name org.freedesktop.PowerManagement.Inhibit
was not provided by any .service files
screensaver-dbus.cpp:57 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
Could not connect to dbus: The name org.mate.SessionManager was not
provided by any .service files
screensaver-dbus.cpp:57 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
Could not connect to dbus: The name org.gnome.SessionManager was not
provided by any .service files
screensaver-x11.cpp:82 (ScreenSaverX11Private) - ScreenSaverX11Private:
DPMS is disabled.

When I begin playback, I have this message:

screensaver-dbus.cpp:82 (Inhibit) - ScreenSaverDBus:
Successfully inhibited screensaver via org.freedesktop.ScreenSaver.
cookie 63. nom nom

And then immediately after the first button press (the one that is ignored), I
have this message:

screensaver-dbus.cpp:102 (UnInhibit) - ScreenSaverDBus:
Screensaver uninhibited via org.freedesktop.ScreenSaver

Searching for these messages led to a few tickets and mailing list threads:

https://code.mythtv.org/trac/ticket/12435
https://code.mythtv.org/trac/ticket/12438
https://lists.gt.net/mythtv/dev/585861
https://lists.gt.net/mythtv/users/593738

The mailing list threads are a little old (2015), long, and may not be entirely
relevant to this particular case, but I'm including them for reference.

Based on a comment in https://code.mythtv.org/trac/ticket/12435, I recompiled
with --disable-qt5dbus, and the first button press is no longer ignored! None of
the above log messages appear anymore except this one when mythfrontend starts:

screensaver-x11.cpp:82 (ScreenSaverX11Private) - ScreenSaverX11Private:
DPMS is disabled.

Just to recap my setup: I'm running mythtv 29 on Debian Buster with XFCE, no
screensaver installed, and DPMS disabled. I don't have any particular reason to
avoid a screensaver or DPMS; I just haven't seen a need for them on this
machine.

So compiling with --disable-qt5dbus is a solution, but is it the right solution?
Does other mythfrontend functionality rely on dbus that will be affected by this
change? Should I just install a screensaver?

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On Sun, 28 Jan 2018 14:14:35 -0500
Joey Morris <rjmorris.list@zoho.com> wrote:

> And then immediately after the first button press (the one that is
> ignored), I have this message:
>
> screensaver-dbus.cpp:102 (UnInhibit) - ScreenSaverDBus:
> Screensaver uninhibited via org.freedesktop.ScreenSaver
>

That's the bug methinks.
The ResetScreensaver is old code that needs removing.

Hopefully the screensaver gurus (who understand all this) will look at
it tomorrow.

Thanks for the excellent info.
_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
On 28/01/18 19:14, Joey Morris wrote:
> Roger Siddons <dizygotheca@ntlworld.com> wrote on Thu, Jan 25, 2018 at 10:06:53AM +0000:
>> On Wed, 24 Jan 2018 22:47:00 -0500
>> Joey Morris <rjmorris.list@zoho.com> wrote:
>
> Mythfrontend's DBus/screensaver behavior appears to be the source of the issue.
> I describe a solution at the end of this message, although I wonder if there is
> a better one.
>
> Adding some log messages to the section of code Roger is referring to (in the
> MythMainWindow::customEvent function in libs/libmythui/mythmainwindow.cpp), I
> saw that the first button press was ignored because the following condition was
> true:
>
> if (GetMythUI()->GetScreenIsAsleep())
> return;
>
> So MythTV thinks my screen is asleep when it receives the first button press.
> But why?


This is a very good question. The logical flow should be

"start playback" -> inhibit screensaver
"stop playback" -> re-renable screensaver

Now in order for your screen to be "asleep" the screensaver time out
should have expired and the screensaver kicked in.

Is this the case?

>
> I have these messages in my log when I start mythfrontend:
>
> screensaver-dbus.cpp:61 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
> Created for DBus service: org.freedesktop.ScreenSaver
> screensaver-dbus.cpp:57 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
> Could not connect to dbus: The name org.freedesktop.PowerManagement.Inhibit
> was not provided by any .service files
> screensaver-dbus.cpp:57 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
> Could not connect to dbus: The name org.mate.SessionManager was not
> provided by any .service files
> screensaver-dbus.cpp:57 (ScreenSaverDBusPrivate) - ScreenSaverDBus:
> Could not connect to dbus: The name org.gnome.SessionManager was not
> provided by any .service files
> screensaver-x11.cpp:82 (ScreenSaverX11Private) - ScreenSaverX11Private:
> DPMS is disabled.
>
> When I begin playback, I have this message:
>
> screensaver-dbus.cpp:82 (Inhibit) - ScreenSaverDBus:
> Successfully inhibited screensaver via org.freedesktop.ScreenSaver.
> cookie 63. nom nom
>

So that's correct, when you start playback the screen saver is inhibited.

> And then immediately after the first button press (the one that is ignored), I
> have this message:
>
> screensaver-dbus.cpp:102 (UnInhibit) - ScreenSaverDBus:
> Screensaver uninhibited via org.freedesktop.ScreenSaver
>

This is re-enabling the screen saver.
So if the screensaver was inhibited, then how can the screen
possibly be asleep?


> Searching for these messages led to a few tickets and mailing list threads:
>
> https://code.mythtv.org/trac/ticket/12435
> https://code.mythtv.org/trac/ticket/12438
> https://lists.gt.net/mythtv/dev/585861
> https://lists.gt.net/mythtv/users/593738
>
> The mailing list threads are a little old (2015), long, and may not be entirely
> relevant to this particular case, but I'm including them for reference.
>
> Based on a comment in https://code.mythtv.org/trac/ticket/12435, I recompiled
> with --disable-qt5dbus, and the first button press is no longer ignored! None of
> the above log messages appear anymore except this one when mythfrontend starts:
>
> screensaver-x11.cpp:82 (ScreenSaverX11Private) - ScreenSaverX11Private:
> DPMS is disabled.
>
> Just to recap my setup: I'm running mythtv 29 on Debian Buster with XFCE, no
> screensaver installed, and DPMS disabled. I don't have any particular reason to
> avoid a screensaver or DPMS; I just haven't seen a need for them on this
> machine.
>

Does your screen ever actually go to sleep?
From the data you have provided, we are talking over dbus and
successfully disabling the screen saver.

Looking at the code
https://github.com/MythTV/mythtv/blob/master/mythtv/libs/libmythui/screensaver-dbus.cpp#L68-L90

if we get a successful reply from dbus (ie. a non error reply)
then we set m_inhibited, which ultimately designates if the screen
is asleep.

Am i right in inferring that because you don't use dpms / screensaver
etc, then the screen never actually shuts off?

However the code assumes that because it had a non error response, that
there is actually a screensaver doing something.

The only thing i can suggest it pulling apart the dbus reply and
seeing if it is replying with a non error response, which indicates
no screen saving has actually been done / or is possible.

> So compiling with --disable-qt5dbus is a solution, but is it the right solution?
> Does other mythfrontend functionality rely on dbus that will be affected by this
> change? Should I just install a screensaver?
>

I don't think disabling dbus is the right solution, but others
think it is.

I would be keen to better understand why we get a non error response.

It would also be interesting to see if the actual current state of
the sleeping of the screen could be queried via dbus. That would be
more correct..


Regards
Stuart

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org
Re: first remote button press is ignored [ In reply to ]
Stuart Auchterlonie <stuarta@squashedfrog.net> wrote on Tue, Jan 30, 2018 at 02:34:33PM +0000:
> From the data you have provided, we are talking over dbus and
> successfully disabling the screen saver.
>
> Looking at the code
> https://github.com/MythTV/mythtv/blob/master/mythtv/libs/libmythui/screensaver-dbus.cpp#L68-L90
>
> if we get a successful reply from dbus (ie. a non error reply)
> then we set m_inhibited, which ultimately designates if the screen
> is asleep.
>
> Am i right in inferring that because you don't use dpms / screensaver
> etc, then the screen never actually shuts off?

That's correct.

Looking into this more today, I found that light-locker is what provides the
org.freedesktop.ScreenSaver dbus interface on my system. light-locker is a fork
of gnome-screensaver, but from what I can tell it only locks and unlocks the
screen; it doesn't actually implement a screensaver.


> However the code assumes that because it had a non error response, that
> there is actually a screensaver doing something.
>
> The only thing i can suggest it pulling apart the dbus reply and
> seeing if it is replying with a non error response, which indicates
> no screen saving has actually been done / or is possible.

I inspected the dbus reply to the Inhibit message, and the only thing returned
is the cookie.


> > So compiling with --disable-qt5dbus is a solution, but is it the right solution?
> > Does other mythfrontend functionality rely on dbus that will be affected by this
> > change? Should I just install a screensaver?
> >
>
> I don't think disabling dbus is the right solution, but others
> think it is.
>
> I would be keen to better understand why we get a non error response.

I added some more logging to trace the logical flow, and I might see what's
going on. First, here's the code that runs right before processing a button
press
(https://github.com/MythTV/mythtv/blob/master/mythtv/libs/libmythui/mythmainwindow.cpp#L2496-L2498):

GetMythUI()->ResetScreensaver();
if (GetMythUI()->GetScreenIsAsleep())
return;

ResetScreenSaver sends an event that ultimately calls Uninhibit.
GetScreenIsAsleep returns true if the screensaver is inhibited.

(I don't follow the reasoning behind either of these two functions. Why would we
enable the screensaver after receiving a button press? And why would the
screensaver being disabled imply that the screen is asleep? Perhaps I'm
misunderstanding the code.)

I found that the event triggered by ResetScreenSaver was processed only after a
delay, such that it wasn't acted on until after the GetScreenIsAsleep call. My
observation was that the logical flow proceeds as follows:

1. I start playback of a recording.
2. MythTV inhibits the screensaver.
3. I press a button.
4. MythTV calls ResetScreensaver, which sends an event to uninhibit the
screensaver. The event isn't processed yet, though.
5. GetScreenIsAsleep returns true, because the screensaver is still inhibited.
Therefore, MythTV returns without processing the button press.
6. The ResetScreensaver event is processed, uninhibiting the screensaver.
7. I press a second button.
8. MythTV calls ResetScreensaver, sending another event to uninhibit the
screensaver. This doesn't matter now, though, because it's already
uninhibited.
9. GetScreenIsAsleep returns false, because the screensaver is now uninhibited.
MythTV continues with this function and processes the button press.

> It would also be interesting to see if the actual current state of
> the sleeping of the screen could be queried via dbus. That would be
> more correct..

d-feet shows a org.freedesktop.Screensaver.GetActive method, which looks
promising. It returns false on my system.

_______________________________________________
mythtv-users mailing list
mythtv-users@mythtv.org
http://lists.mythtv.org/mailman/listinfo/mythtv-users
http://wiki.mythtv.org/Mailing_List_etiquette
MythTV Forums: https://forum.mythtv.org

1 2  View All