Efficient multimedia platform software.
libavg works exceptionally well with other open-source solutions for sound, networking, and hardware device support. This combination results in a complete and well-integrated package that's perfect for interactive installations. libavg uses python as its scripting language and an XML-based layout language for screen design.
At the heart of libavg lies the screen layout engine. This feature is responsible for dealing with graphical elements like images, videos, text, and camera output in a generic way and putting them on the screen efficiently. It boasts a number of impressive features, including hierarchial layouts, cropping, scaling, rotation, element-level transparency, image alpha channels, additive and subtractive blend modes, averaging blend modes, subpixel precision for smooth animations, hardware-accelerated OpenGL rendering, and warping and mirroring of elements.
libavg has impressive video support capabilities that enable playback pause and restart, playback at user-determined framerates, and complete display engine integration - including cropping, scaling, rotation, and transparency. Videos with an alpha channel are also supported. This software is very high performing and can play back two full HD videos at once with the right setup. Seeks at interactive rates are also possible without delays using mjpg files.
Users can utilize the text rendering feature in libavg with ease. It supports paragraph-level layout using html-like syntax, and allows for bold/italic text, colored text, left-/right-justified paragraphs, centered paragraphs, kerning, antialiasing, and full internationalization using utf8. Furthermore, the layout -- including font face and size -- changes in mid-paragraph.
Sound support in libavg allows for mixing of an unlimited amount of stereo sounds with a high-quality limiter to avoid artifacts on volume spikes. Additionally, it supports alsa on Linux and Core Audio on Mac OS X for low-latency sound output.
As for camera support, libavg supports a wide variety of firewire and Video4Linux cameras with resolutions up to 1024x768. It even allows users to tweak camera parameters like brightness, exposure, saturation, and gamma.
Animations and tracking are also a breeze to execute in libavg. The software has built-in support for smooth, time-based animations. Any numeric attribute of a node -- x, y, angle, etc. -- can be animated with a single line of code to create linear and spline-based movements. Users can also take advantage of libavg's tracking feature, which supports camera tracking and multitouch surfaces built using firewire and Video4Linux cameras.
Last but not least, authoring in libavg is a snap. All of python is available for scripting, and libavg directly provides properties of display elements as python variables, a full-featured event handling system, timers (setTimeout, setInterval), support for logging, high-level profiling to find performance bottlenecks, and high-precision frame timing and synchronization to vertical blanking for smooth animations.
Version 0.9.0: N/A