|
V4L2 output driverA V4L2 output driver is available for STi5528, STm8000 and STb7100 SoCs. This driver supports the streaming video buffer interface of a V4L2 output device, which allows decoded video in YCrCb 422R and STMicroelectronics' private YCrCb formats to be presented in real-time on a dedicated hardware video plane. It also allows graphics buffers (DVD sub-picture, for example) to be streamed in the same way as video onto a separate graphics plane (distinct from the framebuffer and video). Please refer to the V4L2 API documentation for more information on V4L2 programming. Installing the video output module
Before loading the video output module the generic "Video For Linux" support (
Note: The framebuffer module must already have been loaded.
The video output module is called For example, to install the module on an STm8000, enter the commands:
Devices and planesThe supported hardware all provide a number of display planes which, when enabled, are digitally mixed together using global and per-pixel alpha transparency.
The video output driver can utilize two types of these hardware display planes to present real-time streaming video or graphics. Firstly "video" planes display 422 or 420 YUV video, which can be resized and positioned anywhere on the screen. However the pixel formats they use are not those typically found in PC applications; the only standard format they support is V4L2_PIX_FMT_UYVY. Secondly "graphics" planes (known as GDPs) can display a number of standard RGB formats as well as V4L2_PIX_FMT_UYVY. The buffer formats supported can be listed using the
The driver registers a device for each plane it supports. By default, V4L will assign unique, incrementing, minor device numbers starting at zero for each device registered. Traditionally these have a corresponding device file named
Previous versions of the driver, registered devices with the minor number starting at 50. If required, this behavior can be maintained using the
Table 5: Registered hardware planes shows the planes registered (using the name given in the chip datasheets) on each supported device.
These planes all appear below the framebuffer plane, so to see them the framebuffer must either have per-pixel alpha transparency or have a global transparency value set.
On the STb7100, VID1 is only supported on the main HD display pipeline and VID2 on the auxiliary display pipeline. A device will only be available if the framebuffer has started a display on the necessary pipeline (depending on the build configuration option Video buffers
Video is displayed using memory buffers obtained using the V4L2 LimitationsThe V4L2 ioctls that enumerate and set the display standard are deliberately limited to report only the current display mode, as set by the framebuffer driver. Unlike the devices V4L2 was originally designed for, STMicroelectronics' devices combine graphics and video on the same display using integrated hardware. Therefore the decision was taken that only one interface (the framebuffer) to control the display mode would be supported.
Streaming I/O with userspace pointers (using Currently, there is no comprehensive support for the enumeration and control of the different display output configurations possible on STMicroelectronics' SoCs. By default, the video planes are connected to the main TV output mixer on the device; the video content is mixed with the framebuffer content and the final display is routed to the RGB (TV SCART) and CVBS video DACs.
Both interlaced and progressive buffer content is supported, in both interlaced and progressive display modes. However, only
Specifying a buffer timestamp other than STMicroelectronics specific extensions
V4L2 does not include a way of specifying a subrectangle of a buffer to be displayed. This is inconvenient when the width of buffers must be rounded up, for instance to accommodate STMicroelectronics' macro block video buffer formats, or to implement features such as pan and scan. To support this, if the type field is set to
The video planes support two STMicroelectronics specific buffer formats, which are typically used when decoding MPEG video with the on-chip hardware MPEG2 decoder. The Controls
The V4L2 output driver supports the following controls, which can be listed, queried and set in the standard V4L2 method (see API documentation for details).
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||