Difference between revisions of "Development: Linux DVB API history and future"

From LinuxTVWiki
Jump to: navigation, search
(Result of v5 API candidacy)
(v3: DVB is part of the official Kernel)
Line 12: Line 12:
  
 
== v3: DVB is part of the official Kernel ==
 
== v3: DVB is part of the official Kernel ==
This API version mainly contained namespace cleanups but was mostly binary-compatible with the NEWSTRUCT branch.
+
This API version mainly contained namespace cleanups but was mostly binary-compatible with the NEWSTRUCT branch. It was merged on 2003 (http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/include/linux/dvb/version.h?id=33e9942ccbf8ecbb35f4eb576a1f650b15ba18a9).
  
 
Today, v3 of the DVB API continues to serve the Linux community.   
 
Today, v3 of the DVB API continues to serve the Linux community.   

Revision as of 01:37, 6 February 2014

The Linux DVB API (application programming interface) is essentially a kernel interface for Digital Video Broadcasting device drivers.

Digital Video Broadcasting is an evolving field that continuously sees new chipsets, STBs and software being developed and becoming available. As demands and requirements change, even the best-established APIs have to evolve too in order to keep pace with the technological advancements. Past development of the DVB API has proceeded in a very conservative way such that application developers see only a minimum impact on their already-written code.

Here provided is a short overview of past, present and perhaps future API milestones:

v1: the old Nokia API

Originally implemented on the first AV711x-based Siemens/TechnoTrend DVB-C and DVB-S cards by Christian Theiss and the Metzler Brothers for Convergence Integrated Media.

v2: the NEWSTRUCT branch

The first major Refactoring Step, after this process had stabilized we were ready for all DVB-S, DVB-C and DVB-T cards and STBs available in those days.

v3: DVB is part of the official Kernel

This API version mainly contained namespace cleanups but was mostly binary-compatible with the NEWSTRUCT branch. It was merged on 2003 (http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/include/linux/dvb/version.h?id=33e9942ccbf8ecbb35f4eb576a1f650b15ba18a9).

Today, v3 of the DVB API continues to serve the Linux community.

Both Multiproto and S2API were originally proposals for DVB API version 3.3, though their statuses as "version 3" have been dropped and, instead, adopted as the version 5 API proposals (see below).

v4: use all features of today's STBs

The v3 API had several shortcomings when looking at it from the perspective of DVB system-on-a-chip (SoC) architetures used in newer generation set-top-boxes (STBs).

In 2004, the development of the v4 API was initiated to extend support coverage for the specific needs of these systems and in 2005 the first working version could be demonstrated.

Because the majority of the DVB community is working with standard PC hardware and not DVB SoCs, development was done by just a few core developers initially. When, due to various reasons, active pursuit of the project could not be maintained by these developers, the v4 API development was stopped and, consequently, has been passed by during the last years.

Some further history and information on this unfinished project can be found here.

v5: today.

Though originally slated as version 3.3. proposals, both Multiproto and S2API were designated as candidates for the version 5 of the API.

S2API was selected and added in kernel 2.6.28. An RFC on a proposal for adding support for ISDB-T/ISDB-Tsb to DVB-API v5 was issued on 3 Aug 2009, with the goal to be added in 2.6.32.