Customizable Multimedia Devices in Virtual Environments

Total Page:16

File Type:pdf, Size:1020Kb

Customizable Multimedia Devices in Virtual Environments Customizable Multimedia Devices in Virtual Environments Ankur Pai, Balasubramanian Seshasayee, Himanshu Raj and Karsten Schwan Center for Experimental Research in Computer Systems Georgia Institute of Technology Atlanta, Georgia 30332–0250 fpaiankur, bala, rhim, [email protected] Abstract—The separation of logical from physical devices maintain a consistent view of physical devices by presenting provided by modern virtualization techniques can be used to only a common minimal set of device features is too limiting enhance device functionality, including by emulating non-native and worse, it cannot account for changes in the environmental device functions in software. Such logically extended devices are particularly promising in the mobile domain, for embedded conditions or contexts in which devices are used. machines, handhelds, or phones. Challenges arise, however, from We argue that device sharing and interoperation in mobile the highly heterogeneous nature of portables and the devices with systems requires models and interfaces with which virtual- which they can interact. This suggests that device extensions ization infrastructures can dynamically change device func- should be dynamic, varied at runtime to adjust to new user needs and/or changes in environmental conditions. This paper tionality to account for runtime changes in device use, con- presents a model for runtime device extension and for then using ditions, and contexts. This paper presents such a model. It such extended devices. The model provides uniform interfaces to implements the safe, runtime extension of device functionality, native and extended devices, permits the safe runtime extension by enabling the virtualization layer, guest operating systems, of device functionality, and can be shown to operate across both or applications to safely specify and deploy custom code that stationary and mobile platforms, and arbitrary operating systems and applications. The model is implemented with the Xen virtual runs in conjunction with device accesses. This approach entails machine monitor (VMM) and shown useful for a Video4Linux a number of benefits, as detailed below: (V4L) multimedia device used by applications. Enhancements of • device functionality implemented in this context include image It provides a uniform view of devices to VMs, indepen- filtering and routing to remote clients, for camera devices using dent of the physical host. For instance, a TCP network V4L drivers and for applications using V4L, with small costs device may be implemented in software, by providing the incurred for runtime extension and/or changes to the logical TCP stack to the virtualization layer, or in hardware, by device, and with moderate execution costs exploiting the TCP offloading functions of an enhanced I. INTRODUCTION network interface [7]. The VMs using such a device need not be cognizant of how the TCP device is realized. Virtualization techniques enable a single device to be shared • It can be tuned to available hardware resources. For among several virtual machines (VMs), by deciding, at the instance, in the previous example, a node lacking a driver layer, how requests made to the virtual device are network interface supporting the offloading feature may mapped to the underlying physical platform. These decisions instead have a coprocessor that can be used to implement can be made without knowledge of the applications and the feature [3], without the VM being aware of this fact. operating systems using these devices, thereby ensuring porta- • It enables efficient use of remote devices. For instance, bility and interoperability without changes to participating an imaging application that requires only those frames systems and applications. Furthermore, this approach makes captured by a remote camera that contain specific fea- it possible to emulate, in software, devices that may not be tures can provide feature selection code that determines present physically [1], to transparently route requests to remote said features. Such an extension can use this code to devices when local ones are not available [2], and to even filter traffic, providing only the frames of interest to improve the functionality of physical devices by enhancing the application, thereby reducing communication and their virtual realization [3], [4]. computational overheads experienced by the application This paper addresses device sharing and interoperation in and the platform on which it runs [8]. the mobile domain, where challenges for device emulation • It opens up new possibilities for sharing device func- and extension are due to the diversity of actual devices, of tionality. Extending the previous example, when multiple device capabilities, and of the contexts in which they operate. VMs are interested in the same image features, common Additional challenges in the mobile domain are caused by the data can be shared at the device driver layer itself. fact that virtual machine migration, an important function in virtualized systems, will be difficult [5] without functionality A known problem associated with the runtime extension in addition to that provided by commercial products for data of system-level software by applications is safety [9], where centers [6]. For instance, an approach that allows VMs to faulty or even malicious code injected by applications into the Fig. 1. VMedia Architecture system layer can affect the behavior of other VMs that rely of the underlying hardware used to access the physical de- on the system. In our implementation, termed CustomCam, vice (such as PCI, USB, etc., or even network-based remote we use the split device driver model afforded by the Xen cameras), and instead, via V4L calls. The MediaGraph ab- hypervisor, on which we implement an overlay-based mid- straction used in VMedia further enhances this approach by dleware framework in the device backend (i.e., in the device allowing flexible mappings to be performed between logical driver layer). This middleware permits the runtime extension and physical devices. For instance, the size of a captured of overlay functions by allowing arbitrary code fragments to image may be enhanced by using concatenated images from be included into the overlay, i.e., into the device feature set, two physical cameras. MediaGraph also encourages increased at any time deemed appropriate by the application. Safety sharing among VMs, where based on the type of images is attained by use of dynamic code generation, where code desired by several VMs, opportunities to share the images fragments specified in a safe subset of the C language [10], are exploited by performing software-based transforms on and runtime binary code generation guarantees that such code captured images, thus reducing contention on the physical cannot damage other elements of the device driver layer. Ex- device. perimental results indicate that the cost of setting and resetting VMedia uses the Xen split driver model to separate logical such custom code is small (16ms and 1.2ms, respectively, from physical devices. As shown in Figure 1, it has a logical for the codes used in our experimentation). Further, running V4L-based video device driver as a frontend within each guest the custom code in the driver layer does not add significant domain, and a backend running in the service domain. Xen overheads to the layer's execution. Results also show that links frontend and backend via an efficient messaging system, sharing custom codes among multiple applications and the termed event channels, and data transfers are carried out using VMs that run them can yield savings compared to domain- shared pages. The backend interacts with the physical device level implementations of such functions. and provides device data to the frontend. In VMedia, the The remainder of the paper is organized as follows. Sec- backend uses the EV(ent)Path [11] overlay-based middleware tion II overviews VMedia, followed by Section III, which framework to implement the communication and computation discusses the architecture of CustomCam. Isolation and shar- actions necessary to extend Xen's basic virtualized devices to ing properties of CustomCam are discussed in Sections IV our device model. With this middleware, device accesses are and V respectively. Section VI discusses typical usage sce- performed via overlay graphs composed of software entities, narios for CustomCam, and experimental results are shown in termed `stones', that handle and process device messages Section VII. Related work is covered in Section VIII, while (events) traversing the overlay linking backend to physical Section IX concludes the paper. device. With EVPath and in contrast to Xen's event-based VM- VM communication mechanism, linkages between stones can II. VMEDIA OVERVIEW extend across multiple machines and as stated above, compu- CustomCam is built on top of the VMedia framework tations can be performed as events traverse the overlay. In this ( [4]). VMedia is a multimedia sharing framework that presents fashion, higher level services or applications are composed as logical video devices to VMs, via the standard V4L interface. sets of computations that can filter events, forward them, or Consequently, device virtualization is carried out independent transform them. Because these computations are specified in ECL (a subset of the C language supporting loop, conditional, In addition to the isolation mechanism, guest VMs can also and return statements), they can serve the needs of individual benefit from recovery functionality. To
Recommended publications
  • Version 7.8-Systemd
    Linux From Scratch Version 7.8-systemd Created by Gerard Beekmans Edited by Douglas R. Reno Linux From Scratch: Version 7.8-systemd by Created by Gerard Beekmans and Edited by Douglas R. Reno Copyright © 1999-2015 Gerard Beekmans Copyright © 1999-2015, Gerard Beekmans All rights reserved. This book is licensed under a Creative Commons License. Computer instructions may be extracted from the book under the MIT License. Linux® is a registered trademark of Linus Torvalds. Linux From Scratch - Version 7.8-systemd Table of Contents Preface .......................................................................................................................................................................... vii i. Foreword ............................................................................................................................................................. vii ii. Audience ............................................................................................................................................................ vii iii. LFS Target Architectures ................................................................................................................................ viii iv. LFS and Standards ............................................................................................................................................ ix v. Rationale for Packages in the Book .................................................................................................................... x vi. Prerequisites
    [Show full text]
  • Camera Driver Development.Pptx
    CAMERA DRIVER DEVELOPMENT Kyle Xu OUTLINE Prepare the Hardware Set up Environment Write a Camera Driver Solve Remaining Problems PREPARE THE HARDWARE TI OMAP4 Pandaboard Aptina AR0832 Image Sensor Ominivision OV5650 Image Sensor Pandaboard Adapters and Connectors Datasheets AR0832 OV5650 PREPARE THE HARDWARE System Setup OUTLINE Prepare the Hardware Set up Environment Write a Camera Driver Solve Remaining Problems SET UP ENVIRONMENT Install Ubuntu 12.04 on Pandaboard Powerful and fast server for cross compilation 32-core 5 min on server vs. 5 hours on Pandaboard Understand Data Path and Interfaces DATA PATH Camera Serial Interface (CSI-2) Image Sub-System (ISS) Image Sensor INTERFACE: CSI-2 N data lanes and one data clock lane Each lane is a pair of +/- lines. I2C standard control interface (CCI) SCL SDA INTERFACE: Hardware Level Pandaboard Camera Expansion Connector (J-17) 5 CSI-2 lanes (including one CLK lane) I2C control lines (SCL, SDA) Other lines for battery power, camera clock, GPIO… Image Sensor 2 CSI-2 data lanes + 1 CSI-2 clock lane I2C control lines (as slave) Powered from on board battery OUTLINE Prepare the Hardware Set up Environment Write a Camera Driver Solve Remaining Problems WRITE A CAMERA DRIVER Describe the camera to the board Write the driver file a. Voltage Regulator and Clock b. I2C Bus c. V4L2 d. Driver Framework e. Complete Template Implement the driver to Linux Kernel DESCRIBE THE CAMERA TO THE BOARD Create ar0832.h to describe camera’s platform information struct ar0832_platform_data containing fields about voltage regulator, clock, power on/off methods Edit board-omap4panda-camer.c Assign values or functions to ar0832_platform_data’s fields.
    [Show full text]
  • Linux Kernal II 9.1 Architecture
    Page 1 of 7 Linux Kernal II 9.1 Architecture: The Linux kernel is a Unix-like operating system kernel used by a variety of operating systems based on it, which are usually in the form of Linux distributions. The Linux kernel is a prominent example of free and open source software. Programming language The Linux kernel is written in the version of the C programming language supported by GCC (which has introduced a number of extensions and changes to standard C), together with a number of short sections of code written in the assembly language (in GCC's "AT&T-style" syntax) of the target architecture. Because of the extensions to C it supports, GCC was for a long time the only compiler capable of correctly building the Linux kernel. Compiler compatibility GCC is the default compiler for the Linux kernel source. In 2004, Intel claimed to have modified the kernel so that its C compiler also was capable of compiling it. There was another such reported success in 2009 with a modified 2.6.22 version of the kernel. Since 2010, effort has been underway to build the Linux kernel with Clang, an alternative compiler for the C language; as of 12 April 2014, the official kernel could almost be compiled by Clang. The project dedicated to this effort is named LLVMLinxu after the LLVM compiler infrastructure upon which Clang is built. LLVMLinux does not aim to fork either the Linux kernel or the LLVM, therefore it is a meta-project composed of patches that are eventually submitted to the upstream projects.
    [Show full text]
  • Release Notes for X11R7.5 the X.Org Foundation 1
    Release Notes for X11R7.5 The X.Org Foundation 1 October 2009 These release notes contains information about features and their status in the X.Org Foundation X11R7.5 release. Table of Contents Introduction to the X11R7.5 Release.................................................................................3 Summary of new features in X11R7.5...............................................................................3 Overview of X11R7.5............................................................................................................4 Details of X11R7.5 components..........................................................................................5 Build changes and issues..................................................................................................10 Miscellaneous......................................................................................................................11 Deprecated components and removal plans.................................................................12 Attributions/Acknowledgements/Credits......................................................................13 Introduction to the X11R7.5 Release This release is the sixth modular release of the X Window System. The next full release will be X11R7.6 and is expected in 2010. Unlike X11R1 through X11R6.9, X11R7.x releases are not built from one monolithic source tree, but many individual modules. These modules are distributed as individ- ual source code releases, and each one is released when it is ready, instead
    [Show full text]
  • Building Digital TV Support on Linux
    Building Digital TV support on Linux Mauro Carvalho Chehab Linux Kernel Expert Samsung Open Source Group Aug 21, 2014 Not to be used for commercial purpose without getting permission Open Source Group – Silicon Valley All information, opinions and ideas herein are exclusively the author's own opinion © 2014 SAMSUNG Electronics Co. Samsung Research Brazil Biography ● Maintainer of the media and EDAC subystems at the Linux Kernel ● Works at Samsung Research Brazil as R&D Director on Open Source, being part of the Samsung's Open Source Group. ● Worked during 5 years at Red Hat, where, besides maintaining the upstream Kernel subsystems, were also responsible for maintaining several subsystems at RHEL's Kernel; ● Developed several device drivers for video stream capture and analog/digital TV reception at the Linux Kernel, including most of the drivers for the Brazilian digital TV standard (SBTVD / ISDB-T). Open Source Group – Silicon Valley © 2014 SAMSUNG Electronics Co. Samsung Research Brazil Digital TV challenges ● Major standards: – ATSC - Advanced Television System Committee ● Defined in United States – DVB - Digital Video Broadcasting ● Defined in Europe – ISDB – Integrated Services Digital Broadcasting Terrestrial ● Defined in Japan – DTMB - Digital Terrestrial Multimedia Broadcast ● Defined in China Open Source Group – Silicon Valley © 2014 SAMSUNG Electronics Co. Samsung Research Brazil Digital TV challenges ● Digital TV variants: – Terrestrial (air) standards are used by air broadcasts: ATSC, DVB-T, DVB-T2, ISDB-T, DMB; – Cable standards are used by cable operators: DVB-C, DVB-C2, ClearQAM (DVB-C Annex B), ISDB-C; – Satellite standards are used by Satellite operators: DVB-S, DVB-S2, ISDB-S. Open Source Group – Silicon Valley © 2014 SAMSUNG Electronics Co.
    [Show full text]
  • Zynq Ultrascale+ Mpsoc TRD User Guide (UG1221)
    Zynq UltraScale+ MPSoC Base Targeted Reference Design User Guide UG1221 (v2016.4) March 22, 2017 Revision History The following table shows the revision history for this document. Date Version Revision 03/22/2017 2016.4 Released with Vivado Design Suite 2016.4 with no changes from previous version. 12/15/2016 2016.3 Updated for Vivado Design Suite 2016.3: Updated Reference Design Overview. Replaced Chapter 2, Reference Design. Updated Figure 3-1 and the following paragraph. Updated Figure 4-1 and perfapm library descriptions in Chapter 4, RPU-1 Software Stack (Bare-metal). Updated Figure 6-1, Figure 6-2, and DDR region descriptions under Memories in Chapter 6. Updated Figure 7-1, Figure 7-4, and Figure 7-5. Added X11 section, deleted first paragraph under EGLFS QPA, and modified “Evdev” section to “Libinput” in Chapter 7, APU Software Platform. Updated Table 8-2 and clock descriptions under Clocks, Resets and Interrupts in Chapter 8. 07/22/2016 2016.2 Updated for Vivado Design Suite 2016.2: Added “GPU” to hardware interfaces and IP under Key Features. Changed link under Design Modules from the wiki site to the HeadStart Lounge and updated link under Tutorials to the Base TRD wiki site. Deleted steps 2 and 4 under Tutorials and added reference tutorial (last bullet). Added second to last sentence to second paragraph under Boot Process. Added “Load PMU FW” component to Figure 6-1. Clarified Message Passing section (text only). Changed “PCA9546” to PCA9548” in Figure 8-7. 06/29/2016 2016.1 Initial Xilinx release. Zynq UltraScale+ MPSoC Base TRD www.xilinx.com Send Feedback 2 UG1221 (v2016.4) March 22, 2017 Table of Contents Revision History .
    [Show full text]
  • Open Source Used in ATA 191 12.0(1)
    Open Source Used In ATA 191 12.0(1) Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. Text Part Number: 78EE117C99-140931790 Open Source Used In ATA 191 12.0(1) 1 This document contains licenses and notices for open source software used in this product. With respect to the free/open source software listed in this document, if you have any questions or wish to receive a copy of any source code to which you may be entitled under the applicable free/open source license(s) (such as the GNU Lesser/General Public License), please contact us at [email protected]. In your requests please include the following reference number 78EE117C99-140931790 Contents 1.1 bridge 1.1 1.1.1 Available under license 1.2 busybox 1.23.1 1.2.1 Available under license 1.3 c-ares 1.12.0 1.3.1 Available under license 1.4 curl 7.26.0 1.4.1 Available under license 1.5 dnsmasq 2.78 1.5.1 Available under license 1.6 dropbear 2016.74 1.6.1 Available under license 1.7 ebtables 2.0.10-4 1.7.1 Available under license 1.8 Expat 2.2.0 :2.2.0 1.8.1 Available under license 1.9 glibc-2.21 2.21 1.9.1 Available under license 1.10 gsoap 2.6.2 1.10.1 Available under license 1.11 iproute2 4.10.0 1.11.1 Available under license 1.12 iptables 1.6.1 1.12.1 Available under license 1.13 led 1.0 1.13.1 Available under license Open Source Used In ATA 191 12.0(1) 2 1.14 linux 3.4.110-rt140-v1.3.5-rc3+ 1.14.1 Available under license 1.15 mDNSResponder
    [Show full text]
  • Unbreakable Enterprise Kernel Release Notes for Unbreakable Enterprise Kernel Release 6 Update 1
    Unbreakable Enterprise Kernel Release Notes for Unbreakable Enterprise Kernel Release 6 Update 1 F35561-04 May 2021 Oracle Legal Notices Copyright © 2020, 2021 Oracle and/or its affiliates. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract.
    [Show full text]
  • Linux Kernel User Documentation V4.20.0
    usepackagefontspec setsansfontDejaVu Sans setromanfontDejaVu Serif setmonofontDejaVu Sans Mono Linux Kernel User Documentation v4.20.0 The kernel development community 1 16, 2019 Contents 1 Linux kernel release 4.x <http://kernel.org/> 3 2 The kernel’s command-line parameters 9 3 Linux allocated devices (4.x+ version) 109 4 L1TF - L1 Terminal Fault 171 5 Reporting bugs 181 6 Security bugs 185 7 Bug hunting 187 8 Bisecting a bug 193 9 Tainted kernels 195 10 Ramoops oops/panic logger 197 11 Dynamic debug 201 12 Explaining the dreaded “No init found.” boot hang message 207 13 Rules on how to access information in sysfs 209 14 Using the initial RAM disk (initrd) 213 15 Control Group v2 219 16 Linux Serial Console 245 17 Linux Braille Console 247 18 Parport 249 19 RAID arrays 253 20 Kernel module signing facility 263 21 Linux Magic System Request Key Hacks 267 i 22 Unicode support 273 23 Software cursor for VGA 277 24 Kernel Support for miscellaneous (your favourite) Binary Formats v1.1 279 25 Mono(tm) Binary Kernel Support for Linux 283 26 Java(tm) Binary Kernel Support for Linux v1.03 285 27 Reliability, Availability and Serviceability 293 28 A block layer cache (bcache) 309 29 ext4 General Information 319 30 Power Management 327 31 Thunderbolt 349 32 Linux Security Module Usage 353 33 Memory Management 369 ii Linux Kernel User Documentation, v4.20.0 The following is a collection of user-oriented documents that have been added to the kernel over time. There is, as yet, little overall order or organization here — this material was not written to be a single, coherent document! With luck things will improve quickly over time.
    [Show full text]
  • Multimedia in Embedded Linux Systems
    Multimedia in embedded Linux systems Multimedia in embedded Linux systems Free Electrons 1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Rights to copy © Copyright 2004-2009, Free Electrons [email protected] Document sources, updates and translations: http://free-electrons.com/docs/multimedia Corrections, suggestions, contributions and translations are welcome! Attribution ± ShareAlike 3.0 Latest update: Sep 15, 2009 You are free to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode 2 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Scope of this training Multimedia in embedded Linux systems This training targets the development of multimedia-capable embedded Linux systems. Though it can be useful to playing or creating multimedia content on GNU/Linux desktops, it is not meant to cover everything about this topic. Audio in embedded Linux systems is already covered in a dedicated training: http://free-electrons.com/training/audio Linux 2.6 This training only targets new systems based on the Linux 2.6 kernel.
    [Show full text]
  • Open Source Used in Cisco IP Conference Phone 8832 Release
    Open Source Used In 8832 12-0-1 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. Text Part Number: 78EE117C99-148999590 Open Source Used In 8832 12-0-1 1 This document contains licenses and notices for open source software used in this product. With respect to the free/open source software listed in this document, if you have any questions or wish to receive a copy of any source code to which you may be entitled under the applicable free/open source license(s) (such as the GNU Lesser/General Public License), please contact us at [email protected]. In your requests please include the following reference number 78EE117C99-148999590 Contents 1.1 busybox 1.21.0 1.1.1 Available under license 1.2 curl 7.26.0 1.2.1 Available under license 1.3 dbus-1.8.2 1.8.2 1.3.1 Available under license 1.4 dnsmasq 2.46 1.4.1 Available under license 1.5 glibc-2.20 2.20 1.5.1 Available under license 1.6 libcrypto 1.0 1.0 1.6.1 Available under license 1.7 libxml2 2.9.4 1.7.1 Available under license 1.8 Linux Kernel 3.16.38 3.16.38 1.8.1 Available under license 1.9 mongoose 3.1 1.9.1 Available under license 1.10 mtd-util 2.0 2.0.0 1.10.1 Available under license 1.11 openssh 5.6 1.11.1 Available under license 1.12 OpenSSL 1.0.2j 1.12.1 Available under license 1.13 OpenSSL 1.0.2j :1 1.13.1 Notifications Open Source Used In 8832 12-0-1 2 1.13.2 Available under license 1.14 OpenSSL patch to 0.9.8 branch to add RFC5649
    [Show full text]
  • Video4linux: Future
    Video4Linux: Past Present Future Hans Verkuil Tandberg Telecom AS Past: Statistics Kernel v4l-dvb tree % of all drivers Until kernel 2.6 the v4l subsystem 2.0 287953 1.00% 2.2.26 643187 1.30% was small: 1-2% of all drivers. 2.4.0 829547 1.50% 2.4.36 1477303 1.70% 2.6 added dvb and many new v4l 2.6.0 4634875 5.80% 2.6.10 4232200 4.60% drivers and it has grown from 5% to 2.6.16 5569219 5.40% >9%. 2.6.17 7189484 7.00% 2.6.18 7910318 7.70% 2.6.19 8081530 7.60% Third-largest subsystem after scsi 2.6.20 8419446 7.80% and net. 2.6.21 8556067 7.80% 2.6.22 9121077 8.10% 2.6.23 9334386 8.20% TV capture devices, radio receivers, 2.6.24 9667264 8.10% webcams, MPEG encoder and 2.6.25 10121497 8.10% 2.6.26 11244052 8.90% decoder devices, DVB devices, 2.6.27 12322637 9.60% 2.6.28 12947608 9.30% System-on-a-Chip video devices, FM 2.6.29 13800424 8.70% 2.6.30 14866804 8.90% transmitters, supporting i2c devices. 2.6.31 15457024 9.00% 2.6.32-rc3 16464660 9.28% Present: state of V4L2 V4L2 public API: pretty good. Proven to be reasonably future proof except for SoCs. V4L drivers: anything from plain broken to excellent. Esp. the older, more obscure drivers are in poor condition, though. Drivers suffer from reinventing the wheel due to lack of v4l core services.
    [Show full text]