Commit Graph

4511 Commits

Author SHA1 Message Date
Thomas Adamcik
f53a0d2200 stream: Address review comments for PR#1447 2016-02-15 20:46:43 +01:00
Thomas Adamcik
2e5cfba710 stream: Make library lookup use stream unwrapping (fixes #1445) 2016-02-15 00:05:01 +01:00
Thomas Adamcik
ce81b362dc stream: Add scheme and blacklist check to translate_uri
We don't bother with this inside the unwrap code as if something redirects us
so be it.
2016-02-15 00:00:30 +01:00
Thomas Adamcik
9aa2a8a370 stream: Start moving state up to backend
This allows us to start unifying how we handle playlists in the library and
playback cases.
2016-02-14 23:50:18 +01:00
Stein Magnus Jodal
6407e87301 core: Update versionadded from 1.2 to 2.0 2016-02-14 22:40:27 +01:00
Stein Magnus Jodal
f3c31538e6 audio: Remove unused 'capabilities' argument 2016-02-14 22:39:31 +01:00
Thomas Adamcik
79a4835e4e core: Add tests for change_track failing in about-to-finish 2016-02-14 17:23:20 +01:00
Thomas Adamcik
76ab5ffb04 core: Make sure exceptions from backend's change_track is handled
Also adds TODOs for the rest of the backend calls in playback which all need to
assume backends can and will screw up.
2016-02-14 17:16:31 +01:00
Thomas Adamcik
b293a116b6 audio: Make sure about to finish skips unplayable tracks 2016-02-14 16:26:47 +01:00
Stein Magnus Jodal
cc82e68a58 core: Remove unplayable track in consume mode
Fixes #1418

This was previously fixed in 1.1.2, but the fix was skipped in when
release-1.1 was merged into develop in #1400, thus no changelog entry.
2016-02-14 15:47:22 +01:00
Thomas Adamcik
b63b3c288a audio: Postpone tags until after stream-start
When a new URI gets set we create a pending tags dictionary. This gets all the
tags until stream-start, at which point they are all emitted at once. During
track playback tags works as before.

This ensure we don't prematurely tell clients about metadata changes.
2016-02-14 12:36:19 +01:00
Thomas Adamcik
c23cad5d13 audio: Only emit tags changed when tags changed.
Previously we alerted AudioListeners about all new tags, now we filter it down
to just the changed ones. Only real reason for this is that the changed
messages spam the log output making debugging harder.
2016-02-14 12:36:19 +01:00
Thomas Kemmer
6aef96a0d3 Fix #1428: Add m3u/base_dir confval. 2016-02-14 12:07:22 +01:00
Trygve Aaberge
0580a46688 audio: Add a config option for queue buffer size
It may help to increase this for users that are experiencing buffering
before track changes. Workaround for #1409.
2016-02-13 23:37:22 +01:00
Stein Magnus Jodal
68add6cda9 audio: Workaround crash caused by race
Fixes #1430. See #1222 for explanation and proper fix.
2016-02-10 23:03:36 +01:00
Stein Magnus Jodal
e88b2a7beb commands: Make GLib quit mainloop on SIGTERM
Fixes #1435
2016-02-10 21:37:28 +01:00
Stein Magnus Jodal
3a7e7cdde0 process: Rename exit_handler() to sigterm_handler() 2016-02-10 21:34:37 +01:00
Stein Magnus Jodal
4691bf5ea6 process: Remove unused BaseThread class 2016-02-10 21:09:16 +01:00
Trygve Aaberge
17d96edd41 gst1: Import GstPbutils after calling Gst.init
With gst-python 1.6.2, importing GstPbutils before calling Gst.init
gives some warnings.
2016-02-08 00:31:50 +01:00
Trygve Aaberge
fefb6aa5a2 gst1: Don't check Gst.is_initialized before calling Gst.init
As of gst-python 1.5.2, Gst.is_initialized throws a NotInitialized
exception if run before Gst.init. Gst.init should be a noop if run again
after the first call, so this should be safe.

This fixes #1432.
2016-02-08 00:31:45 +01:00
Trygve Aaberge
6cbfe86677 gst1: Send in an argument to Gst.init
As of gst-python 1.5.2, the init call requires one argument. The
argument is a list of the command line options. I don't think we need to
send any.

This relates to #1432.
2016-02-08 00:31:16 +01:00
Stein Magnus Jodal
e67e4c2c6e core: Avoid use of deprecated property 2016-02-07 22:06:48 +01:00
Stein Magnus Jodal
78d10c4ab8 Reduce variation in Pykka imports
Which lets us reduce the amount of mocked modules when building docs
2016-02-07 12:55:13 +01:00
Stein Magnus Jodal
3f7fbf67f3 Fix remaining gi.repository imports 2016-02-07 12:45:12 +01:00
Stein Magnus Jodal
e7184cf0b3 Bump version to 2.0.0 because of GStreamer 1
Doing it right away instead of just before release for compat with
Mopidy-Spotify's develop branch.
2016-02-06 01:23:23 +01:00
Stein Magnus Jodal
ace7634804 gst1: Require GStreamer >= 1.2.3 2016-02-05 12:05:30 +01:00
Stein Magnus Jodal
b3f8460a94 gst1: Fix taglist creation 2016-02-04 00:24:44 +01:00
Thomas Adamcik
0336b6077c 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.
2016-02-03 22:38:25 +01:00
Stein Magnus Jodal
c749647a7b deps: lamemp3enc replaces lame in Gst1 2016-02-03 22:10:11 +01:00
Stein Magnus Jodal
dd7caa322d deps: mpg123audiocodec is an alternative to flump3dec and mad on Gst1 2016-02-03 22:09:52 +01:00
Stein Magnus Jodal
5e1633e1e2 deps: mpegaudioparse replaces mp3parse in Gst1 2016-02-03 22:09:22 +01:00
Stein Magnus Jodal
673b1b7bdc gst1: Fix typo in docstring 2016-02-02 22:15:58 +01:00
Stein Magnus Jodal
00ed7e549c gst1: Length will always be zero, leave it out 2016-02-02 22:14:06 +01:00
Thomas Adamcik
af43612630 audio: Add a TODO and some notes on duration handling 2016-02-01 23:58:00 +01:00
Stein Magnus Jodal
eda91cfa96 gst1: Add missing __future__ import 2016-02-01 23:27:06 +01:00
Stein Magnus Jodal
1daf582558 gst1: Check GStreamer version on start
If GStreamer is too old, it fails like this:

  $ mopidy
  ERROR: Mopidy requires GStreamer >= 1.2, but found GStreamer 1.0.0.
2016-02-01 23:12:16 +01:00
Stein Magnus Jodal
d9f53d5da3 gst1: Move all gi imports to a helper module 2016-02-01 23:09:28 +01:00
Stein Magnus Jodal
906a48eaf7 gst1: Fix digraph name
It was probably broken by some regexp replacement.
2016-02-01 13:14:44 +01:00
Stein Magnus Jodal
1c4b36f66a gst1: gi.require_version() GstPbutils before importing it 2016-02-01 13:05:52 +01:00
Thomas Adamcik
190abc3513 gst1: Use default queue settings
Removing this queue seems to break appsrc about to finish.
2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
df6db63dd4 gst1: Remove clearified TODO 2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
e68c4668fe audio: Fallback to datetime tag if no date tag 2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
9657004b77 audio: Move date tag from Track to Album
The Track model doesn't have a date attribute.
2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
f877ac0807 audio: Add support for GLib.Date tag values 2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
0fa78b8e39 gst1: Fix datetime tag conversion 2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
df62997186 audio: Decode tags to unicode 2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
8b543bad44 local: URIs should be unicode
Any non-ASCII content is uriencoded anyway.
2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
9fde0bec55 audio, timer: Fix trace log stmt 2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
31c894030d audio: Move tag helpers to mopidy.audio.tags 2016-01-31 21:07:17 +01:00
Stein Magnus Jodal
f0c7d25db6 audio: Reduce log level for unknown tag data 2016-01-31 21:07:17 +01:00