API change

From IVTV

Jump to: navigation, search

UPDATE

The new api has been accepted into mainline kernel version 2.6.18. All version of ivtv (>=0.8) for these kernels will use this api.

Mythtv 0.20 has support for the new api and so does mplayer-1.0_rc1.



This ivtv driver has always been developed outside the linux kernel. The consequence of this decision is that the API with applications also developed independently. The result is an API that is very much ivtv specific.

However, there are other drivers that do similar things but with a different API. Now that ivtv is in the process of moving into the kernel the plan is to put all APIs together and create a better, more generic official V4L2 API for these kinds of devices.

When ivtv finally is merged into the kernel, this new API will be the only supported API. The result is that applications that use the old ivtv-specific API will break. MythTV is the most notable example of such an application. It's really the unfortunate result of developing outside the kernel. What also helps make this change is that there is a new team of v4l developers (which includes myself these days) that is very active. And that the decision has been made that the old V4L1 API will be dropped from the kernel in July, no doubt requiring changes in many applications.

The plan for ivtv is that support for the new API will be added to the ivtv releases from 0.4 upwards until the last release before the driver ends up in the kernel. The kernel driver will no longer support the old API.

This means that as long as you are on a kernel without ivtv you can use one of the older ivtv releases and still support both old and new API. If applications want to support the newer ivtv from the kernel they will have to switch to the new API. Since support for the new API has also been added to the older ivtv releases, that application will still work if people use one of those ivtv releases.

However, ivtv versions before a certain ivtv-0.4.x release will not contain the new API and so will no longer work with applications using the new API.

More details will follow on this page when the new API is actually implemented. For now this is just an advance warning of future changes.

development