Commit Graph

246 Commits

Author SHA1 Message Date
chme cef4fedfb4 Remove unused structs and player arguments 2016-12-03 11:12:19 +01:00
chme 6c66d39d91 [player] Fix segfault if player reaches end of queue, fix repeat single 2016-12-03 11:12:19 +01:00
chme a0590ce548 [db/player] Icy metadata update 2016-12-03 11:12:19 +01:00
chme c504abe451 Use queue db table instead of in memory queue struct 2016-12-03 11:11:33 +01:00
chme faaeb92ce5 [player] Reading media_file_info is not necessary in source_pause 2016-12-03 10:58:26 +01:00
ejurgensen 51e6008ef6 Merge pull request #305 from chme/streamsetup
Reduce dependency to media file in stream setup methods
2016-11-26 17:43:24 +01:00
ejurgensen bdd6bab982 [-] Lots of housekeeping thanks to scan-build and input from @acmay 2016-11-19 23:08:50 +01:00
chme 6690ba32eb [player/transcode/httpd] Pass path, data_kind and song_length to
transcode_decode_setup/transcode_setup
2016-11-12 09:11:40 +01:00
chme 477088a36c [player/pipe] Only pass path to pipe_setup 2016-11-12 09:11:40 +01:00
chme 2db3318ce7 [player/spotify] Only pass spotify-path to spotify_playback_setup 2016-11-12 09:11:40 +01:00
chme bdb2c74934 [player/dacp/mpd] Pass absolute volume to speaker enumerate callback and
add absolute volume to mpd 'outputs' command
2016-10-25 22:40:48 +02:00
chme 3981c67e3a [player] Do not execute the bottom half if playback_start is called
while player is already playing (results in s segfault after adding new
items through dacp clients)
2016-10-23 08:25:19 +02:00
ejurgensen b3a1e744d6 [player] Fix possible segfault on http timeouts
Cause: 1) av_read_frame blocks and times out, 2) cur_streaming gets set to NULL, 3) playback timer callback where cur_streaming gets deref
2016-09-25 22:19:59 +02:00
ejurgensen ac290b8b65 [player] Config option to disable speaker autoselection (closes #282) 2016-09-10 23:26:06 +02:00
chme da83af04e2 [player] Fix return value in repeat_set if repeat mode did not change 2016-08-06 06:36:42 +02:00
chme 30d43bef4f [player] Fix return value in volume_setrel_speaker if device is not
selected
2016-08-06 06:34:34 +02:00
chme 2ae94e8f82 [player] Fix return value in playback_prev_bh if source_open failed 2016-08-06 06:31:09 +02:00
chme cd9a3bae07 [player] Fix return value in playback_start_item if source_open failed 2016-08-06 06:29:55 +02:00
ejurgensen 547783d008 Merge pull request #268 from chme/threadexit
Refactor thread exit handling
2016-06-11 22:57:09 +02:00
chme 32ac6c2ea9 [commands] Rename commands_cmdloop_break to commands_base_destroy and
free commands_base after breaking the libevent loop
2016-06-11 10:56:27 +02:00
chme a9a656042b [player] Cleanup: player clock is the only sync-source available 2016-06-11 10:37:09 +02:00
chme 5258ee712c [commands] Added functionality to break the event loop of a command base 2016-06-11 09:52:31 +02:00
chme 5dc1cba5c8 On deinit free event base before freeing command base and pipes 2016-05-21 06:48:02 +02:00
chme 3c9a7d9119 [player] Use generic commands for inter thread communication 2016-05-15 08:42:15 +02:00
ejurgensen 9a56044c77 [misc] Explicitly check for pthread_setname_np/pthread_set_name_np
Seems there is no pthread_setname_np in OpenWrt
2016-05-05 19:39:15 +02:00
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