DVBLoopback Module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I thought someone on this list might be interested in some work I've
been doing.  Specifically, I have developed a dvbloopback adapter
(based on the vloopback adapter:
http://www.lavrsen.dk/twiki/bin/view/Motion/VideoFourLinuxLoopbackDevice).
It will forward all file I/O requests to a userspace app, which can
process the requests however desired.  At the moment, the code is
still in the debugging stage, and the userspace app will simply
forward the requests to a real dvb adapter, but it can also be used
for the purpose I originally wrote it for: to test out some userspace
driver code, or for monitoring data transmitted between a dvb-app and
the kernel without doing a bunch of module hacking.

The code works by creating 2 sets of each device (frontend0,
frontend1; demux0, demux1, etc)
it is expected that the userspace control app will attach to the '1'
devices (as they don't speak the DVB-api language).  The kernel module
takes requests from the '0' device, passes open,close,read,ioctl, and
poll (no support for write at the moment) requests on to the '1'
device via a defined api, waits for an ioctl response on the '1'
device corresponding to the status and/or data from the request, and
returns that on the '0' device.
I had to play some tricks to get poll to behave nicely, but it seems
to work quite well with negligible performance impact for the simple
case of forwarding commands to a real adapter.

There is still quite a bit of work to do, but I thought I'd make the
code available in case there was any interest. so I started a project
on GNA! to host the code:
http://gna.org/projects/dvbloopback/
(no files, but the code is in the SVN repository)

Cheers,
Alan

_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux