From f90e512ede519e7f1a1dce5168113a9dda6ba328 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Mon, 27 Apr 2015 21:12:22 +0200 Subject: [PATCH 1/3] docs: Add getting help anchor --- docs/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.rst b/docs/index.rst index e9775030..3a2998d5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -54,6 +54,8 @@ extension. The cassettes have NFC tags used to select playlists from Spotify. To get started with Mopidy, start by reading :ref:`installation`. +.. _getting-help: + **Getting help** If you get stuck, you can get help at the `Mopidy discussion forum From 83e54b090b28c97d08a714160722c6b9f0d9b9f3 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Mon, 27 Apr 2015 22:52:12 +0200 Subject: [PATCH 2/3] http: Finally fix the old tornado broadcast bug. --- docs/changelog.rst | 7 +++++++ mopidy/http/handlers.py | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index f4b796d7..369900e4 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -4,6 +4,13 @@ Changelog This changelog is used to track all major changes to Mopidy. +v1.0.3 (unreleased) +=================== + +- HTTP: An other follow-up to the pre 3.0 fixing. Since the tests aren't run + for 2.3 we didn't catch that our previous fix wasn't sufficient. + (Fixes: :issue:`1153`) + v1.0.2 (2015-04-27) =================== diff --git a/mopidy/http/handlers.py b/mopidy/http/handlers.py index e2faa944..6bbfcbab 100644 --- a/mopidy/http/handlers.py +++ b/mopidy/http/handlers.py @@ -1,5 +1,6 @@ from __future__ import absolute_import, unicode_literals +import functools import logging import os import socket @@ -91,13 +92,14 @@ class WebSocketHandler(tornado.websocket.WebSocketHandler): if hasattr(tornado.ioloop.IOLoop, 'current'): loop = tornado.ioloop.IOLoop.current() else: - loop = tornado.ioloop.IOLoop.instance() # Fallback for 2.3 + loop = tornado.ioloop.IOLoop.instance() # Fallback for pre 3.0 # This can be called from outside the Tornado ioloop, so we need to # safely cross the thread boundary by adding a callback to the loop. for client in cls.clients: # One callback per client to keep time we hold up the loop short - loop.add_callback(_send_broadcast, client, msg) + # NOTE: Pre 3.0 does not support *args or **kwargs... + loop.add_callback(functools.partial(_send_broadcast, client, msg)) def initialize(self, core): self.jsonrpc = make_jsonrpc_wrapper(core) From 55e50ae5d2d9fdd7967f4dbb9e5e5d7168dc7adb Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Mon, 27 Apr 2015 22:55:21 +0200 Subject: [PATCH 3/3] audio: Switch to time based buffering in tee branches --- docs/changelog.rst | 4 ++++ mopidy/audio/actor.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 369900e4..904e938c 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -11,6 +11,10 @@ v1.0.3 (unreleased) for 2.3 we didn't catch that our previous fix wasn't sufficient. (Fixes: :issue:`1153`) +- Audio: Follow-up fix for :issue:`1097` still exhibits issues for certain + setups. We are giving this get an other go by setting the buffer size to + maximum 100ms instead of a fixed number of buffers. (Fixes: :issue:`1147`) + v1.0.2 (2015-04-27) =================== diff --git a/mopidy/audio/actor.py b/mopidy/audio/actor.py index 45ad73ff..7cca954a 100644 --- a/mopidy/audio/actor.py +++ b/mopidy/audio/actor.py @@ -164,7 +164,8 @@ class _Outputs(gst.Bin): # All tee branches need a queue in front of them. # But keep the queue short so the volume change isn't to slow: queue = gst.element_factory_make('queue') - queue.set_property('max-size-buffers', 15) + queue.set_property('max-size-time', 100 * gst.MSECOND) + self.add(element) self.add(queue) queue.link(element)