[RFC/PATCH 0/2] FrameBuffer emulator for V4L2/VideoBuf2

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

 



Hello,

On V4L2 brainstorming meeting in Warsaw we discussed the need of a
framebuffer userspace interface for video output devices. Such
framebuffer interface is aimed mainly for legacy applications and/or
interoperatibility with Xfbdev.

I proposed to give the idea of generic fb-on-top-of-video-node a second
try, now using the power of videobuf2.

This short patch series demonstrates that this approach is possible. We
succesfully implemented a framebuffer emulator and tested it with
s5p-hdmi driver on Samsung Exynos4 platform.

This initial version provides a basic non-accelerated framebuffer
device. The emulation is started on the first open of the framebuffer
device and stopped on last close. The framebuffer boots in 'blanked'
mode, so one also needs to make a call to blank ioctl (with
FB_BLANK_UNBLANK argument) to enable video output. 

We successfully managed to get vanilla Xfbdev server working on top of
it without ANY changes in X server sources. 

The framebuffer resolution and pixel format is autoconfigured from the
parameters of the corresponding video output node. One can use v4l2-ctrl
(or similar) tool to select pixel format, resolution, output, etc (and
in the near future also the composition on the target video device).

There a few requirements for the video output driver:
1. support for single-buffering mode
2. support for videoc_ioctl interface (this might change in the future)
3. use memory allocator that allows coherent mappings (mmaped framebuffer
   will be accessed by application while it is displayed by dma engine).

The changes that are needed in the video output driver are really
simple. Mainly one need to add just a call to vb2_fb_register(q, vfd)
and vb2_fb_register(fb) functions.

The future versions might aslo include the following features:
- vsync event translation into WAIT_VSYNC framebuffer ioctl
- support for frame buffer panning with upcoming S_COMPOSE ioctl

The patch series is based on the V2 of the s5p-hdmi driver. The complete
kernel tree will be available on:
git://git.infradead.org/users/kmpark/linux-2.6-samsung vb2-fb-tv branch.

An updated s5p-hdmi/tv driver will be posted soon.

Best regards
-- 
Marek Szyprowski
Samsung Poland R&D Center


Complete patch summary:

Marek Szyprowski (2):
  media: vb2: add frame buffer emulator for video output devices
  media: s5p-hdmi: add support for frame buffer emulator

 drivers/media/video/Kconfig              |    7 +
 drivers/media/video/Makefile             |    1 +
 drivers/media/video/s5p-tv/Kconfig       |    1 +
 drivers/media/video/s5p-tv/mixer.h       |    2 +
 drivers/media/video/s5p-tv/mixer_video.c |   10 +
 drivers/media/video/videobuf2-fb.c       |  565 ++++++++++++++++++++++++++++++
 include/media/videobuf2-fb.h             |   22 ++
 7 files changed, 608 insertions(+), 0 deletions(-)
 create mode 100644 drivers/media/video/videobuf2-fb.c
 create mode 100644 include/media/videobuf2-fb.h

-- 
1.7.1.569.g6f426
--
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