f82e1a7092
This patch changes the interface of Nitpicker to support dynamically dimensioned virtual frame buffers. This solves two problems: First, it enables a client to create a connection to nitpicker without donating much session quota in advance. The old interface required each screen-size-dependent client to donate as much memory as needed to allocate a screen-sized virtual framebuffer. For clients that are interested int the screen size but cover just a small portion of the screen (e.g., a banner, a menu, an applet that sits in the screen corner), this overprovisioning is painful. The new interface allows such clients to upgrade the session quota for an existing session as needed. Second, because each nitpicker session used to have a virtual frame buffer with a fixed size over the lifetime of the session, a client that wanted to implement a variable-sized window had to either vastly overprovide resources (by opening a session as large as the screen just in order to be prepared for the worst case of a maximized window), or it had to replace the session by a new one (thereby discarding the stacking order of the old views) each time the window changes its dimensions. The new interface accommodates such clients much better. |
||
---|---|---|
.. | ||
avplay_policy.h | ||
control_bar.cpp | ||
control_bar.h | ||
filter_framebuffer_policy.h | ||
framebuffer_root.h | ||
framebuffer_session_component.cc | ||
framebuffer_session_component.h | ||
input_service.cpp | ||
input_service.h | ||
main_window.cpp | ||
main_window.h | ||
main.cpp | ||
qt_avplay.pro | ||
README | ||
style.qrc | ||
style.qss | ||
target.mk |
This directory contains a simple Qt-based media player which is actually a graphical user interface for the SDL-based 'avplay' media player from 'libav'. It starts 'avplay' as a child and shows its graphical output in a 'QNitpickerViewWidget'. The widgets for controlling the player state send the according keyboard and mouse input events to 'avplay'. The 'qt_avplay' player supports the following configuration options: :'<mediafile name="..."/>:' name of the media file to play :'<framebuffer_filter name="..." ram_quota="..."/>': This node contains the name of a framebuffer filter service to filter the video output. It may appear multiple times. If specified more than once, it is possible to build a post-processing pipeline for the video display where each processing stage is executed by a separate program.