Skip to content

Commit

Permalink
Release v2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jodal committed Feb 15, 2016
2 parents 1c19dd5 + 53ce80e commit 93dfc33
Show file tree
Hide file tree
Showing 115 changed files with 4,793 additions and 3,201 deletions.
18 changes: 8 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,31 @@
sudo: false
sudo: required
dist: trusty

language: python

python:
- "2.7_with_system_site_packages"

addons:
apt:
sources:
- mopidy-stable
packages:
- graphviz-dev
- mopidy

env:
- TOX_ENV=py27
- TOX_ENV=py27-tornado23
- TOX_ENV=py27-tornado31
- TOX_ENV=docs
- TOX_ENV=flake8

before_install:
- "sudo sed -i '/127.0.1.1/d' /etc/hosts" # Workaround tornadoweb/tornado#1573
- "sudo apt-get update -qq"
- "sudo apt-get install -y gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 graphviz-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad python-gst-1.0"

install:
- "pip install tox"

script:
- "tox -e $TOX_ENV"

after_success:
- "if [ $TOX_ENV == 'py27' ]; then pip install coveralls==1.0b1; coveralls; fi"
- "if [ $TOX_ENV == 'py27' ]; then pip install coveralls; coveralls; fi"

branches:
except:
Expand Down
7 changes: 6 additions & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@
- Giorgos Logiotatidis <seadog@sealabs.net>
- Ben Evans <ben@bensbit.co.uk>
- vrs01 <vrs01@users.noreply.github.com>
- Loïck Bonniot <git@lesterpig.com>
- Cadel Watson <cadel@cadelwatson.com>
- Loïck Bonniot <git@lesterpig.com>
- Gustaf Hallberg <ghallberg@gmail.com>
- kozec <kozec@kozec.com>
- Jelle van der Waa <jelle@vdwaa.nl>
- Alex Malone <jalexmalone@gmail.com>
- Daniel Hahler <git@thequod.de>
- Bryan Bennett <bbenne10@gmail.com>
2 changes: 0 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ To get started with Mopidy, check out
- `Discussion forum <https://discuss.mopidy.com/>`_
- `Source code <https://github.com/mopidy/mopidy>`_
- `Issue tracker <https://github.com/mopidy/mopidy/issues>`_
- `Development branch tarball <https://github.com/mopidy/mopidy/archive/develop.tar.gz#egg=mopidy-dev>`_

- IRC: ``#mopidy`` at `irc.freenode.net <http://freenode.net/>`_
- Announcement list: `mopidy@googlegroups.com <https://groups.google.com/forum/?fromgroups=#!forum/mopidy>`_
- Twitter: `@mopidy <https://twitter.com/mopidy/>`_
Expand Down
10 changes: 6 additions & 4 deletions docs/api/core.rst
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,8 @@ Playlists controller

.. class:: mopidy.core.PlaylistsController

.. automethod:: mopidy.core.PlaylistsController.get_uri_schemes

Fetching
--------

Expand Down Expand Up @@ -226,8 +228,8 @@ TracklistController
.. autoattribute:: mopidy.core.TracklistController.repeat
.. autoattribute:: mopidy.core.TracklistController.single

PlaylistsController
-------------------
PlaybackController
------------------

.. automethod:: mopidy.core.PlaybackController.get_mute
.. automethod:: mopidy.core.PlaybackController.get_volume
Expand All @@ -244,8 +246,8 @@ LibraryController

.. automethod:: mopidy.core.LibraryController.find_exact

PlaybackController
------------------
PlaylistsController
-------------------

.. automethod:: mopidy.core.PlaylistsController.filter
.. automethod:: mopidy.core.PlaylistsController.get_playlists
Expand Down
130 changes: 130 additions & 0 deletions docs/audio.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
.. _audio:

*********************
Advanced audio setups
*********************

Mopidy has very few :ref:`audio configs <audio-config>`, but the ones we
have are very powerful because they let you modify the GStreamer audio pipeline
directly. Here we describe some use cases that can be solved with the audio
configs and GStreamer.


.. _custom-sink:

Custom audio sink
=================

If you have successfully installed GStreamer, and then run the
``gst-inspect-1.0`` command, you should see a long listing of installed
plugins, ending in a summary line::

$ gst-inspect-1.0
... long list of installed plugins ...
Total count: 233 plugins, 1339 features

Next, you should be able to produce a audible tone by running::

gst-launch-1.0 audiotestsrc ! audioresample ! autoaudiosink

If you cannot hear any sound when running this command, you won't hear any
sound from Mopidy either, as Mopidy by default uses GStreamer's
``autoaudiosink`` to play audio. Thus, make this work before you file a bug
against Mopidy.

If you for some reason want to use some other GStreamer audio sink than
``autoaudiosink``, you can set the :confval:`audio/output` config value to a
partial GStreamer pipeline description describing the GStreamer sink you want
to use.

Example ``mopidy.conf`` for using OSS4:

.. code-block:: ini
[audio]
output = oss4sink
Again, this is the equivalent of the following ``gst-launch-1.0`` command, so
make this work first::

gst-launch-1.0 audiotestsrc ! audioresample ! oss4sink


.. _streaming:

Streaming through Icecast
=========================

If you want to play the audio on another computer than the one running Mopidy,
you can stream the audio from Mopidy through an Icecast audio streaming server.
Multiple media players can then be connected to the streaming server
simultaneously. To use the Icecast output, do the following:

#. Install, configure and start the Icecast server. It can be found in the
``icecast2`` package in Debian/Ubuntu.

#. Set the :confval:`audio/output` config value to encode the output audio to
MP3 (``lamemp3enc``) or Ogg Vorbis (``audioresample ! audioconvert !
vorbisenc ! oggmux``) and send it to Icecast (``shout2send``).

You might also need to change the ``shout2send`` default settings, run
``gst-inspect-1.0 shout2send`` to see the available settings. Most likely
you want to change ``ip``, ``username``, ``password``, and ``mount``.

Example for MP3 streaming:

.. code-block:: ini
[audio]
output = lamemp3enc ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme
Example for Ogg Vorbis streaming:

.. code-block:: ini
[audio]
output = audioresample ! audioconvert ! vorbisenc ! oggmux ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme
Other advanced setups are also possible for outputs. Basically, anything you
can use with the ``gst-launch-1.0`` command can be plugged into
:confval:`audio/output`.


Known issues
------------

- **Changing track:** As of Mopidy 1.2 we support gapless playback, and the
stream does no longer end when changing from one track to another.

- **Previous/next:** The stream ends on previous and next. See :issue:`1306`
for details. This can be worked around using a fallback stream, as described
below.

- **Pause:** Pausing playback stops the stream. This is probably not something
we're going to fix. This can be worked around using a fallback stream, as
described below.

- **Metadata:** Track metadata is mostly missing from the stream. For Spotify,
fixing :issue:`1357` should help. The general issue for other extensions is
:issue:`866`.


Fallback stream
---------------

By using a *fallback stream* playing silence, you can somewhat mitigate the
known issues above.

Example Icecast configuration:

.. code-block:: xml
<mount>
<mount-name>/mopidy</mount-name>
<fallback-mount>/silence.mp3</fallback-mount>
<fallback-override>1</fallback-override>
</mount>
You can easily find MP3 files with just silence by searching the web. The
``silence.mp3`` file needs to be placed in the directory defined by
``<webroot>...</webroot>`` in the Icecast configuration.

0 comments on commit 93dfc33

Please sign in to comment.