Tux, the Linux mascotte


- News
- Download Latest Release
- Supported cards
- Documentation & FAQ
- Development & Programming
- SourceForge Project Page
- SourceForge CVS Repository


- Ronald Bultje
- Laurent Pinchart
- Mailinglist


- MJPEG-tools
- Linux Video Studio
- XawTV

Manufacturer Links

- Linux Media Labs
- Iomega
- Pinnacle Systems
- Philips Semiconductors
- Analog Devices
- Brooktree (Conexant)
- Micronas
- Zoran

SourceForge Logo

Development and Programming

This page features some random programming information about the driver internals, video4linux, chipset documentation, etcetera. If you feel anything is missing, don't hesistate to contact me (Ronald). New developers are always welcome. We're always trying to extend support to new cards. If you've got a MJPEG capture card based on the zoran zr360x7 chipset (PCI controller) and a Zoran zr36060 or zr36050/zr36016 MJPEG codec and/or VFE, it'll probably be fairly easy to get your card supported by our driver.

TODO list

As any project, this project will never be truely finished. There's currently a load of things to do, mostly supporting new cards. Besides that, the following things need doing:

  • vpx3224 (i2c video decoder) module.
  • mse3000 (i2c video encoder) module.
  • ad1843 (DC30/DC30+ sound chip) module.
  • implement support for the tea6415 transistor (sources are in the kernel already, you don't actually need to write a module - however, we need a mse3000 module first for this to be useful).
  • Handle videocodec client modules more dynamically (like i2c - unloadable and reloadable).
  • Port to new PCI API (autoprobing).
  • Port to new DMA API (see Documentation/DMA_mapping.txt).
  • New cards!

There are also smaller things you could work on. However, these tend to get fixed fairly soon, so this list might not be uptodate. If you want work on any of these, send me an e-mail or browse through the sources in CVS first to see whether they're not already completed.

  • Use dev_printk() instead of dprintk().
  • Real CARDLIST file (generated from sources).
  • Write support for Avermedia 6EYES (Martin Samuelsson has sources, it just needs to be ported back into the main tree).
  • Add "buffer too small" question to FAQ, and tell how to install the bigphysarea patch and/or reserve memory on start-up.
  • I2C Calls in interrupt context (zoran_irq()) aren't valid.
  • zoran_poll() is broken.
  • Add event polling (see v4l2 docs)
  • REQBUFS - when buffers already exist - should deallocate them automatically. Also, on numbufs=0, it should just remove them and return rightly.
  • When opening a device while in v4l_sync()'s wait-for-signal loop, it sometimes "misses" the signal. This is a race, but how do I fix it? I cannot control that the signal be delayed until after the open() is done (this locks all other processes...).
  • I've had reports of interference between different capture sessions on two zoran cards when capturing simultaneously. This seems to be directly related to bigphysarea usage.
  • Check throughput (PCI?). I know that Pinnacle's WIN32 driver (as example) has better throughput than ours, I'd be interested on how I can improve this. Examples are when doing full-screen overlay, sometimes only part of the image is transferred. Pinnacle's WIN32 driver works somewhat better.
  • DC30+ playback doesn't work.


Chipset information

Here' you'll find most of the available chipset documentation (datasheets) that are currently supported (or will be) by the Unified Zoran Driver. If you're looking for a driver for any of these, check our CVS for code.

Last modified: October 13, 2004 - 06:45:27
© Ronald Bultje, 2003 - under the terms of the GNU Free Documentation License