[mythtv] Supporting more Hardware capture cards

Sam Logen starz909 at yahoo.com
Wed Nov 21 20:34:48 UTC 2007


Hi everyone,

I came to a problem with my closed captioning a while
back for both my ATSC card and my H/W MPEG card.  For
the ATSC card, my problem was that I was using
libmpeg2 decoding.  I heard in some places that this
doesn't support displaying captioning - so I really
think there should be a disclaimer saying such if it
is enabled in MythTV before others spend days wracking
their brains as to why the captioning is not being
displayed.

The reason, by the way, that I enabled libmpeg2
decoding is because it was advertised to be more
efficient on some AMD processors.  I got rid of XVMC
because it was making my OSD ugly.

For the H/W MPEG card, the simple reason is that it's
just not supported in Mythtv.  For those of you who
know me, you know that I'm using the Avermedia M150
card.
  Without using Andrew Malota's patch (copied below
for perusal) I get no screen and mythfrontend crashes.
 With the patch and LinuxTV.org's latest blackbird HG
drivers, I get a perfect screen, smooth channel
changing, and good sound.  Only I don't get closed
captioning to display.  I know that the drivers
support the VBI from the card because a working VBI
device node is created for the software analog side of
the card.

What would it take to have this card officially
supported in Mythtv?

Sam

Andrew Malota's patch (might be word-wrapped):

> Index: libs/libmythtv/mpegrecorder.cpp
>
===================================================================
> --- libs/libmythtv/mpegrecorder.cpp     (revision
> 14704)
> +++ libs/libmythtv/mpegrecorder.cpp     (working
> copy)
> @@ -324,7 +324,7 @@
> 
>  bool MpegRecorder::OpenV4L2DeviceAsInput(void)
>  {
> -    chanfd = open(videodevice.ascii(), O_RDWR);
> +    chanfd = open(videodevice.ascii(), O_RDWR |
> O_NONBLOCK);
>      if (chanfd < 0)
>      {
>          VERBOSE(VB_IMPORTANT, LOC_ERR + "Can't open
> video device. " + ENO);
> @@ -447,7 +447,7 @@
> 
>      SetVBIOptions(chanfd);
> 
> -    readfd = open(videodevice.ascii(), O_RDWR |
> O_NONBLOCK);
> +    readfd = chanfd;
>      if (readfd < 0)
>      {
>          VERBOSE(VB_IMPORTANT, LOC_ERR + "Can't open
> video device." + ENO);
> 



      ____________________________________________________________________________________
Get easy, one-click access to your favorites. 
Make Yahoo! your homepage.
http://www.yahoo.com/r/hs 


More information about the mythtv-dev mailing list