S2API

From LinuxTVWiki
Revision as of 01:52, 6 September 2008 by Jon2856 (talk | contribs) (New page: S2API is a tag/value-based API which is a proposal for version 3.3 of the Linux DVB API. It is currently under rapid development with the intention of merging it into the Linux kernel soon...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

S2API is a tag/value-based API which is a proposal for version 3.3 of the Linux DVB API. It is currently under rapid development with the intention of merging it into the Linux kernel soon.

Introduction

Following long standing frustration amongst developers and users about the lack of progress in getting multiproto into the Linux kernel, a group of four senior developers including the maintainer has proposed an alternative (Aug 29 2008) and announced that they no longer support multiproto. See http://linuxtv.org/pipermail/linux-dvb/2008-August/028313.html. The idea had been proposed earlier http://linuxtv.org/pipermail/linux-dvb/2007-November/021618.html. See also http://article.gmane.org/gmane.linux.drivers.dvb/36643.

Technically it is quite different from multiproto. Control of the frontend is implemented using a command sequence of (tag,value) pairs to set all the required parameters and then initiate tuning. Thus it no longer depends on fixed structs to hold parameter data.

A notable advantage of the tag/value technique is that it should make it much easier to keep up with future DVB transmission standards because this will at most require the definition of additional tags (i.e. commands) rather than a revision of the API. Transmission standards continue to multiply: some developers already have hardware using standards unsupported by multiproto, such as ISDB-T and DMB-T/H.

Commands can be made atomic by passing a whole command sequence in a single ioctl (for example a set of parameters followed by the tune command). Alternatively a sequence may be sent one command at a time. A patch is available at http://www.steventoth.net/linux/s2. Work still needs to be done to finish the API design and port the existing DVB-S2 drivers to work with it. Older drivers not requiring the new features can remain unchanged. Support for the cx24116 demodulator driver and the Hauppauge HVR4000 family of DVB-S2 products is now in the tree.