Commit Graph

183 Commits

Author SHA1 Message Date
Thomas Adamcik
1b8feefcdc audio: Link to context of why we demote jack sinks
(cherry picked from commit 29019d94af)
2014-07-30 00:30:13 +02:00
Arjun Naik
f4777e50c2 Fixed long line Flake8 warning. 2014-07-27 14:33:34 +00:00
Arjun Naik
4d5f60fd06 Workaround for RasPi selecting jack server. 2014-07-27 11:41:27 +00:00
Ignasi Fosch
b13505ea45 Fix the Line too long lint error 2014-07-26 16:42:42 +02:00
Ignasi Fosch
8459464f34 Fix mopidy/audio/scan.py to avoid negative values in track lengths
The fix is the most elegant I found, but it might pass undetected.
2014-07-26 16:31:37 +02:00
Stein Magnus Jodal
e4b54426b4 audio: Set initial volume on software mixer
This must be set after the audio actor has injected itself into the software
mixer, else it will have no effect on the GStreamer software mixer.

Fixes #791
2014-07-25 12:35:01 +02:00
Stein Magnus Jodal
0bf7302005 Merge remote-tracking branch 'adamcik/fix/gh-734-cleanup-audio-buffering' into develop
Conflicts:
	mopidy/audio/actor.py
2014-07-20 12:29:49 +02:00
Stein Magnus Jodal
c234281c7b mixer: Remove trigger_events_for_any_change() helper from API 2014-07-15 10:34:32 +02:00
Stein Magnus Jodal
a981be2292 doc: Fix typos 2014-07-14 23:47:15 +02:00
Stein Magnus Jodal
d1c0d48be6 docs: Fix typo 2014-07-14 23:18:55 +02:00
Thomas Adamcik
d8c41de2f7 audio: Add tests for state changes while buffering 2014-07-14 23:15:40 +02:00
Stein Magnus Jodal
16f6527095 swmixer: Listen for volume/mute changes in GStreamer
E.g. when using pulsesink, external changes to the application-volume and
appliction-mute state will now immediately be reflected in the SoftwareMixer.
2014-07-12 02:50:40 +02:00
Stein Magnus Jodal
5f091c10c2 mixer: Inject audio into software mixer
Instead of giving all mixers access to the audio actor.
2014-07-12 01:53:43 +02:00
Stein Magnus Jodal
810429a449 audio: Remove custom GStreamer mixers 2014-07-08 01:34:33 +02:00
Stein Magnus Jodal
9da716935c audio: Only expose GStreamer's software mixer 2014-07-08 01:34:33 +02:00
Stein Magnus Jodal
bce817184d audio: Fix pep8 warning 2014-06-23 21:22:00 +02:00
Thomas Adamcik
7975815cde audio: Expand audio state changed with target state 2014-06-21 17:28:25 +02:00
Thomas Adamcik
168aa432aa audio: Only trigger buffer pause once. 2014-06-21 16:30:12 +02:00
Thomas Adamcik
e0e6e390bd audio: Refactor message handling to delegate work more.
This should allow for easier testing since we can send the parsed result of the
messages for all message types.
2014-06-21 14:20:56 +02:00
Thomas Adamcik
e7b39bd051 audio: Handle carriage return in playlist detection 2014-06-20 21:31:12 +02:00
Thomas Adamcik
c87684aa6b audio: Handle all caps ASX tags.
Also add support for simple asx format.
2014-06-20 21:31:03 +02:00
Stein Magnus Jodal
dcba410d91 audio, local: Fix decoding of exception messages depending on locale 2014-05-20 19:55:12 +02:00
Thomas Adamcik
e269496c07 audio: Cleanup flake and some style issues 2014-05-09 00:05:51 +02:00
Thomas Adamcik
48184ad9d9 Merge branch 'feature/gst_proxy' of https://github.com/AlexandrePTJ/mopidy into AlexandrePTJ-feature/gst_proxy
Conflicts:
	docs/changelog.rst
	mopidy/http/actor.py
2014-05-08 23:56:52 +02:00
Thomas Adamcik
56b9724ffc Merge pull request #715 from geigerzaehler/gst-buffer
Pause gstreamer when buffering
2014-05-08 22:07:13 +02:00
Stein Magnus Jodal
b754885064 Fix all import order warnings 2014-05-07 20:08:43 +02:00
Thomas Scholtes
1e16817e39 Don’t start playing automatically when buffer is full
Previously, when `Audio.pause_playback()` was called while buffering, the audio
actor would switch back to the playing state when the buffer was full.
2014-04-03 20:30:41 +02:00
Thomas Scholtes
d42ebd1fec Set buffer properties of gstreamer pipeline
Manually set the `playbin2` buffer properties to their default values. The
default values are not documented but hard-coded in gstreamer [1].

