NetBSD-SoC: DVB drivers and kernel framework
What is it?
This project developed a NetBSD implementation of the LinuxTV user api for controlling DVB devices. This allows userland applications to tune devices and read a transport stream. The full LinuxTV API contains controls to perform transport stream filtering in kernel mode, however this does not exist in this implementation as very few applications use this functionality.
Some programs which use can use this code include MythTV, VLC, MPlayer and Xine.
The API implementation provides for userland interaction with a device driver; the other portion of this project was to write a device driver for a test DVB device, in my case a "Pinnacle 330e PCTV". Luckily an open source (GPL) driver is already available for this device, which I've fiddled with to operate on NetBSD.
Luckily I didn't encounter many obstacles while developing this, aside from discovering that EHCI ISOC wasn't implemented on NetBSD. This lead to me having to implement it, the code for which has already been committed.
Mentor for this project was Jared D. McNeill.
Googles generic timeline for projects:
- April 21, 2008: Community Bonding Period -- Students get to know mentors, read documentation, get up to speed to begin working on their projects.
- May 26, 2008: Students begin coding for their GSoC projects; Google begins issuing initial student payments
- July 7, 2008: Mentors and students can begin submitting mid-term evaluations.
- July 14, 2008: Mid-term evaluation deadline; Google begins issuing mid-term student payments provided passing student survey is on file.
- August 11, 2008: Suggested 'pencils down' date. Take a week to scrub code, write tests, improve documentation, etc.
- August 18, 2008: Firm 'pencils down' date. Mentors, students
and organization administrators can begin submitting final evaluations to
- September 1, 2008: Final evaluation deadline; Google begins issuing student and mentoring organization payments provided forms and evaluations are on file.
Mandatory (must-have) components:
- Kernel interface for drivers to register their DVB hardware
- User mode access to configure hardware and recover video stream.
- Prove this all works by demonstrating its operating with actual hardware
Optional (would-be-nice) components:
- No specific do-want features I can think of, however it'd be fantastic if this framework wasn't limited to just DVB tuners.
The LinuxTV project publishes documentation on their user and kernel mode API: Its quite good,
although not complete. Unfortunately some of LinuxTVs features are too complicated (network / conditional access),
others are pointless (section filtering), so the actual parts this framework implements just allows tuning
and delivery of data. I intended to produce a man page for the usermode interface, but currently there's only
a short, pedantic kernel interface document
| Jeremy Morse <my.name at gmail> |
| $Id: index.html,v 1.8 2008/09/08 22:12:40 j_morse Exp $ |