BMPx
From Wikipedia, the free encyclopedia
BMPx | |
Beep Media Player with default skin |
|
Developer: | BMP Development Team |
---|---|
Latest release: | 0.34.3 / November 12, 2006 |
OS: | Linux, Unix-like |
Use: | Audio player |
License: | GNU General Public License |
Website: | beep-media-player.org |
BMPx is the successor to the Beep Media Player. BMPx is a free and open-source media player for most modern Unix operating systems.
Contents |
[edit] Introduction
While the original BMP was a fork off XMMS, the new BMPx shares only a minimal amount of code with the original XMMS/BMP codebase, and was rewritten almost entirely from scratch.
BMPx discards the old XMMS/BMP plugin system and uses GStreamer (0.10.x) as the primary audio playback backend. Prior to the 0.14.0 release, BMPx used a Xine based audio playback backend.
There are plans for an SVG based skinning system, but as of late 2005, it is in an early draft/planning stage. There are no plans to support Winamp3/5 "Modern" skins directly however. There exists a library that is in theory capable to load those skins (at least partially so far), called libWAL, but since the scripting core of Winamp 3/5 skins is kept closed source by AOL, it would not be possible to realize a fully working skin loader without significant reverse engineering work.
Instead, the developers decided to define a new skin format, which will also improve on a few shortcomings of the WAL skin format, such as allowing for vectorized objects (in form of SVGs), and vectorized/splined paths along which e.g. sliders can move (think of a wave-shaped volume slider, for example), just to name a few features.
[edit] Relationship with BMP (classic) and XMMS
BMPx was rewritten completely from scratch, and shares almost no code with the BMP (and thus indirectly XMMS) codebase. Even in BMP, the developers had already refactored about 60-70% of the code. The code that has been rewritten from scratch includes, but is not limited to:
- The playback engine
- The skinning engine; it is also a Winamp 2.x engine, but was written from scratch
- The core (Though it's hard to tell whether XMMS has a single "core" or not)
- All additional UI dialogs/systems
- The remote interface (D-Bus based, compared to XMMS' socket-based system)
- The database engine and backend (written by Chong Kai Xiong, the other lead developer on BMP/BMPx) and on-disk storage of it (written by Milosz Derezynski). XMMS had no database at all.
This list could be continued, but suffice it to say that almost everything has been rewritten, except for a small portion taken from the old code, which mostly consists only of auxiliary functions to manipulate data structures like GLists, string vectors, etc, and some file utilities, and even those functions had been already refactored by the BMP developers during the BMP development stage.
BMPx shares at most 2-3% of the code that originally came from XMMS.