Commit Graph

5868 Commits

Author SHA1 Message Date
chme f1742b18b3 [web-src] Fix multiple triggering of navbar-links routes 2019-10-27 07:43:42 +01:00
ejurgensen dd24c35b2f [misc] Add missing comparison in quality_is_equal() 2019-10-26 23:30:44 +02:00
ejurgensen 051e526b2c [pipe] Disallow 24 bit input, doesn't work currently
If 24 bit input needs to be transcoded, like it will for AirPlay, it
will fail in transcode.c, because XCODE_PCM24 actually produces 4-byte
samples.
2019-10-26 23:28:05 +02:00
chme 662bfa529b [httpd] Force browsers to always revalidate their cached versions
Setting Cache-Control to "no-cache" tells a client to always make a
request to check if the version in the client cache is still valid
(response code 403 not modified).
2019-10-26 12:01:15 +02:00
chme f500b21c94 [web-src] Add autocomplete="off" to search field 2019-10-26 11:51:57 +02:00
chme 7a236a21b8 [web-src] Disable play/pause/etc. buttons if queue is empty 2019-10-26 10:08:38 +02:00
chme e8ead500c5 [web-src] make outputs and settings buttons clickable 2019-10-26 09:23:51 +02:00
chme 1631aa04c6 [web-src] Add vue-click-outside as a dependency 2019-10-26 09:23:45 +02:00
ejurgensen 85ab7c3057 [alsa] Fix playback of 24 bit audio (issue #830)
The player will write 24 bit samples using 3 bytes, not 4, so the appropriate
sample format is SND_PCM_FORMAT_S24_3LE, not SND_PCM_FORMAT_S24_LE.

For extra protection we also use snd_pcm_bytes_to_frames() instead of BTOS(),
because that way we can be more certain that the buffer is not too short for
snd_pcm_writei().
2019-10-22 19:51:51 +02:00
ejurgensen 41f51d43ac [pipe] Allow configuration of 32 bit input format (issue #830)
Should work with e.g. arecord -f S32_LE -r 96000 -c 2 -t wav
2019-10-21 21:54:12 +02:00
ejurgensen ef1c24f227
[docs] Update README client compability: Apple Music not working
Apple Music on macOS not working, see issue #785
2019-10-20 14:53:22 +02:00
chme 4c835f4435 [player] Remove dead code and rework check if fetching queue item failed 2019-10-20 14:36:21 +02:00
chme 69d3c97b7e [player] Fix freeing of queue item if error happens during seek
Plus fix some code style issues and add more documentation
2019-10-20 14:36:21 +02:00
chme 779e5b8617 [README] Add new seek parameter to JSON API documentation 2019-10-20 14:36:21 +02:00
chme 6e5d6791ff [player/dacp/mpd/jsonapi] Combine seek commands into one with mode param
Also changes relative seeking behavior:
- seeking behind the the current track only switches to the previous
track, if we are not more than 3 seconds into the current track,
otherwise starts current track from the beginning
- seeking beyond the current track will start the next track from the
beginning
2019-10-20 14:36:21 +02:00
chme d69f328973 [jsonapi] Support relative seeking 2019-10-20 14:36:21 +02:00
chme ced11ef0c1 [player] Allow seeking by a relative amount of milliseconds 2019-10-20 14:36:21 +02:00
ejurgensen e13185c1bf
Merge pull request #831 from chme/pipe_artwork
Show pipe artwork in player web interface
2019-10-20 14:33:03 +02:00
Christian Meffert dc9e6d73e1
Merge pull request #826 from roblan/patch-1
[web-src] update .browserlistrc file
2019-10-20 08:48:10 +02:00
chme dc9396886c [jsonapi] Set correct artwork url for pipe input 2019-10-20 08:39:18 +02:00
chme 7e6b8f740d [db] Add missing mapping of queue version into queue item on fetch 2019-10-20 08:38:40 +02:00
roblan 1ac2f43734
[web-src] update browserlistrc file 2019-10-08 21:16:24 +02:00
ejurgensen 547222ec2b
Merge pull request #821 from chme/master_vol
[player] Fix missing update of master volume in web interface
2019-09-26 22:17:37 +02:00
ejurgensen a08e08c63a
Merge pull request #820 from chme/outputs_toggle
New JSON API endpoint for toggling outputs
2019-09-26 22:17:19 +02:00
chme e3edcb5b96 [player] Fix missing update of master volume in web interface
Activating/deactivating an output might change the master volume,
therefor send a volume change notification.
2019-09-26 08:11:29 +02:00
chme 37b7a2952b [README] Add documentation for toggle outputs endpoint 2019-09-26 08:03:28 +02:00
chme 2846287169 [jsonapi] Add endpoint "/api/outputs/{id}/toggle" to toggle outputs 2019-09-26 08:00:03 +02:00
ejurgensen 5d93fd5042
[docs] Update README with note about Debian package not including web UI 2019-09-23 21:35:57 +02:00
ejurgensen 8cff93ce55 [streaming] A bit of fixing up 2019-09-22 23:08:35 +02:00
whatdoineed2do/Ray 586dc4342d [streaming] mem leak fix on client initiated disconnect; close callback cleans
up the session but not the evhhttp_request object alloc'd in
  httpd()-> event_base_loop() -> ... -> evhttp_request_new()
2019-09-22 23:08:35 +02: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 7ccd32c354 [streaming] validate cfg for supported ffmpeg/mp3 sample_rates
$ fmpeg -h encoder=mp3
    ...
	Supported sample rates: 44100 48000 32000 22050 24000 16000 11025 12000 8000
	Supported sample formats: s32p fltp s16p
	Supported channel layouts: mono stereo
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 07d297aaca [streaming] increase icy-metaint interval to 16k bytes 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 cae790ed7e [pipe] Harden pict_tmpfile_recreate() against invalid input, take 2 2019-09-22 22:56:18 +02:00
ejurgensen d2921e9444 [pipe] Harden pict_tmpfile_recreate() against invalid input 2019-09-22 20:27:47 +02:00
ejurgensen 56d3f42598 Fix a few gcc 8 / scan-build compiler warnings 2019-09-22 00:51:17 +02:00
ejurgensen cf927e7daa [pipe] Fixup missing condition 2019-09-20 21:51:09 +02:00
ejurgensen e1a0e366cf [dacp] Make sure Remote updates images from metadata pipes 2019-09-20 21:47:17 +02:00
ejurgensen 7316c060b8 [pipe/artwork] Support for artwork via Shairport metadata pipes, take 3
This implementation uses a tmpfile for storage of the artwork, plus it uses
artwork_get() which means that it scales the image as requested by the client.

It also does not create a tmpfile unless we actually receive artwork.
2019-09-20 21:47:17 +02:00
ejurgensen ddb91e61ef [pipe/artwork] Support for artwork via Shairport metadata pipes, take 2
This implementation uses a tmpfile for storage of the artwork (instead of the
cache, which may not be enabled).
2019-09-20 21:47:17 +02:00
ejurgensen 69fafd873d [pipe/artwork] Support for artwork via Shairport metadata pipes
This implementation uses the cache for storage. Might change that to use a
tmpfile instead.
2019-09-20 21:47:17 +02:00
ejurgensen 2e149273e5 [cache] Clear stash if called with called with NULL 2019-09-20 21:47:17 +02:00
ejurgensen 1752901529 [misc] Change b64_* to wrap ffmpeg's base64 encoder/decoder
Using ffmpeg's is probably better than having our own, plus it provides us with
decoded length, which we will need to support artwork via pipe.
2019-09-20 21:47:17 +02:00
ejurgensen e654276262 [alsa] Fix incorrect use of abs() for float, use fabs() instead 2019-09-18 21:28:15 +02:00
ejurgensen 6836a0f277 [mdns] Fix incorrect error check for getaddrinfo (can cause segfault)
Non-zero return from getaddrinfo is an error, so since *ai could be a null
pointer when derefenced in the following socket() call.
2019-09-18 21:18:01 +02:00
ejurgensen 4ab734343c [-] Free events on exit (turns out event_base_free does not free them)
Credit @whatdoineed2do, ref. pr #797
2019-09-09 22:23:00 +02:00