Commit Graph

221 Commits

Author SHA1 Message Date
ejurgensen 1f10c6a928 [player] Always reselect output devices when they return online
Consider this use case:
1. Playback stops, device switched off
2. Device switched back on, playback started by user
Before this commit, the device would be unselected when it came back on.
I don't think that is desirable, so with this commit the selection will
stay (except if the device comes back on during playback).
2016-04-30 23:55:45 +02:00
ejurgensen 960f89fcbd [player] Remove unused var 2016-04-14 10:04:21 +02:00
ejurgensen 857055a18d [player] Insert duplicate packets slowly on timer overrun 2016-04-14 09:48:48 +02:00
ejurgensen acc1ff4a47 [player] Sort devices and autoselect based on priority 2016-04-14 09:48:47 +02:00
ejurgensen c5bb83480d [alsa] Add rewritten ALSA to generic outputs interface 2016-04-14 09:48:47 +02:00
ejurgensen 617303d545 [player] Purge laudio from player.c 2016-04-14 09:48:47 +02:00
ejurgensen 36755031cb [outputs] Make a wrapper for mp3 streaming so it can be included in
the generic outputs interface and so special handling in player.c can
be removed
2016-04-14 09:48:47 +02:00
ejurgensen a07c24d625 [player] Fix possible segfault after playback stop on FreeBSD/machines with lo-res timers 2016-04-14 08:55:59 +02:00
chme 1fb1fc7d2d [player] Add config option to disable clearing the queue after playback
stops (default is clearing the queue) and if true do not clear the
queue.

