Commit Graph

92 Commits

Author SHA1 Message Date
ejurgensen
4e1e5efedc [alsa] Changes to commit 0cb4e0b: multiple devices 2020-01-03 19:02:39 +01:00
whatdoineed2do/Ray
0cb4e0b862 [outputs/conf] New multiple 'alsa' sections split from 'audio' 2020-01-02 23:51:59 +01:00
whatdoineed2do/Ray
c2ba1fdb63 [streaming,conf,xcode] review fixes 2019-09-22 22:58:32 +02:00
whatdoineed2do/Ray
008e11bfb8 [streaming] review: remove bps/channels from cfg, undoc icy_metaint cfg option 2019-09-22 22:58:32 +02:00
whatdoineed2do/Ray
8762891145 [streaming] configurable icy_metaint 2019-09-22 22:58:32 +02:00
whatdoineed2do/Ray
f5c3eb0c14 [streaming] refactor for sperate in/out streaming qualities and configurable streaming params 2019-09-22 22:58:32 +02:00
whatdoineed2do/Ray
554799ebc3 [streaming/xcode] configurable MP3 streaming bitrate 2019-09-22 22:58:32 +02:00
ejurgensen
78373af201 [cast] Add a simple delay to stream to a have little bit of sync
Since it is unknown how to do real sync on Chromecast, this commit instead adds
a primitive delay to the stream, so that it is at least somewhat closer to
Airplay/local audio.

