LinuxTV

News

2008-09-23   DVB API improvements

After years of discussions, several patch series and two different proposed approaches, LinuxTV developers finally decided that S2API is the better technical proposal and should be accepted as the way to allow supporting newer DTV standards, starting with DVB-S2.

As previously announced, a representative group of active developers at LinuxTV community attended the first V4L/DVB Summit, that started with the V4L/DVB miniconf at Linux Plumbers Conference 2008. Several other additional formal (BOF's) and informal meetings happened there, in the benefit of the improvement of the development of multimedia drivers and core.

During the miniconf, both Multiproto API (proposed by Manu) and S2API (proposed by Steven), were presented. A technical discussion was made during the DVB BOF session in order to compare the two proposals and check for the need/convenience of other core internal changes to draw an evolution timeline for DVB.

The DVB BOF had the presence of the following LinuxTV members:

  • Douglas Schilling Landgraf

  • Hans Verkuil

  • Mauro Carvalho Chehab

  • Michael Krufky

  • Patrick Boettcher

  • Steven Toth

  • Thierry Merle

  • Manjunath Hadlii

We had also a presence of an end-user listening to the BOF (Brandon Fouts).

During the BOF, the LinuxTV members carefully analyzed the pros and cons for both proposals. At the end, all people present there agreed that S2API is technically more reliable in time than Multiproto proposal. So it was decided that S2API will be merged upstream.

The main arguments in favor of S2API over Multiproto are:

  • Future proof - the proposal for S2API is more flexible, easily allowing the addition of newer features and new standard support;

  • Simplicity - S2API patches are very simple, while Multiproto presented a very complex series of changes. Simpler approaches reduces the time for maintaining the source code;

  • Capability of allowing improvements even on the existing standards, like allowing diversity control that starts to appear on newer DVB devices.

Some improvements were proposed by the LinuxTV developers, in order to improve the S2API, including:

  • Adding an API command for querying DVB version, to allow an easier detection by userspaceapplications;

  • Name the DVB API with S2API as DVB version 5;

  • Update DVB API documentation to reflect the API changes;

  • Remove from DVB API the unused API ioctls, to match the API with the existing implementations.

The author of S2API got the task of adding those suggestions at the proposed standard and send a pull request to the subsystem maintainer, together with patches for his drivers that use the newer API.

It was also discussed that some of the internal Multiproto API changes may be needed in other to support some of the other existing DVB-S2 drivers that were developed considering Multiproto API. Internal changes can be added at any time without producing problems in the user API.

The group aims to have a unified in-kernel DVB-S2 HVR4000 / TT-3200 tree (that also supports all of the derivative CX24116 / STB0899 known products) within 4 weeks from the announcement, hopefully in time for kernel 2.6.28. For that, we would like to ask Manu to port his drivers to the new API.

The end goal is to add proper support for all devices that would have been supported by multiproto and S2API alike available.

There are already volunteers working or that have offered to work on Kaffeine and MythTV S2API support.

We still need volunteers to work on dvb-apps support. If you feel that you like contribute, please be our guest!

We would like to thank you all that contributed for those discussions and improvements to happen,

Mauro Carvalho Chehab
V4L/DVB Maintainer

mchehab