Find a file
Ander Conselvan de Oliveira 6aae4d39d5 compositor-drm: Add hardware accelerated capture of screen using libva
This patch adds a feature to the DRM backend that uses libva for
encoding the screen contents in H.264. Screen recording can be
activated by pressing mod-shift-space q. A file named capture.h264
will be created in the current directory, which can be muxed into
an MP4 file with gstreamer using

gst-launch filesrc location=capture.h264 ! h264parse ! mp4mux ! \
           filesink location=file.mp4

This is limitted to the DRM compositor in order to avoid a copy when
submitting the front buffer to libva. The code in vaapi-recorder.c
takes a dma_buf fd referencing it, does a colorspace conversion using
the video post processing pipeline and then uses that as input to the
encoder.

I'm sending this now so I get comments, but this is not ready for
prime time yet. I have a somewhat consistent GPU hang when using
i915 with SandyBridge. Sometimes a page flip never completes. If you
want to try this anyway and your system get stuck, you might need to
run the following:

  # echo 1 > /sys/kernel/debug/dri/0/i915_wedged

After that, alt-sysrq [rv] should work.

Once that's fixed it would also be good to make the parameters used by
the encoder more flexible. For now the QP parameter is hardcoded to 0
and we have only I and P frames (no B frames), which causes the
resulting files to be very large.
2013-08-30 13:44:40 -07:00
clients .gitignore: Reflect recent client binary rename 2013-08-30 13:00:16 -07:00
data window.c: frame_button: Maximize, minimize, close, icon buttons in window frame 2012-05-10 16:19:33 -04:00
man add [xwayland] path weston.ini option 2013-08-16 10:55:59 -07:00
protocol protocol: Add missing xml files to EXTRA_DIST 2012-02-26 22:29:18 -05:00
shared evdev-touchpad: Set some options using weston.ini 2013-08-12 22:42:17 -07:00
src compositor-drm: Add hardware accelerated capture of screen using libva 2013-08-30 13:44:40 -07:00
tests Add more missing config.h #includes 2013-08-26 14:59:14 -07:00
wcap Add more missing config.h #includes 2013-08-26 14:59:14 -07:00
.gitignore gitignore: Ignore test-driver 2013-03-28 14:04:05 -04:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac compositor-drm: Add hardware accelerated capture of screen using libva 2013-08-30 13:44:40 -07:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am autotools: Don't use wayland-scanner.m4 2013-08-20 11:15:19 -07:00
notes.txt Add informal notes file 2012-10-25 15:00:42 -04:00
README Flesh out README a bit, link to building instructions 2012-07-20 12:26:23 -04:00
wayland-scanner.mk autotools: Don't use wayland-scanner.m4 2013-08-20 11:15:19 -07:00
weston.ini Add a --shell option to override the default desktop-shell 2013-08-26 22:07:03 -07:00

Weston

Weston is the reference implementation of a Wayland compositor, and a
useful compositor in its own right.  Weston has various backends that
lets it run on Linux kernel modesetting and evdev input as well as
under X11.  Weston ships with a few example clients, from simple
clients that demonstrate certain aspects of the protocol to more
complete clients and a simplistic toolkit.  There is also a quite
capable terminal emulator (weston-terminal) and an toy/example desktop
shell.  Finally, weston also provides integration with the Xorg server
and can pull X clients into the Wayland desktop and act as a X window
manager.

Refer to http://wayland.freedesktop.org/building.html for buiding
weston and its dependencies.