|
BMP
Support
Community
Development
Miscellaneous
|
[edit] How to contributeIf you want to contribute to BMPx, may it be code or a translation, please file an enhancement request (RFE) on our bug tracking system. Attach your files to the RFE. If you have more profound changes that don't fit into a single patch, especially ideas for restructuring large portions of code for soundness, elegance or some other reason, discuss with us on IRC! Our channel is #bmp on irc.freenode.net. In any case, don't feel restricted. If you're unsure of what to do[1], or if you have any idea that can improve BMPx for everyone (well, most :), however vague, or simply want to laze around, just join us on IRC :) [1] Be sure to read the on-site documentation first
[edit] Misc FAQ Items[edit] Why is Item X or Feature X not implemented, even though it seems trivial?[edit] The Answer (TM)This is an often asked question and the answer is as simple as it might not meet your understanding at the same time (at least if you think short term).
This means nothing else than, if we know that a particular feature will be implemented in a "bigger scheme" in the future, and will be accessible through the UI in a different way than it would be accessed right now (if we'd "just" implement it), then we rather don't implement it at all right now; the reason is that users would get used to the way this feature is used and where to find it in the UI right now. If this should then change once we implement the bigger plan that incorporates this feature, the usage and accessibility in the UI would (probably) change, and users would have to re-learn the UI. Because of that, we rather don't implement it at all currently, but only once we implement the facilities that will have this feature "for good" and (hopefully) forever, in that particular way. If we knew that this feature will work in the exact way even in the future, when it's going to be implemented in the bigger plan, we would do implement it already; but with most stuff, it's not _exactly_ clear how it will look like, and we don't want to restrict ourselves, in turn, to then (in the future) forging the feature to look and work the way it would look if we'd implement it now.
As of this writing (Nov 10 2006) it i not clear how this will look like in the future, so going by what i've described above, we can not implement it right now, period (sorry, but as patronizing as it sounds, it's in the end just for your good). (Apply this to other "trivial" missing features as well, like being able to play a custom http:// or mms:// stream, etc. There will be docs on how sepecific features will look like in the future rather soon, as the Roadmap page will be revised.) [edit] But you "just" dropped the Winamp 2.x skins. Wasn't that a radical change?And yes we dropped the Winamp2.x GUI which was a radical change and users had to re-learn UI to some extent, but the reasons for this were different and certainly overriding the concern about the future consistency of the GUI because the Winamp2.x GUI, to sum it up in short, just had no future. It was nothing we could have based BMP 2 in the future upon, it just had to be dropped at some point, and that point was just now when we did it. [edit] 'Downloads'[edit] How do i use those "Downloads" seen on various screenshots and what is it?You can use Soulseek P2P from within BMPx directly, using the packages mooseekd and Moodriver. Instead of mooseekd, you can install Museek+ and use 'museekd', the daemon which comes with the entire Museek+ package. Mooseekd is a standalone fork of the museek daemon with blessing from the official project. It works and behaves identically to the original museekd (and has a more humorous name). [edit] How to build BMPx with Soulseek support and use itFirst of all, download Moodriver using the link above or the Downloads page (see bottom), build and install it, and then build BMPx with the configure flag '--enable-moodriver'. (This does not require museekd/mooseekd yet). After this is done, install either mooseekd or Museek+, and then run, from a terminal, for Museek+ "musetup", or for mooseekd "moosetup". You need to set up a few basics in the configuration procedure for proper working of the daemon. Run the daemon (e.g. enter 'museekd' or 'mooseekd' in a terminal). Then start BMPx and enter the hostname you specified during the setup (probably localhost unless the daemon runs on another machine), and the interface password you've specified This is not the server and password name for some "Soulseek server". It is merely the password and host the daemon runs on! Once it has successfully connected to the daemon you're ready to go searching and downloading music. [edit] Why is this all so complex and the downloads aren't just embedded into BMPx?There are 2 main reasons for this: 1) There is an existing Soulseek protocol implementation in museekd, which is part of Museek (now Museek+). We didn't want and didn't need to reinvent the wheel, so we're making use of it to provide the connectivity to the Soulseek network. 2) We could have taken the code and embedded it all into BMPx, but this would effectively lead to BMPx being classified as a P2P app. Doing it indirectly through bridges frees us from possible legal issues in some jurisdictions. To use Soulseek, BMPx needs to be linked with Moodriver to communicate with a separate program (Museekd/Mooseekd) which will connect to the network and download files on BMPx's behalf. Therefore, it is entirely up to users to integrate downloads in accordance to the laws they are under (or incur the risk if they want to do it illegally). [edit] Running with D-Bus[edit] Run a D-Bus session daemon within your X sessionPut this in your ~/.xinitrc file: #!/bin/sh COMMAND is the command you use to start your windowmanager/desktop with, e.g. gnome-session for GNOME, startkde for KDE, wmaker for WindowMaker, fluxbox, etc. This will make the D-BUS session available to the whole session and all apps once you have started X. Is D-BUS already running? On Linux distributions where this already happens in one way or another (the system starts a D-BUS session daemon for you after log-in), this isn't necessary. You can check for this by simply logging in without the above modifications and then running the command
echo $DBUS_SESSION_BUS_ADDRESSfrom a terminal. If this outputs nothing, you have to proceed as described above, otherwise you don't need to do anything. [edit] How do I use D-Bus from within the GNOME Desktop?Excerpt from FreeBSD documentation: http://www.freebsd.org/gnome/docs/faq2.html#q25 The GNOME Desktop must be started with D-Bus support. To do this, launch gnome-session from within dbus-launch. For example, if you start GNOME using ~/.xinitrc or ~/.xsession, change the line that execs gnome-session to the following: exec dbus-launch --exit-with-session gnome-session If you use GDM to start GNOME, create a new GDM session with the following parameters: [Desktop Entry] Encoding=UTF-8 Name=GNOME with D-BUS Comment=GNOME Desktop with D-BUS support Exec=/usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session TryExec=/usr/bin/dbus-launch Icon= Type=Application Call this new GDM session gnome-dbus.desktop. [edit] Backwards compatibility with BMP[edit] Can I use BMP plugins with BMPx?Not at the moment. BMPx utilizes GStreamer for its audio backend. Unless someone develops GStreamer elements to adapt BMP plugins, this will not be possible. [edit] Where is the web site for classic BMP that came with my Linux/*BSD distro?It has been moved here: http://bmp.beep-media-player.org [edit] Playback[edit] Setting up GStreamer[edit] What is GStreamer?GStreamer is a multimedia framework used to drive BMP's audio backend. It has been chosen for its outstanding flexibility and extensibiliity so that we can focus on delivering you an easy-to-use application instead of having to care about the nitty-gritty details of audio codecs, playback sources and devices. Everything that is playable under GStreamer is automatically playable in BMPx as well (well, almost anyway). [edit] Building GStreamer from sourceYou can get the following components from the GStreamer Source Downloads. You should build all of them to have the maximum amount of file types to play back.
[edit] Using pre-packaged GStreamer packagesVarious OSes and/or Linux Distributions package GStreamer really differently. There is no common way to tell how the packages are split up. Gentoo users should be the most cautious ones probably as Gentoo has split up GStreamer 0.10 into a huge amount of sub-packages. The mad (mp3) plugin is normally part of gst-plugins-ugly, but Gentoo has made a separate ebuild for it, gst-plugins-mad, to cite just one example. Debian might not have the packages in your allowed repositories. On enabling third-party repositories, see Apt Pinning. To get musepack (.mpc files) support, you need to install musepack-decoder from the Rarewares repository; download gstreamer0.10-plugins-bad from Ubuntu Dapper or gstreamer0.10-plugins-bad-multiverse (for AMD64) if the mentioned packages are still unavailable natively; then sudo dpkg -i <package> (which will report broken dependencies) and sudo apt-get -f install (which will fix the dependencies). [edit] What can BMPx play?The simple answer is: almost everything your GStreamer installation can play back. More complicatedly, BMPx uses GStreamer as the playback backend and thus can play whatever GStreamer can play on your system. It can generally output [i]audio[/i] to whatever GStreamer can output to on your system. For the latter, there has to be explicit support added first, as we are taking care of every output possibility individually and want to have proper setup methods for it. Here is a general overview of what is supported, but they vary depending on your installation. [edit] Audio Output Systems
[edit] Stream Types
[edit] Container FormatsEach container format can contain audio files, as the name suggests. Even so-called "OGGs" are just Vorbis files inside the OGG container. MKA can also contain Vorbis or MP3 streams; the same goes for OGM and, possibly, for AVI. (We're listing AVI just for the sake of completeness, we're not sure nor aware of audio-only AVI files that exist.)
[edit] Additional Capabilities
[edit] Playlist Formats
[edit] Checking your installationRun each of those commands to test your GStreamer installation for a particular playback capability. If any of those returns "No such element", then you need to install the appropriate plugins if you want to play this kind of files.
gst-inspect id3demux gst-inspect mad
gst-inspect oggdemux gst-inspect vorbisdec
gst-inspect musepack
gst-inspect ffmpeg
gst-inspect faad
gst-inspect flac [edit] Testing for FilesRun the following command to test your GStreamer pipeline. If you can hear sound, and bmpx still doesn't play, please report the bug. gst-launch filesrc location=/filename/to/play ! decodebin ! audioconvert ! audioresample ! alsasink [edit] Testing for HTTP StreamsSince 0.30, http stream support will be included natively in BMPx [edit] Testing for Audio CDsgst-launch cdparanoiasrc track=1 ! audioconvert ! alsasink [edit] Checking with the GUIBMPx has status information in the Preferences window. Open "Preferences" and select the "Audio" category. Under the "Capabilities" tab, you will see the status indicators like this:
[edit] Debugging[edit] Crash at startupPlease dowload this script: check-libstdc++.sh, run "chmod +x check-libstdc++.sh", feel free to examine its contentents, and then run it; it's a check for libstdc++ (the standard C++ library runtime) consistency between BMP and all C++ libraries that BMP is linked against. The output should be, for example, like this: [mderezynski@core ~]$ ./check-libstdc++.sh If the following output does not show EXACTLY the same library for EACH line, then you have a problem. BMP..........: libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x047cc000) GLIBMM.......: libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x047cc000) GTKMM........: libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x047cc000) PANGOMM......: libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x047cc000) Taglib.......: libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x047cc000) MusicBrainz..: libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x047cc000) If the listed paths to libstdc++ are not the same, then you DO have a problem. It usually means that the set of libraries were compiled with ABI[1] incompatible versions of gcc (e.g. gcc 3.x and gcc 4.x). You have to recompile all of those libraries again with the same compiler you're compiling BMPx with right now. If you use Gentoo, it's likely a result of upgrading GCC incorrectly. Please read this for more information. [edit] Still having problems?If the previous script does not report an error and you still have a problem, you should try running check-deeper.sh. It searches deeper through the library dependencies and may reveal the problem. If you see user@hostname:~> ./check-deeper.sh No libstdc++ problems detected then your problem may lie elsewhere (it could still be a libstdc++ ABI issue). However, if you see something else, a problem was most certainly detected.
[edit] Reproduce the bugThe first step is to reproduce the bug and try to find the shortest way to catch it. Please note exactly what you've done. To get more details, run bmpx: ${PREFIX}/libexec/beep-media-player-2-bin --no-log [edit] Generate backtraceIf this bug crashes the application, we need more information. Firstly, be sure you have built bmpx with debug symbols and without optimization. If you're not sure, re-run configure --enable-debug Now, you have to run bmpx in the GNU Debugger (gdb): gdb ${PREFIX}/libexec/beep-media-player-2-bin where ${PREFIX} is the path you have installed bmpx. Than type run --g-fatal-warnings Follow the steps to reproduce the crash (as in, make it crash again), and once it crashes, type: bt [edit] File a bug report / Report to us on IRC
[edit] Checkpoints
|
Log in / create account | ||||
|
||||
This page has been accessed 43,494 times. |