On Sat, 2010-11-13 at 15:06 -0500, Andy Walls wrote:
> On Sat, 2010-11-13 at 16:59 +0200, Artem Astafyev wrote:
> > Hi All,

> >  I filed ticket in MythTV trac
> > http://svn.mythtv.org/trac/ticket/9191. Could somebody take a look at
> > it?
> 
> Since at least Apr 27, 2007, when ivtv went into the mainline kernel,
> ivtv has always returned EBUSY for this case.  cx18 has always returned
> EBUSY for this case as well.
> 
> Unless MythTV doesn't call close() once on the MPEG stream's file handle
> before trying to switch standards, I suspect the MythTV devs will close
> it without action.  MythTV needs to close() the MPEG file descriptor, if
> trying to switch standards on ivtv and cx18 type devices.

Ah, I found the problem in MythTV 0.21 source code.

Look at 

lib/libmythtv/mpegrecorder.cpp:MpegRecorder::OpenV4L2DeviceAsInput()

    if (CardUtil::GetV4LInfo(chanfd, card, driver, version))
    {
        if (driver == "ivtv")
        {
            usingv4l2     = (version >= IVTV_KERNEL_VERSION(0, 8, 0));
            has_v4l2_vbi  = (version >= IVTV_KERNEL_VERSION(0, 3, 8));
            has_buggy_vbi = true;
            requires_special_pause =
                (version >= IVTV_KERNEL_VERSION(0, 10, 0));
        }
        else
        {
            VERBOSE(VB_IMPORTANT, "\n\nNot ivtv driver??\n\n");
            usingv4l2 = has_v4l2_vbi = true;
            has_buggy_vbi = requires_special_pause = false;
        }
    }

Like all modern ivtv driver versions, I'm very confident all cx18 driver
versions require 

        requires_special_pause = true;

to be set.  Then libmythtv will send the VIDIOC_ENC_CMD,
V4L2_ENC_CMD_STOP that is required.  Although the above code snippet is
from 0.21, I suspect it is still the same in 0.23.

I'm not sure what "has_buggy_vbi" means and whether or not it needs to
be set for the cx18 driver.

Hope that helps.

Regards,
Andy


_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to