This is a starting point for making these properties configurable. For example
we might want higher values on system with unsteady network connection.

[1]: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/playback/gsturidecodebin.c?h=0.10#n1714
2014-03-31 12:29:04 +02:00
Thomas Scholtes
4d287697e4 Pause gstreamer when buffering
When the `playbin2` pipeline is in `PLAYING` state and its buffer is empty the
pipeline will consume arriving data immediately. If the source is an HTTP
stream this leads to choppy playback. To fix this we pause playing when the
buffer is nearly empty and wait for it to fill up until we resume playing. This
approach is recommended in the gstreamer manual [1].

We might want to extract the hard-coded 10% mark and make it configurable.

[1]: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-buffering.html
2014-03-31 12:29:04 +02:00
Alexandre Petitjean
6f06ec02c3 Assign proxy when source need it (not only http) 2014-02-17 09:42:17 +01:00
Alexandre Petitjean
963d02fef5 flake8 compliant 2014-02-13 11:30:39 +01:00
Alexandre Petitjean
78149ab893 flake8 compliant 2014-02-13 11:23:39 +01:00
Alexandre Petitjean
de21872d67 #390 Adds basic proxy support for http source 2014-02-13 10:49:56 +01:00
Thomas Adamcik
c5be900ab4 audio: Review fixes 2014-01-15 23:53:17 +01:00
Thomas Adamcik
2dc8282b25 audio: Cleanup translator code.
This code was trying to be to smart for it's own good. This commit greatly
reduces the magic and leaves us with much more straight forward code.
2014-01-15 22:20:36 +01:00
Thomas Adamcik
3e9cd0c4b7 audio: Add tests for all fields that can be converted 2014-01-15 22:20:36 +01:00
Thomas Adamcik
807bedad85 audio: Change audio data convert to operate on taglists 2014-01-15 22:20:36 +01:00
Thomas Adamcik
7209b38aa6 audio: Nest tags in scan data return value 2014-01-15 22:20:36 +01:00
Simon de Bakker
d8270ec153 Removed empty line (caught by flake8) 2014-01-10 23:38:27 +01:00
Simon de Bakker
0980af2590 Set initial mixer volume for all mixers 2014-01-09 20:43:04 +01:00
Thomas Adamcik
042868e602 Merge branch 'develop' into feature/extension-registry
Conflicts:
	mopidy/backends/local/json/actor.py
	mopidy/backends/local/json/library.py
2014-01-08 23:50:03 +01:00
Stein Magnus Jodal
0fb7c79524 log: Use loggers named after __name__ 2014-01-01 13:31:20 +01:00
Thomas Adamcik
565b3aeb98 audio: Workaround fact that genre can sometimes be a list 2013-12-28 00:06:16 +01:00
Thomas Adamcik
1379c38370 audio: Improve audio_data_to_track handling.
- Handle missing or none data for duration and mtime
- Add organization, location and copyright mapping used for streams.
2013-12-05 22:56:19 +01:00
Thomas Adamcik
a036e84a20 audio: Update scanner to not use gst.Bus.poll
Turns out poll sets up it's own mainloop in the default context causing us to
segfault.
2013-12-05 22:43:27 +01:00
Thomas Adamcik
10a448f90d audio: Cleanup scanner code and support live sources
- Make attributes internal with _ naming
- Cleanup handling of min durtion. Min set to None disables the check.
- Check state change result for no preroll which indicates a live source which
  must transistion to playing to get tags etc.
2013-12-04 23:41:39 +01:00
Thomas Adamcik
c128668621 listeners: Make listeners async
- Add a common Listener base class
- Make send helper for sending out events with pykka
- Make send async helper for avoiding blocking events

This change ensures all the events now get sent out via the MainThread instead
of blocking the actors.
2013-11-26 15:10:48 +01:00
Stein Magnus Jodal
495c0b627b audio: Change to software mixing by default 2013-11-16 15:05:01 +01:00
Thomas Adamcik
37ba3ca01d Merge branch 'develop' into feature/commands-helper-tmp
Conflicts:
	mopidy/utils/log.py
2013-11-14 23:36:27 +01:00
Lasse Bigum
9ba5f6862f Merge branch 'develop' of https://github.com/mopidy/mopidy into feature/extra_tags 2013-11-13 00:23:44 +01:00