This option is necessary because some dacp clients rely on the queue
being empty if player is stopped. Retune for example does not always
show the queue contents if player state is stopped.
2016-03-20 07:45:21 +01:00
chme e3750957f5 [player] Allow removing by position (dacp-requests) if player is stopped 2016-03-19 09:40:36 +01:00
chme ed2fe682fe [player] Allow moving by position (dacp-requests) if player is stopped 2016-03-19 09:40:36 +01:00
chme d35894ac15 [mpd] Return correct item-id for command 'addid' and return correct
number of items in the queue if player is stopped for command 'status'
2016-03-19 09:40:36 +01:00
ejurgensen b454a2fd60 [general] Put back support for platforms without pipe2(), see issue #239 2016-03-17 22:20:16 +01:00
ejurgensen abce1d0eeb Merge pull request #237 from chme/threadnames
Set thread names
2016-03-12 17:18:34 +01:00
chme 98d6db002f Set thread names to make it easier to identify threads during debugging 2016-03-12 14:01:08 +01:00
chme 9a5b67031e [player] Remove unnecessary check for plid != 0 and set plid always to 0
if queue changed
2016-03-12 14:01:08 +01:00
ejurgensen bd61399e49 [player] Only catch up by lowering sample rate if data_kind is http or pipe 2016-03-06 10:55:10 +01:00
ejurgensen 3000341acd [player] Different timer catch up for files + remove timer abort
Timer abort should no longer apply since we may catch up for more
than a second. Introduce separate catch up strategies for files and
streams, since for files we can read at our own pace.
2016-02-28 22:28:37 +01:00
chme 494a936caa [mpd] Implement mpd command 'move' 2016-02-21 19:01:52 +01:00
ejurgensen a824f73779 [player] Remove some debug log messages 2016-02-12 22:00:10 +01:00
ejurgensen bd75281340 [player] Save speaker name and rename raop_ to output_ 2016-02-11 20:04:30 +01:00
ejurgensen 483a428bae [chromecast] Try to improve session handling + actually remove device on mdns cb 2016-02-11 20:04:29 +01:00
ejurgensen e4d209f8a0 [chromecast] Support for most basic functionality 2016-02-11 20:04:29 +01:00
ejurgensen ffe8653d9e [chromecast] Remove RAOP specifics from player.c, add generic output interface 2016-02-11 20:04:29 +01:00
ejurgensen 4c887ba7bb [chromecast] First building blocks for supporting ChromeCast 2016-02-11 20:04:29 +01:00
ejurgensen 62eb1a067d [player] Rename ticks to overrun and safeguard against decreasing from 0 2016-02-11 20:02:17 +01:00
ejurgensen 5f5a138c77 [player] Fix for player getting ahead of network streams (issue #218)
Issue caused stuttering after a few hours. This fix will check if
the player is getting behind the playback timer. Apparently, we
sometimes get samples at a rate slightly below 44100 from network
streams, and then we end up consuming too quickly. This introduces
a way of reducing consumption if that happens.
2016-02-11 08:29:29 +01:00
chme b2d2e9286f [mpd] implement range support for 'delete' command 2015-11-22 12:06:01 +01:00
chme 8fc8d08b42 [player] Add missing notification of playlist changes after removing an
item from the playlist
2015-11-21 14:23:06 +01:00
ejurgensen 316af87189 Merge pull request #193 from chme/mpd
[mpd] Add support for moveid and close command
2015-10-31 11:31:27 +01:00
chme 1c409846d5 [player/queue] Add player commands to move queue-items by item-id 2015-10-31 07:56:50 +01:00
chme 94895b8eed [player] if source is not pausable (http-streams or pipe) abort playback
on pause command 

This restores the behaviour before the queue/player-refactoring.
2015-10-25 09:00:47 +01:00
ejurgensen 3e80e5c517 [transcode] Don't pass error to player on eof + some comments and cleaning 2015-10-22 22:09:19 +02:00
ejurgensen 9853b8f9bd Merge pull request #188 from chme/playerfixes
Playerfixes
2015-10-19 22:15:43 +02:00
chme 7592462571 [player] Fix segfault if reading from source failed for all queue items 2015-10-19 21:33:43 +02:00
ejurgensen 55104015e0 Full removal of libevent 1 legacy code. Also drop pipe() in FreeBSD, since pipe2 is available now. 2015-10-19 21:15:29 +02:00
ejurgensen 2a610812a5 Refactor transcode.c so it can actually transcode + use new capability to support mp3 streaming.
Also includes the skeleton for perhaps supporting video in the future. Adds more fine-grained
ffmpeg/libav compability checks. Dependency on libavresample/libswresample exchanged with
dependency on libavfilter, which seems more versatile.
2015-10-09 23:58:27 +02:00
chme 199b765a7d [player] Store item-ids in history to allow start of playback from the
previously played items in dacp
2015-10-04 08:05:37 +02:00
chme b19a7280b9 [player] remove unused player_queue struct 2015-10-04 08:05:37 +02:00
chme fbce3a7d57 [player] Confusing naming of ids cleaned up 2015-10-04 08:05:37 +02:00
chme ba3385b0ec [queue] Remove queue_info and queue_item_info structs 2015-10-04 08:05:37 +02:00
chme 064dfef2de [player] cleanup metadata_trigger
metadata_trigger is always called for the current streaming item and
source_open makes sure that the stream_start and output_start values are
set correctly
2015-10-04 08:05:36 +02:00
chme 64698eb3a4 [player] Some minor cleanup (error handling, comments) 2015-10-04 08:05:36 +02:00
chme a06424a701 [mpd] Expose queue-item-id instead of dbmfi-id in mpd commands
[player] Reshuffle on end of playlist and repeat mode is "repeat all"
2015-10-04 07:59:58 +02:00
chme cb2805800b [player] Fix segfault if pause requested in the last two seconds of the
last item in the playqueue (cur_streaming is already NULL)
2015-10-04 07:59:58 +02:00
chme 2b037b67d9 [player] Combine stream_stop and stream_cleanup into one function 2015-10-04 07:59:58 +02:00
chme e44a160b9a [player] Improve error handling 2015-10-04 07:59:58 +02:00
chme 4595a2f4a6 [player] Add missing metadata trigger on item change (after eof) 2015-10-04 07:59:58 +02:00
chme c8a61015fc [dacp] Fix playing of radio streams after queue refactoring 2015-10-04 07:59:58 +02:00
chme 58069e67f8 [player/spotify] adjust spotify integration to refactoring of player 2015-10-04 07:59:58 +02:00