Initial media controller implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rather than writing long mails on what a media controller is and what it can
do, I thought that I could just as well implement it.

So in 4 hours I implemented pretty much all of the media controller
functionality. The main missing features are the ability to register non-v4l
device nodes so that they can be enumerated and setting controls private to
a sub-device. For that I should first finish the control handling framework.

The datastructures and naming conventions needs to be cleaned up, and it
needs some tweaking, but I'd say this is pretty much the way I want it.

The code is available here:

http://linuxtv.org/hg/~hverkuil/v4l-dvb-mc/

It includes a v4l2-mc utility in v4l2-apps/util that has the
--show-topology option that enumerates all nodes and subdev. Currently any
registered subdevs and v4l device nodes are already automatically added.
Obviously, there are no links setup between them, that would require work
in the drivers.

Total diffstat:

 b/linux/include/media/v4l2-mc.h         |   54 +++++
 b/v4l2-apps/util/v4l2-mc.cpp            |  325 ++++++++++++++++++++++++++++++++
 linux/drivers/media/video/v4l2-dev.c    |   15 +
 linux/drivers/media/video/v4l2-device.c |  265 +++++++++++++++++++++++++-
 linux/include/linux/videodev2.h         |   74 +++++++
 linux/include/media/v4l2-dev.h          |    6
 linux/include/media/v4l2-device.h       |   23 +-
 linux/include/media/v4l2-subdev.h       |   11 -
 v4l2-apps/util/Makefile                 |    2
 9 files changed, 762 insertions(+), 13 deletions(-)

Ignoring the new utility that's just 435 lines of core code.

Now try this with sysfs. Brrr.

Regards,

	Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux