[pvrusb2] New driver snapshot: pvrusb2-mci-20080210

Mike Isely isely at isely.net
Mon Feb 11 23:30:59 CST 2008


On Mon, 11 Feb 2008, Mark Goldberg wrote:

> On Feb 11, 2008 6:24 AM, Mark Goldberg <marklgoldberg at gmail.com> wrote:
> > Note that I am compiling on a 64 bit system.
> 
> I looked at this a little more and I'm pretty sure that is it. size_t
> on x86_64 is 64bits and int is still 32 bits.

Yes, this all makes sense now.  I've already committed a change in svn 
to deal with this; the next snapshot will have the change.


> 
> > There is a new issue. You see more vertical interval at the top of the
> > screen. You see two lines of white blinking stuff
> > instead of one. I looked at old recordings and I would guess the
> > picture is shifted down maybe 4 or 8 more lines.
> 
> I looked at this too and since I don't know your code at all, I don't
> see it. I don't think you changed pvrusb2-encoder.c
> at all between the snapshots and I see the vertical interval stuff
> there. The problem definitely exists though.

This is going to be more complex than meets the eye, unfortunately.  

The following information is generally true for any kind of wierd 
framing or other future video digitizing strangeness:

The code which sets up details like is not actually in the pvrusb2 
driver.  Rather, the pvrusb2 driver relies on other chip-level drivers 
in V4L to handle these details.  Two chips are involved here: the 
digitizer and the mpeg encoder.  The digitizer generates the digital 
video frames from the analog stream coming out of the demodulator; the 
encoder then converts these raw frames into an mpeg stream.  If there 
are consistent artifacts / strange lines / framing issues in the frame 
then I'd lay odds that the code driving the digitizer may be the thing 
to be examined.  (If there are transient artifacts, obvious random / 
periodic corruption or "blockiness" showing up then I'd be more inclined 
to blame the mpeg encoder.)  Complicating things further is that there 
are two different digitizers in play here: If you have the older 29xxx 
model then the digitizer is an SAA7115; if you have a 24xxx model then 
the digitizer is a CX25843.

The driver which controls the SAA7115 is "saa7115.ko"; the driver which 
handles the cx25843 is "cx25840.ko".  I don't maintain these - they come 
from the environment in which you are running.  So these are highly 
dependant upon the kernel version you are using and if you have overlaid 
a v4l-dvb repository build on top (or if your distribution's maintainer 
has done that).

While it is theoretically possible that the pvrusb2 driver could 
indirectly be a root cause here - by for example feeding incorrect or 
unexpected control inputs to those drivers - it's not very likely. 
(Though I will admit that there was a 24xxx problem about 1.5 years ago 
that in the end was traced to faulty control input to the cx25840 
module.)  I haven't made any changes recently in the driver that could 
affect those areas.  So I'd be looking at the digitizer module in 
question.  Are you sure that module (cx25840.ko or saa7115.ko) hasn't 
changed or been replaced by other changes?  Can you actually show that 
the previous pvrusb2 snapshot (still) isn't triggering the problem?  I 
*have* seen some transient issues with recent v4l-dvb repository 
snapshots where there's video digitizing issues.  (Unfortunately the 
problem is very transient and I haven't been able to chase it.  
Fortunately the problem only happens with the modules in the recently 
less-stable v4l-dvb repo and not with the in-kernel versions of those 
modules.)

  -Mike


-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8


More information about the pvrusb2 mailing list