Also some cleanup of unused stuff.
2019-08-23 19:45:17 +02:00
chme
94af51f19b [conf/logger] Log error message from libconfuse in forked-daapd log 2019-06-15 12:21:27 +02:00
chme
7853f80269 [conf] Readd old config options in mpd section as deprecated 2019-06-15 12:21:27 +02:00
whatdoineed2do/Ray
d28f7f43b7 [jsonapi,mpd,conf] save playlist via JSON api
- new endpoint api/queue/save?name= to .m3u via library_save()
- refact for common cfg for playlist save options
2019-05-30 07:23:04 +02:00
ejurgensen
dc65cb5b76 [alsa] Make sync and sync evaluation period configurable 2019-04-09 21:45:16 +02:00
ejurgensen
02cd65a992 [alsa] New resample-based sync correction 2019-04-08 00:50:20 +02:00
ejurgensen
143708368c [alsa] Fix sync check
Sync correction still not implemented
2019-03-18 23:06:08 +01:00
ejurgensen
9182597605 [input/xcode] Write to input buffer with the sources native sample rate/format
Still WIP at this point since the player and output can't use the use improved
quality yet, and because rtptimes etc. are likely incorrect
2019-03-18 23:06:08 +01:00
ejurgensen
cb49554608 [raop] Fix forgotten include of conffile.c in commit 18acb73 (fixes #688) 2019-02-07 21:14:13 +01:00
ejurgensen
741825d086 [cast] Add option to exclude speakers (closes #659) 2019-01-09 20:26:31 +01:00
Don Cross
07e46d75c8 [alsa] Made resync period configurable 1..20 seconds, with default=10. (#604)
The unconfigurable resync period of 10 seconds was not frequent
enough to keep my own ALSA device in sync with the AirPlay stream.
Now the period is configurable.  The default is still at 10
seconds, to prevent any change in behavior unless opted in by
the user.

Currently the adjustment causes a tiny "click" distortion in the
ALSA output, so it is better to make the check as infrequent as
possible, while still being frequent enough to stay in sync
over lengthy sessions of playback.

Added source_sample_rate, target_sample_rate to alsa_session.
This is a first step toward rendering ALSA at a different
sampling rate than the AirPlay stream, so that (a) we will
be able to dynamically adjust the ALSA sampling rate for an
improved sync algorithm, and (b) later, a more generalized
resampling algorithm can accommodate very different hardware
sampling rates like 22050 Hz or 48000 Hz.

Reworked alsa_session_free() so that it can be used to
tear down a partially initialized alsa_session if an
error occurs in the middle of alsa_session_make().
This simplifies the error handling logic in alsa_session_make().
This refactoring will be helpful later when resampling is added,
because more data structures will be dynamically allocated
during initialization.

Signed-off-by: Don Cross <cosinekitty@gmail.com>
2018-10-14 20:40:36 +02:00
chme
f84e67ed5e [db/conf] Add automatic calculation of ratings based on played/skipped
If activated in the configuration file, rating is updated after playing
or skipping a song. The calculation is based on how it is done in the
mpdstats plugin for beets
(https://beets.readthedocs.io/en/latest/plugins/mpdstats.html).
2018-09-16 08:46:16 +02:00
ejurgensen
ab1ded35e4 [config] Make user_agent configurable + don't use ffmpeg default (ref issue #562) 2018-08-12 19:49:23 +02:00
chme
56f4b32ef3 Add option to enable memory-mapped I/O 2017-12-26 08:06:38 +01:00
ejurgensen
3d5aeda7aa [httpd] Implement "trusted_networks" option
Some clients aren't really capable of authenticating + some users probably
don't want to enter a password for the web interface. This option allows
clients on for instance the local network to connect without authentication.
2017-11-12 21:29:57 +01:00
ejurgensen
eff9e6ebeb [httpd] Add promiscuous mode option, i.e. no auth requirements
For people who want to avoid the web login, or want to get around pairing
problems. This is also added because commit #e59a1a1 means that all
Remotes are now subject to auth, not just those with a user-agent name that
starts with "Remote".
2017-11-11 22:20:09 +01:00
Wolfgang Scherer
16fa1e77b2 [scan] Configuration option to follow symlinks 2017-11-09 01:16:44 +01:00
Wolfgang Scherer
540d771648 [pulseaudio] allow specification of pulseaudio server 2017-11-05 19:33:14 +01:00
chme
42b644020d [conf] Add "websocket_port" to config file 2017-09-15 07:04:18 +02:00
chme
8f49a6fb45 [mpd/conf] Add config option to enable modifying stored playlists 2017-08-12 10:16:07 +02:00
chme
dc3f9443e7 [mpd/conf] Add support for stored playlist commands (add/save/delete)
This also introduces a new config option to define a default playlist
folder. The default playlist folder is used by forked-daapd if the
playlist is not a full virtual path (simpifies creation of playlists
with mpd clients).
2017-08-09 21:41:32 +02:00
ejurgensen
81a93bbec1 [player] Add config option high_resolution_clock 2017-06-26 23:32:24 +02:00
ejurgensen
fce68ebd1a [raop] Add option to exclude particular devices from speaker list 2017-03-15 23:24:24 +01:00
ejurgensen
9aede45a12 [pipe] Add a pipe input with autostart capabilities 2017-01-27 22:30:47 +01:00
chme
65732ccaf6 [outputs] New output type 'fifo' 2016-10-31 18:47:45 +01:00
ejurgensen
0b29b4368d [httpd] Enable CORS headers by default (Access-Control-Allow-Origin: *) 2016-10-17 22:03:32 +02:00
Pat Coulthard
ae79800493 Add mixer_device configuration file option for ALSA
Support a separate mixer_device configuration file option for
advanced ALSA configurations. Previously, ALSA local output
happened to work becasue "default" is valid as both a PCM and a
mixer. Now you can separately specify the device name for PCM
output and mixer operations.

In my setup, I am using the following setup:
card = "default:CARD=NVidia"
mixer = "Front"
mixer_device = "hw:CARD=NVidia"
2016-09-25 15:52:15 -05:00
ejurgensen
ac290b8b65 [player] Config option to disable speaker autoselection (closes #282) 2016-09-10 23:26:06 +02:00
ejurgensen
3527113a9b [filescanner] Option to import iTunes smart playlists 2016-06-04 23:30:01 +02:00
Björn Ricks
6b6a1e65e1 Allow to add Access-Control-Allow-Origin header to responses
Add a new general config setting allow_origin that is included as
Access-Control-Allow-Origin header in http responses. This allows to make http
request against forked-daapd from browsers with enabled CORS
(https://www.w3.org/TR/cors/) via JavaScript XMLHttpRequest.

Per default the setting is not defined and no Access-Control-Allow-Origin header
is included in the response.
2016-06-02 13:32:41 +02:00
ejurgensen
ad01d65047 [alsa] Let the user configure an offset to sync audio if required 2016-04-14 09:48:48 +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
167d5117be [spotify] Remove options to exclude starred songs from the artist/album
override
2016-03-05 12:55:34 +01:00
ejurgensen
6e58af75cf [http_daapd] Add option to hide albums/artists with just one track 2015-12-12 23:28:48 +01:00
ejurgensen
d43b306212 [config] Change ipv6 default to enabled 2015-12-03 22:08:55 +01: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
1ab318d725 [mpd] support serving artwork over http 2015-07-18 07:17:21 +02:00
chme
c8e793fd0c [laudio] Makes the output type for local audio configurable and
introduces a dummy output for local audio

Changes configure.ac to control the with-alsa and with-oss4 separately.
This makes it possible to only use the dummy output and compile without
alse+oss4.
2015-04-12 07:03:32 +02:00
ejurgensen
4850423118 Make hiding internet streams from normal playlists configurable 2015-03-30 21:10:59 +02:00
ejurgensen
33bc7227ea Make use of Spotify playlist folder configurable 2015-03-30 00:59:55 +02:00
chme
988283c25d [spotify] Added config options to use the playlist name as album name 2015-03-08 10:26:40 +01:00
chme
7cc3659d42 [spotify] Added config options to use the compilation artist for spotify
tracks
2015-03-08 10:26:40 +01:00
chme
830054bd71 Initial support for mpd protocol 2015-02-14 08:50:18 +01:00