KernelNewbies:

About Me

I've written media-related Linux drivers for consumer and embedded devices since 2001 and I'm one of the Video4Linux core developers. I've given Linux media-related talks at the FOSDEM, LPC and ELC. I currently work as an embedded Linux consultant through my company Ideas on Board where I develop a wide range of embedded drivers including DRM/KMS and V4L2.

Project Details

The [http://linuxtv.org/downloads/v4l-dvb-apis/media_controller.html Media Controller] kernel API has been designed to exposing detailed information about media devices, and video capture devices in particular, to userspace. While the API is not limited to a particular type of device, it has so far been used mostly to expose the topology of complex embedded media devices to applications, allowing a fine-grained control over the device that wasn't possible through the V4L API alone.

Handling those devices in userspace isn't simple due to the hardware complexity. Careful testing of applications and userspace libraries is thus needed, especially when they aim at supporting a wide range of devices. The fact that the devices with which code needs to be tested are embedded and not always easily available to developers further increases testing issues.

A similar issue exists with the V4L API and has been addressed by a [http://lwn.net/Articles/607160/ kernel driver] that emulates a V4L device without requiring hardware. The goal of this project is to create a similar driver for the Media Controller API.

Resources

Tasks

Tasks must be completed in the order listed. The tasks list isn't complete yet.

Building the Media Controller Test Tool

A userspace utility named media-ctl is available as part of the v4l-utils package. In order to test the code that will be developed for this project the latest version of media-ctl will be needed. Furthermore, as changes to media-ctl might need to be performed as well, the utility should be compiled from its sources.

Testing the Test Tool with a Hardware Device

This task is optional but recommended.

While no access to hardware is needed to implement a virtual Media Controller driver, understanding the API is easier done when testing on a real device. All USB cameras [http://ideasonboard.org/uvc/faq/#faq1 compatible with the USB Video Class] can be used to first experiment with the Media Controller API.

The uvcvideo kernel driver implements the Media Controller API when the kernel is build with Media Controller support.

Testing the Virtual V4L Driver

The Virtual V4L driver is available in the drivers/media/platform/vivid/ directory of the kernel sources.

Creating a Skeleton Driver

The skeleton driver will serve as the base for the virtual Media Controller driver.

Contact Info

Email: MailTo(laurent.pinchart AT ideasonboard DOT com) IRC: pinchartl on freenode.net and irc.oftc.net


CategoryHomepage

KernelNewbies: LaurentPinchart (last edited 2015-02-19 09:10:17 by LaurentPinchart)