[linux-dvb] [RFC] V4L1 API removal proposal

Mauro Carvalho Chehab mchehab at infradead.org
Mon Apr 10 00:36:41 CEST 2006


Guys,

As stated at Documentation/feature-removal-schedule.txt, and announced
at Linuxtv.org (http://linuxtv.org/news.php?entry=2005-11-11-0.mchehab):

What:   Video4Linux API 1 ioctls and video_decoder.h from Video devices.
When:   July 2006
Why:    V4L1 AP1 was replaced by V4L2 API. during migration from 2.4 to
2.6
        series. The old API have lots of drawbacks and don't provide
enough
        means to work with all video and audio standards. The newer API
is
        already available on the main drivers and should be used
instead.
        Newer drivers should use v4l_compat_translate_ioctl function to
handle
        old calls, replacing to newer ones.
        Decoder iocts are using internally to allow video drivers to
        communicate with video decoders. This should also be improved to
allow
        V4L2 calls being translated into compatible internal ioctls.
Who:    Mauro Carvalho Chehab <mchehab at brturbo.com.br>

For now, we are not accepting newer V4L1 drivers.

My proposal for removing this broken API is:

1) Include some newer Kconfig options at 2.6.17 kernel;

2) I'm preparing a newer videodev2 device to make easier to migrate V4L1
drivers to V4L2;

3) By july, marking all V4L1 drivers as broken;

4) V4L1 Compat will be maintained for more time, but printing some
messages at system log warning that application is using obsoleted API
functions.

We should fix all obsolete V4L1 drivers to V4L2 API. This affects
several V4L drivers, and a few DVB drivers, based on SAA7146.

For (1), I've prepared a tree, available at 
http://linuxtv.org/hg/~mchehab/v4l1, with all drivers included there,
using the newer makefile stuff, with two new menu items:

  Enable Video For Linux API 1 (DEPRECATED) (VIDEO_V4L1) [Y/n/?]
  Enable Video For Linux API 1 compatible Layer (VIDEO_V4L1_COMPAT)
[Y/?] y
*

If VIDEO_V4L1 is unselected, all drivers that use videodev.h or
video_decoder.h instead of videodev2.h are hidden, so, only good V4L2
drivers will be available.

If VIDEO_V4L1_COMPAT is unselected, V4L1 compat api will be disabled,
allowing application guys to work on testing without V4L1 API.

You may see that only a few are currently V4L2 only drivers. However,
there are several drivers that are almost V4L2 drivers, but still need
just a few stuff from old headers.

Comments? Suggestions?

Cheers, 
Mauro.




More information about the linux-dvb mailing list