[pvrusb2] Using sysfs to change the input setting and capturing the mpeg stream
Mike Isely
isely at isely.net
Sun Aug 13 20:34:46 CDT 2006
On Mon, 31 Jul 2006, Aaron Newcomb wrote:
> Thanks, Mike.
>
> I think my problem was trying to use vi to edit the file instead of
> just doing ...
>
> echo "s-video" >cur_val
Yeah, editing the file is not always a good idea because the editor may
try to move the "original" version to a backup name with link/unlink and
then try to create a new file. That of course isn't going to work in
sysfs...
>
> Once I did that it worked fine. However, I get terrible static sound
> in mplayer when I do that. I also get it when I use cat to capture the
> video. I am not using audio at this point so it's not that big of a
> deal, but is there a way to get rid of that static? Also, does anyone
> have any tips on sharpening up the video? I am guessing my options are
> probably limited here because of the analog signal.
I presume you just don't have the audio connected when you are capturing
your desktop graphics, right? In that case I would expect the audio to be
merely silence not noise. Audio input with s-video (and composite - it's
the same jack) should work just fine; I've done tests with that in the
past and others here haven't reported problems. So I'm puzzled by the
static. However, as suggested in another reply, you can just mute the
audio in the usual way when you do the capture.
As for tweaking the video quality, there are some possibilities, but you
need to build the (standalone) driver a little differently or use the
driver as it is included inside V4L or in the 2.6.18 kernel. Recently the
control of the cx23416 mpeg2 encoder chip was reimplemented in a new v4l
module, called cx2341x. The idea is to put this common code in one place
and then all drivers (blackbird, ivtv, pvrusb2) can just use the common
code. With this new module also comes some new controls that manipulate
various types of digital filtering possible in the encoder chip. So,
basically you need to build the pvrusb2 driver such that it uses the new
cx2341x module. Once you do that, then a bunch of additional controls
show up in V4L (via new control IDs) and in sysfs. I've played with these
controls a bit here, but I don't really know a lot how to use them. All
I've managed to do so far is make the picture worse :-)
To build the pvrusb2 driver in a way that it can use cx2341x means that
you have to build it in an environment where the new cx2341x module is
present. You can do this using any of the following strategies:
1. Just use the pvrusb2 driver included in the current v4l-dvb mercurial
snapshot.
2. Or, just use the pvrusb2 driver included in the 2.6.18-preX kernel.
3. Or, compile the stand-alone driver against 2.6.18-preX
4. Or, compile the stand-alone driver against a recent v4l-dvb mercurial
snapshot.
Whether the pvrusb2 driver you use is from the kernel, from Mercurial, or
(recent) standalone is not the issue - in all cases the needed logic to
communicate with the cx2341x module is present. They are all really the
same driver (with some tweaks in each case). The trick is to build the
driver within an environment where the cx2341x module is in fact, present.
That means you have to build it against a 2.6.18 (or later) kernel or you
have to build it again a v4l-dvb repo. But of course, with those two
choices you don't have to even use the standalone driver since in both
cases there's a pvrusb2 driver version already embedded. Clear as mud?
-Mike
--
| Mike Isely | PGP fingerprint
Spammers Die!! | | 03 54 43 4D 75 E5 CC 92
| isely @ pobox (dot) com | 71 16 01 E2 B5 F5 C1 E8
| |
More information about the pvrusb2
mailing list