From 5e1633e1e22436f38f88a302febdb392c6045f3c Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 3 Feb 2016 22:09:14 +0100 Subject: [PATCH 01/10] deps: mpegaudioparse replaces mp3parse in Gst1 --- mopidy/internal/deps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mopidy/internal/deps.py b/mopidy/internal/deps.py index cc72d371..6acb1dc6 100644 --- a/mopidy/internal/deps.py +++ b/mopidy/internal/deps.py @@ -163,7 +163,7 @@ def _gstreamer_check_elements(): 'id3v2mux', 'lame', 'mad', - 'mp3parse', + 'mpegaudioparse', # 'mpg123audiodec', # Only available in GStreamer 1.x # Ogg Vorbis encoding and decoding From dd7caa322d54cc2185bac4e34d26a53e224a0738 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 3 Feb 2016 22:09:52 +0100 Subject: [PATCH 02/10] deps: mpg123audiocodec is an alternative to flump3dec and mad on Gst1 --- mopidy/internal/deps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mopidy/internal/deps.py b/mopidy/internal/deps.py index 6acb1dc6..49c1098b 100644 --- a/mopidy/internal/deps.py +++ b/mopidy/internal/deps.py @@ -164,7 +164,7 @@ def _gstreamer_check_elements(): 'lame', 'mad', 'mpegaudioparse', - # 'mpg123audiodec', # Only available in GStreamer 1.x + 'mpg123audiodec', # Ogg Vorbis encoding and decoding 'vorbisdec', From c749647a7b8c30114869cc3837bd7b391dec3dd8 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 3 Feb 2016 22:10:07 +0100 Subject: [PATCH 03/10] deps: lamemp3enc replaces lame in Gst1 --- docs/config.rst | 10 +++++----- mopidy/internal/deps.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/config.rst b/docs/config.rst index 71c08edb..b8855f69 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -313,22 +313,22 @@ server simultaneously. To use the SHOUTcast 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 ``lame ! shout2send``. An - Ogg Vorbis encoder could be used instead of the lame MP3 encoder. +#. Set the :confval:`audio/output` config value to ``lamemp3enc ! shout2send``. + An Ogg Vorbis encoder could be used instead of the lame MP3 encoder. #. You might also need to change the ``shout2send`` default settings, run ``gst-inspect-0.10 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 = lame ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme + output = lamemp3enc ! shout2send mount=mopidy ip=127.0.0.1 port=8000 password=hackme Example for Ogg Vorbis streaming: - + .. code-block:: ini [audio] diff --git a/mopidy/internal/deps.py b/mopidy/internal/deps.py index 49c1098b..fc67e6fe 100644 --- a/mopidy/internal/deps.py +++ b/mopidy/internal/deps.py @@ -161,7 +161,7 @@ def _gstreamer_check_elements(): 'flump3dec', 'id3demux', 'id3v2mux', - 'lame', + 'lamemp3enc', 'mad', 'mpegaudioparse', 'mpg123audiodec', From 30b50b64d3d6602d811eaa8d9fd583a93c337ea4 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 3 Feb 2016 22:24:17 +0100 Subject: [PATCH 04/10] docs: Update gst-{launch,inspect}-{0.10 => 1.0} --- docs/config.rst | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/config.rst b/docs/config.rst index b8855f69..3ea81713 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -150,8 +150,8 @@ Audio configuration Expects a GStreamer sink. Typical values are ``autoaudiosink``, ``alsasink``, ``osssink``, ``oss4sink``, ``pulsesink``, and ``shout2send``, and additional arguments specific to each sink. You can use the command - ``gst-inspect-0.10`` to see what output properties can be set on the sink. - For example: ``gst-inspect-0.10 shout2send`` + ``gst-inspect-1.0`` to see what output properties can be set on the sink. + For example: ``gst-inspect-1.0 shout2send`` Logging configuration --------------------- @@ -260,17 +260,17 @@ Advanced configurations Custom audio sink ----------------- -If you have successfully installed GStreamer, and then run the ``gst-inspect`` -or ``gst-inspect-0.10`` command, you should see a long listing of installed +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-0.10 + $ gst-inspect-1.0 ... long list of installed plugins ... - Total count: 254 plugins (1 blacklist entry not shown), 1156 features + Total count: 233 plugins, 1339 features Next, you should be able to produce a audible tone by running:: - gst-launch-0.10 audiotestsrc ! audioresample ! autoaudiosink + 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 @@ -289,10 +289,10 @@ Example ``mopidy.conf`` for using OSS4: [audio] output = oss4sink -Again, this is the equivalent of the following ``gst-inspect`` command, so make -this work first:: +Again, this is the equivalent of the following ``gst-launch-1.0`` command, so +make this work first:: - gst-launch-0.10 audiotestsrc ! audioresample ! oss4sink + gst-launch-1.0 audiotestsrc ! audioresample ! oss4sink Streaming through SHOUTcast/Icecast @@ -317,7 +317,7 @@ server simultaneously. To use the SHOUTcast output, do the following: An Ogg Vorbis encoder could be used instead of the lame MP3 encoder. #. You might also need to change the ``shout2send`` default settings, run - ``gst-inspect-0.10 shout2send`` to see the available settings. Most likely + ``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: @@ -335,7 +335,7 @@ server simultaneously. To use the SHOUTcast output, do the following: 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-0.10`` command can be plugged into +can use with the ``gst-launch-1.0`` command can be plugged into :confval:`audio/output`. .. _workaround: From 0336b6077cca562b0722720d2451eba4fc24e7b1 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Wed, 3 Feb 2016 22:31:55 +0100 Subject: [PATCH 05/10] audio: Prevent double seeks in appsrc (fixes: #1404) Sending the seek event to the playbin forwards it to all sinks. Which in turn means on seek event per sink. To avoid this we inject the seek event in an element before the tee. --- docs/changelog.rst | 4 ++++ mopidy/audio/actor.py | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index b7c0bc5a..bd767379 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -156,6 +156,10 @@ Audio argument is no longer in use and will be removed in the future. As far as we know, this is only used by Mopidy-Spotify. +- Duplicate seek events getting to AppSrc based backends is now fixed. This + should prevent seeking in Mopidy-Spotify from glitching. + (Fixes: :issue:`1404`) + Gapless ------- diff --git a/mopidy/audio/actor.py b/mopidy/audio/actor.py index db923e6d..65f04ebc 100644 --- a/mopidy/audio/actor.py +++ b/mopidy/audio/actor.py @@ -385,6 +385,7 @@ class Audio(pykka.ThreadingActor): self._playbin = None self._outputs = None + self._queue = None self._about_to_finish_callback = None self._handler = _Handler(self) @@ -481,6 +482,7 @@ class Audio(pykka.ThreadingActor): audio_sink.add_pad(ghost_pad) self._playbin.set_property('audio-sink', audio_sink) + self._queue = queue def _teardown_mixer(self): if self.mixer: @@ -628,7 +630,12 @@ class Audio(pykka.ThreadingActor): # TODO: double check seek flags in use. gst_position = utils.millisecond_to_clocktime(position) gst_logger.debug('Sending flushing seek: position=%r', gst_position) - result = self._playbin.seek_simple( + # Send seek event to the queue not the playbin. The default behavior + # for bins is to forward this event to all sinks. Which results in + # duplicate seek events making it to appsrc. Since elements are not + # allowed to act on the seek event, only modify it, this should be safe + # to do. + result = self._queue.seek_simple( Gst.Format.TIME, Gst.SeekFlags.FLUSH, gst_position) return result From 851c206d4567c75e0f4f165727ccea8c778d42c2 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 3 Feb 2016 23:11:18 +0100 Subject: [PATCH 06/10] docs: Move advanced audio setups out of config page --- docs/audio.rst | 106 +++++++++++++++++++++++++++++++++ docs/config.rst | 152 ++++++++---------------------------------------- docs/index.rst | 1 + 3 files changed, 132 insertions(+), 127 deletions(-) create mode 100644 docs/audio.rst diff --git a/docs/audio.rst b/docs/audio.rst new file mode 100644 index 00000000..c7c9956f --- /dev/null +++ b/docs/audio.rst @@ -0,0 +1,106 @@ +.. _audio: + +********************* +Advanced audio setups +********************* + +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 through SHOUTcast/Icecast +=================================== + +.. warning:: Known issue + + Currently, Mopidy does not handle end-of-track vs end-of-stream signalling + in GStreamer correctly. This causes the SHOUTcast stream to be disconnected + at the end of each track, rendering it quite useless. For further details, + see :issue:`492`. You can also try the workaround_ mentioned below. + +If you want to play the audio on another computer than the one running Mopidy, +you can stream the audio from Mopidy through an SHOUTcast or Icecast audio +streaming server. Multiple media players can then be connected to the streaming +server simultaneously. To use the SHOUTcast 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 ``lamemp3enc ! shout2send``. + An Ogg Vorbis encoder could be used instead of the lame MP3 encoder. + +#. 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`. + +.. _workaround: + +**Workaround for end-of-track issues - fallback streams** + +By using a *fallback stream* playing silence, you can somewhat mitigate the +signalling issues. + +Example Icecast configuration: + +.. code-block:: xml + + + /mopidy + /silence.mp3 + 1 + + +The ``silence.mp3`` file needs to be placed in the directory defined by +``...``. diff --git a/docs/config.rst b/docs/config.rst index 3ea81713..57468161 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -49,21 +49,18 @@ below, together with their default values. In addition, all :ref:`extensions defaults are documented on the :ref:`extension pages `. -Default core configuration -========================== +Default configuration +===================== + +This is the default configuration for Mopidy itself. All extensions bring +additional configuration values with their own defaults. .. literalinclude:: ../mopidy/config/default.conf :language: ini -Core configuration values -========================= - -Mopidy's core has the following configuration values that you can change. - - -Core configuration ------------------- +Core config section +=================== .. confval:: core/cache_dir @@ -116,7 +113,10 @@ Core configuration Audio configuration -------------------- +=================== + +These are the available audio configurations. For specific use cases, see +:ref:`audio`. .. confval:: audio/mixer @@ -153,8 +153,9 @@ Audio configuration ``gst-inspect-1.0`` to see what output properties can be set on the sink. For example: ``gst-inspect-1.0 shout2send`` + Logging configuration ---------------------- +===================== .. confval:: logging/color @@ -205,7 +206,7 @@ Logging configuration .. _proxy-config: Proxy configuration -------------------- +=================== Not all parts of Mopidy or all Mopidy extensions respect the proxy server configuration when connecting to the Internet. Currently, this is at @@ -239,9 +240,10 @@ these configurations to help users on locked down networks. Extension configuration ======================= -Mopidy's extensions have their own config values that you may want to tweak. -For the available config values, please refer to the docs for each extension. -Most, if not all, can be found at :ref:`ext`. +Each installed Mopidy extension adds its own configuration section with one or +more config values that you may want to tweak. For the available config +values, please refer to the docs for each extension. Most, if not all, can be +found at :ref:`ext`. Mopidy extensions are enabled by default when they are installed. If you want to disable an extension without uninstalling it, all extensions support the @@ -254,118 +256,14 @@ following to your ``mopidy.conf``:: enabled = false -Advanced configurations -======================= +Adding new configuration values +=============================== -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 through SHOUTcast/Icecast ------------------------------------ - -.. warning:: Known issue - - Currently, Mopidy does not handle end-of-track vs end-of-stream signalling - in GStreamer correctly. This causes the SHOUTcast stream to be disconnected - at the end of each track, rendering it quite useless. For further details, - see :issue:`492`. You can also try the workaround_ mentioned below. - -If you want to play the audio on another computer than the one running Mopidy, -you can stream the audio from Mopidy through an SHOUTcast or Icecast audio -streaming server. Multiple media players can then be connected to the streaming -server simultaneously. To use the SHOUTcast 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 ``lamemp3enc ! shout2send``. - An Ogg Vorbis encoder could be used instead of the lame MP3 encoder. - -#. 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`. - -.. _workaround: - -**Workaround for end-of-track issues - fallback streams** - -By using a *fallback stream* playing silence, you can somewhat mitigate the -signalling issues. - -Example Icecast configuration: - -.. code-block:: xml - - - /mopidy - /silence.mp3 - 1 - - -The ``silence.mp3`` file needs to be placed in the directory defined by -``...``. - - -New configuration values ------------------------- - -Mopidy's config validator will stop you from defining any config values in -your config file that Mopidy doesn't know about. This may sound obnoxious, -but it helps us detect typos in your config, and deprecated config values that -should be removed or updated. +Mopidy's config validator will validate all of its own config sections and the +config sections belonging to any installed extension. It will raise an error if +you add any config values in your config file that Mopidy doesn't know about. +This may sound obnoxious, but it helps us detect typos in your config, and to +warn about deprecated config values that should be removed or updated. If you're extending Mopidy, and want to use Mopidy's configuration system, you can add new sections to the config without triggering the config diff --git a/docs/index.rst b/docs/index.rst index e6b2da98..b9b65c80 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -82,6 +82,7 @@ announcements related to Mopidy and Mopidy extensions. config running service + audio troubleshooting From 42a0f63ece79df1a0fc25776660840f505e78ac7 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 3 Feb 2016 23:37:05 +0100 Subject: [PATCH 07/10] docs: Update Icecast streaming section Fixes #1351 --- docs/audio.rst | 62 ++++++++++++++++++++++++++++++++++--------------- docs/config.rst | 2 ++ 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/docs/audio.rst b/docs/audio.rst index c7c9956f..f6694587 100644 --- a/docs/audio.rst +++ b/docs/audio.rst @@ -4,6 +4,14 @@ Advanced audio setups ********************* +Mopidy has very few :ref:`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 ================= @@ -42,28 +50,24 @@ make this work first:: gst-launch-1.0 audiotestsrc ! audioresample ! oss4sink -Streaming through SHOUTcast/Icecast -=================================== +.. _streaming: -.. warning:: Known issue - - Currently, Mopidy does not handle end-of-track vs end-of-stream signalling - in GStreamer correctly. This causes the SHOUTcast stream to be disconnected - at the end of each track, rendering it quite useless. For further details, - see :issue:`492`. You can also try the workaround_ mentioned below. +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 SHOUTcast or Icecast audio -streaming server. Multiple media players can then be connected to the streaming -server simultaneously. To use the SHOUTcast output, do the following: +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 ``lamemp3enc ! shout2send``. - An Ogg Vorbis encoder could be used instead of the lame MP3 encoder. +#. 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 + 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``. @@ -85,12 +89,31 @@ 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`. -.. _workaround: -**Workaround for end-of-track issues - fallback streams** +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 -signalling issues. +known issues above. Example Icecast configuration: @@ -102,5 +125,6 @@ Example Icecast configuration: 1 -The ``silence.mp3`` file needs to be placed in the directory defined by -``...``. +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 +``...`` in the Icecast configuration. diff --git a/docs/config.rst b/docs/config.rst index 57468161..efbf5e86 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -112,6 +112,8 @@ Core config section MPD clients will crash if this limit is exceeded. +.. _audio-config: + Audio configuration =================== From d0783db422aecae2a7f29a5e585d066ec8833b50 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Thu, 4 Feb 2016 00:12:05 +0100 Subject: [PATCH 08/10] docs: Fix link text --- docs/audio.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/audio.rst b/docs/audio.rst index f6694587..a5447583 100644 --- a/docs/audio.rst +++ b/docs/audio.rst @@ -4,10 +4,10 @@ Advanced audio setups ********************* -Mopidy has very few :ref:`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. +Mopidy has very few :ref:`audio configs `, 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: From b3f8460a940e8bf5a2a2b76b2134439d950d9b80 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Thu, 4 Feb 2016 00:24:44 +0100 Subject: [PATCH 09/10] gst1: Fix taglist creation --- mopidy/audio/actor.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mopidy/audio/actor.py b/mopidy/audio/actor.py index 65f04ebc..501a9d45 100644 --- a/mopidy/audio/actor.py +++ b/mopidy/audio/actor.py @@ -748,8 +748,7 @@ class Audio(pykka.ThreadingActor): gobject_value = GObject.Value() gobject_value.init(GObject.TYPE_STRING) gobject_value.set_string(value) - taglist.add_value( - Gst.TagMergeMode.REPLACE, Gst.TAG_ARTIST, gobject_value) + taglist.add_value(Gst.TagMergeMode.REPLACE, tag, gobject_value) # Default to blank data to trick shoutcast into clearing any previous # values it might have. From 0ac50ed49927fe795c2ef7b8d2ab31a861df9b9b Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Thu, 4 Feb 2016 14:45:30 +0100 Subject: [PATCH 10/10] docs: Update Arch source install to use new gst-python2 package Thanks to Sergej Pupykin --- docs/installation/source.rst | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/docs/installation/source.rst b/docs/installation/source.rst index e57ddc18..8c08e2d7 100644 --- a/docs/installation/source.rst +++ b/docs/installation/source.rst @@ -50,15 +50,7 @@ please follow the directions :ref:`here `. If you use Arch Linux, install the following packages from the official repository:: - sudo pacman -S python2-gobject gst-python gst-plugins-good - gst-plugins-ugly - - .. warning:: - - ``gst-python`` installs GStreamer GI overrides for Python 3. As far as - we know, Arch currently lacks a package with the corresponding overrides - built for Python 2. If a ``gst-python2`` package is added, it will - depend on ``python2-gobject``, so we can then shorten this package list. + sudo pacman -S gst-python2 gst-plugins-good gst-plugins-ugly If you use Fedora you can install GStreamer like this::