Commit Graph

3925 Commits

Author SHA1 Message Date
ejurgensen
805cd16442 [pairing] Remove dead assignment 2020-04-13 21:39:59 +02:00
ejurgensen
90eb333f03
Merge pull request #933 from nhannam/raop-configurable-ports
[raop] Allow configuration of raop control and timing ports
2020-04-12 19:49:49 +02:00
chme
14b4081769 [artwork] Ignore streams with media kind != music in artwork sources
"stream", "discogs", "coverartarchive", "spotify"
2020-04-12 10:49:56 +02:00
Nigel Hannam
5d6c8d7b5b [raop] Fix spelling mistakes 2020-04-11 22:44:41 +01:00
Nigel Hannam
5f3103fae7 [raop] Move config into new airplay_shared block 2020-04-11 22:30:27 +01:00
ejurgensen
08b2eb8d4c [dacp/player] Change support for prevent-playback and busy (ref issue #934)
Adds support for dcmp.device-busy, and also changes handling of
device-prevent-playback so it matches iTunes better.
2020-04-10 21:01:41 +02:00
whatdoineed2do/Ray
e5ff30e11b [scan] support #EXTGENRE: 2020-04-09 17:43:09 +01:00
Nigel Hannam
19d1d4f67b [raop] Allow configuration of raop control and timing ports 2020-04-08 21:16:00 +01:00
ejurgensen
c4cc366e6f [artwork] Avoid slow nowplaying artwork response -> slow Remote connect
Lower priority of potentielly slow embedded artwork retrieval, plus make sure
we tell the transcode module about http data kind, so that it can probe
quicker.
2020-04-07 22:54:10 +02:00
ejurgensen
3a897afc44 [xcode] Use smaller probe size for remote tracks for quicker startup 2020-04-07 21:44:52 +02:00
ejurgensen
a8e6522a3c [xcode] Change workaround in commit a0ac66e for AIFF issue
This solution matches what we do for 'in' filter
2020-04-07 21:24:31 +02:00
ejurgensen
a0ac66e020 [xcode] Workaround for ffmpeg detecting channel_layout = 0 for AIF 2020-04-07 20:55:17 +02:00
whatdoineed2do/Ray
0baa0ac552 [smartpl] add samplerate 2020-04-07 18:46:33 +01:00
whatdoineed2do/Ray
1b354121c5 [smartpl] support birate,bits_per_sample,codectype 2020-04-05 14:42:01 +01:00
ejurgensen
4fcd0ba781 [daap] Adjust user_agent_filter() so code matches intention 2020-04-04 21:25:14 +02:00
ejurgensen
5651ce7694 [library] Use item title from RSS feed 2020-04-04 21:07:16 +02:00
ejurgensen
dbc798da4f [-] Workaround for mxml 2.10 memleak
2.10's mxmlDelete memleaks, and mxml is used in many parts of forked-daapd. So
to avoid that we ship upstream's fixed version of mxmlDelete and use that.
2020-04-04 21:07:16 +02:00
ejurgensen
2d8521139c [library] Add action to library_schedule_callback()
Makes it possible for the caller to request that a previous callback is
replaced, so we don't end up with more and more callbacks. Also add other
options for future use.
2020-04-04 21:07:16 +02:00
ejurgensen
2af7296723 [library] Ignore RSS items without URL's 2020-04-04 21:07:16 +02:00
ejurgensen
1a45a2acda [db] Fix db_pl_delete so it won't delete files belonging to other pl's 2020-04-04 21:07:16 +02:00
ejurgensen
16a3b8878f [jsonapi] Change library_item_add, add delete pl and drop library_item_remove 2020-04-04 21:07:16 +02:00
ejurgensen
59fa33311d [library] Refactor RSS scanner 2020-04-04 21:07:16 +02:00
ejurgensen
b19314e814 [db] Add cleanup to db_pl_delete(), remove db_pl_purge() 2020-04-04 21:07:16 +02:00
ejurgensen
2ee5f6d747 [library] Change implementation of item_add, event cb and drop item_remove. 2020-04-04 21:07:16 +02:00
whatdoineed2do/Ray
5cddf0e347 [jsonapi] RSS support: new /api/library/item_{add,remove} endpoints for adding items to library - for RSS at this time and extend PL_ search and queries to incl PL_RSS 2020-04-04 21:07:16 +02:00
whatdoineed2do/Ray
10b10f8037 [daap] RSS support: podcasts visible on IOS Remote app
IOS appl generates request for itunes.extended-media-kind: 4,36,6,7 when
navigating "Podcasts" item on menu
2020-04-04 21:07:16 +02:00
whatdoineed2do/Ray
d40131d38d [scan] RSS support: new library source - RSS scanner; periodically updates RSS feeds as found in db once subuscribed. Auto translates apple podcasts to RSS link 2020-04-04 21:07:16 +02:00
whatdoineed2do/Ray
8b02ea9d6b [library] RSS support: new library interface item_{add.remove} and all library modules to register (timer) events 2020-04-04 21:07:16 +02:00
whatdoineed2do/Ray
57b0626906 [db] RSS support: new PL_RSS db value and new pl purge 2020-04-04 21:07:16 +02:00
Rosen Penev
08b055dd2b
websocket: add header for errno
fixes compilation under newer musl.
2020-03-29 20:51:19 -07:00
ejurgensen
f61dfa0529 [db] db_pl_delete_bypath() must also delete disabled playlists
Otherwise we end up with a bunch of disabled playlists in the db.
2020-03-29 00:33:44 +01:00
Christian Meffert
5bd32135ee
Merge pull request #916 from whatdoineed2do/json-playlist-play-count-update
[json] enable playlist play_count
2020-03-28 07:41:24 +01:00
ejurgensen
114881cd1c [misc] Add comment for commit 27138ed 2020-03-25 16:13:55 +01:00
uvjustin
27138edd55
Update misc.c
Allocate extra byte for null termination of string
2020-03-25 14:57:23 +08:00
ejurgensen
cfecb4a5f5 [scan] Also support nested smart playlists (closes issue #923) 2020-03-23 23:46:52 +01:00
whatdoineed2do/Ray
a31430f671 [jsonapi] album/playlist inc uses db specific methods 2020-03-23 13:42:46 +00:00
whatdoineed2do/Ray
286525a85c [db] inc playcount using filter 2020-03-23 13:39:59 +00:00
whatdoineed2do/Ray
1a912d9808 [jsonapi] enable album track play_count update 2020-03-23 13:39:59 +00:00
whatdoineed2do/Ray
a6d8d55bd4 [jsonap] new PUT /api/library/playlists/[[:digit:]]+/tracks endpoint
enable playlist tracks play_count updates: 'increment', 'reset', 'played'
2020-03-23 13:39:59 +00:00
chme
ec8ce91baa [jsonapi] Use synchronous pairing request command 2020-03-18 14:56:05 +01:00
chme
accab800ac [pairing] Refactor remote_pairing to use cmdbase
This allows to call a sync command that returns the outcome of a pairing
request. And that will be useful for the JSON API and the web interface.
2020-03-18 14:56:05 +01:00
ejurgensen
3b27d50f97
Merge pull request #907 from chme/artwork_remove_libspotify_refactor
Remove libspotify as artwork source + refactoring
2020-03-15 18:27:18 +01:00
chme
67fd555b52 [artwork] Refactor artwork_get_dir_image 2020-03-14 07:03:06 +01:00
chme
c75ff89769 [jsonapi] Do not fail on /api/library/playlists/0
The root playlist folder does not exist in the DB therefor add special
handling and return some fixed data.
2020-03-08 19:13:17 +01:00
Christian Meffert
1bf094ed81
Merge pull request #906 from chme/playlist_folder2
JSON API - Support for Playlist Folders
2020-03-08 07:31:09 +01:00
ejurgensen
51b7a8854c [scan] Add support for MUSICBRAINZ_ALBUMID tag (fixes issue #914) 2020-03-06 19:07:06 +01:00
ejurgensen
37510db748 [mdns] Fix possible incorrect library ID in _dacp._tcp (fixes #899)
If the library ID started with one or more 0's then it would not be printed in
the announcement, which meant that DACP commands would not work due to
incorrect ID.
2020-03-02 19:53:43 +01:00
whatdoineed2do/Ray
81f4834814 [http] leak fix for curl_slist_append() 2020-02-28 21:57:10 +00:00
ejurgensen
64c6007aad [db] Fix memleak from unexpected return value, closes issue #909
On success the function was returning SQLITE_OK = 100, not 0, which made
json_reply_library think that the operation failed.

Credit @whatdoineed2do
2020-02-25 21:58:18 +01:00
chme
6ba45e8d94 [artwork] Remove libspotify based artwork handler 2020-02-25 05:41:49 +01:00
chme
36ebf7d06c [jsonapi] Add support for playlist folders 2020-02-24 21:27:53 +01:00
ejurgensen
248f82f3c8 [db] Fixup fixup in commit #00de0a3 (upgrade dbvers to 21.3)
Forgot to include db_upgrade to v21.3
2020-02-23 21:26:00 +01:00
ejurgensen
1ed10771f1 [artwork] Get enablement of online srcs from settings
Settings will take care of consulting the cfg file now
2020-02-23 20:30:35 +01:00
ejurgensen
9b9d2d0fb7 [settings] Add handlers to set default settings, e.g. from the cfg file 2020-02-23 20:30:35 +01:00
ejurgensen
5736217315 [db] Change prototype of db_admin_getxxx() functions
Makes it possible for caller to distinguish between "not set" and "set to 0".
2020-02-23 20:30:35 +01:00
ejurgensen
afa1a07a42 [artwork] Fix handling of cache + enable online srcs via config
* Don't save artwork for permanent items (file + Spotify) to the stash. The
  stash is only for short term artwork.
* If a request comes with a different max_w/max then search the online source
  again.
* Make artwork requests thread-safe by mutex protecting the search history.
* Add config option
2020-02-23 20:30:35 +01:00
ejurgensen
c674f84497 [json] Make clients reload artwork when we have new http metadata 2020-02-23 20:30:35 +01:00
ejurgensen
ad9ebb75c6 [artwork] Refinement of online artwork search
* Add system to avoid making too many futile requests + repeated requests
* Fixup Spotify artwork search (use type=track, type=album gave empty results)
* Include stash caching in artwork_get_byurl()
2020-02-23 20:30:35 +01:00
ejurgensen
8261fb8e59 [http] Don't return zero-length ICY title metadata 2020-02-23 20:30:35 +01:00
ejurgensen
9068c66dcd [cache] Minor changes so "const char *" path arguments are accepted 2020-02-23 20:30:35 +01:00
ejurgensen
2651a979fe [inputs] Fix issue where input metadata would not be erased
When playing a stream, the input metadata is transferred to the queue_item.
However, that was not done if there was no input metadata, which meant that
old metadata was not getting erased.
2020-02-23 20:30:35 +01:00
ejurgensen
b43e174baf [logger] Show long log messages truncated 2020-02-23 20:30:35 +01:00
ejurgensen
a289135325 [artwork] Construct online src querys based on data_kind
For http streams we don't have an album name to search for. Plus we don't
want to cache those images.
2020-02-23 20:30:35 +01:00
ejurgensen
b73f33f8e9 [artwork] Use settings to enable online sources 2020-02-23 20:30:35 +01:00
ejurgensen
18cf2dbbbf [misc] Change json_drilldown to _select and fix error case 2020-02-23 20:30:35 +01:00
ejurgensen
70f0ff1f61 [artwork] Support for online artwork sources - WIP
* Discogs
* Spotify
* Cover Art Archive
2020-02-23 20:30:35 +01:00
ejurgensen
15b18e26b7 [http] Let the curl https client follow up to 5 redirects
Requests for artwork to Cover Art Archive require redirects. Perhaps there are
also some playlist requests that will benefit from this.
2020-02-23 20:30:35 +01:00
ejurgensen
937f4431f8 [misc] Add json_drilldown() function
Will descend into a json object along the path set by a list of keys
2020-02-23 20:30:35 +01:00
ejurgensen
d86ca1176d [misc] Add an in-place string replacement function 2020-02-23 20:30:35 +01:00
ejurgensen
00de0a3f76 [db] Fixup commit #1edfadc 2020-02-23 20:25:22 +01:00
whatdoineed2do/Ray
3a48864001 [smartpl] support date_realeased 2020-02-23 20:25:22 +01:00
whatdoineed2do/Ray
de665fc6c8 [daap] honor requests to sort by 'releasedate' 2020-02-23 20:25:22 +01:00
whatdoineed2do/Ray
78194807db [db] add S_RELEASEDATE and idx 2020-02-23 20:25:22 +01:00
Christian Meffert
80921a71a4
Merge pull request #901 from whatdoineed2do/json-spotify-token-leak
Json spotify token leak
2020-02-22 08:27:32 +01:00
ejurgensen
b40e691e6e [db] Fix memleak of mfi->url
Credit @whatdoineed2do
2020-02-16 21:16:33 +01:00
whatdoineed2do/Ray
3049b3e70e [jsonapi] spotify token leak 2020-02-14 21:10:15 +00:00
ejurgensen
646dd44dd9 Silence unused var/func warnings for autogenerated ANTLR files 2020-02-08 21:24:25 +01:00
ejurgensen
f4cb0fb79d [db] Error checking for alloc failure 2020-02-08 16:10:33 +01:00
ejurgensen
e9d1a2475e [db] Fix memleak on error from prev commit 2020-02-08 15:17:34 +01:00
ejurgensen
541a1a6701 [db] Orphan nested playlists if parent is deleted/cleared
Also align db_pl_delete_bypath with db_pl_delete by making it a wrapper.
2020-02-08 13:41:26 +01:00
ejurgensen
84aced0a3d [scan] Fix exit and error message if nested playlist is invalid 2020-02-08 13:38:24 +01:00
ejurgensen
6b007dcd26 [scan] Fixes for #d2f0d7b
* Don't treat m3u's with m3u URL's as nested playlists
* Dereference playlist paths in the m3u's
2020-02-08 12:11:14 +01:00
ejurgensen
5295d787ad [scan] Change library_playlist_save return + fix Spotify
* fix Spotify invalid mem access
* fix clearing of Spotify files
2020-02-08 10:55:15 +01:00
ejurgensen
da29fa5f93 [scan] Make sure new, nested playlists are scanned
During scanning we might find a new, nested playlist (so inside another m3u),
which we will then save. When the scanner then reaches the actual playlist file,
we must make sure to scan the contents of it. This means the timestamp when
saving the first time has to be set to a dummy value.
2020-02-08 10:55:15 +01:00
ejurgensen
4b60da5fb4 [scan] Minor changes to smart pl scanner 2020-02-08 10:55:15 +01:00
ejurgensen
4c86798182 [scan] Fix bug added to iTunes scanner
Incorrect title for meta playlist used in commit 9be7d8f
2020-02-08 10:55:15 +01:00
ejurgensen
77a8de3bea [scan] Fix db_pl_add() so it always returns correct id 2020-02-08 10:55:15 +01:00
ejurgensen
d94cf3f07f [scan] Add option to let m3u tags override ICY metadata (issue #891) 2020-02-08 10:55:15 +01:00
ejurgensen
cac4b14e6f [conf] Add missing stdint.h include 2020-02-08 10:55:15 +01:00
ejurgensen
189370df91 [scan] Update smartpl scanner to use filescanner util functions 2020-02-08 10:55:15 +01:00
ejurgensen
2a69869816 [scan] Update iTunes scanner to use new filescanner util functions 2020-02-08 10:55:15 +01:00
ejurgensen
46a9114948 [scan] Support for nested playlists
Also includes some refactoring of the playlist filescanner and some
rearrangement of filescanner.c functions.
2020-02-08 10:55:15 +01:00
ejurgensen
ba1c536ca3 [library] Let library_media_save() return errors 2020-02-08 10:55:15 +01:00
ejurgensen
c5988665b0 [db] Expose db_pl_fetch_byid() 2020-02-08 10:55:15 +01:00
ejurgensen
abdc0d6d27 [library] Some refactoring of the library module
Misc refactoring, e.g. alignment of how modules save tracks and playlists, incl
use of mfi and pli. Also try to avoid direct calls between library and player.
2020-02-08 10:55:15 +01:00
ejurgensen
08e89ffd4f [db] Use prepared statements for playlists (add/update) 2020-02-08 10:55:15 +01:00
ejurgensen
942628f914 [library] Check for all scanning methods in library_init() 2020-02-08 10:53:59 +01:00
whatdoineed2do/Ray
a1a49b9497 [library] validate mandatory methods for source or die 2020-02-06 19:37:16 +00:00
whatdoineed2do/Ray
6120551cf5 [spotify/library] add missing metarescan 2020-02-06 18:38:21 +00:00
ejurgensen
b565df1d87 [raop] Add ATV 4k mdns announcement 2020-01-19 13:50:16 -08:00
ejurgensen
16cfca1bfe [scan] Remove some id3 tags that ffmpeg parses better (issue #882)
ffmpeg parses TDA, TDAT, TYE, TYER and TDR these days, so there is no need
to do that in forked-daapd. Also the parsing of TDA/TDAT was incorrect,
since it is MMDD.
2020-01-14 20:33:39 +01:00
ejurgensen
dfd2a4ab14 [dacp] Increase current revision number even if there are no open requests
This change aligns with iTunes behavior. It also means that a client that is
not long polling can use the revision number (cmsr) value to check for changes.
2020-01-12 01:06:34 +01:00
ejurgensen
919906233c [logger] Adjust log repeat max 2020-01-12 01:06:34 +01:00
ejurgensen
92dee0386d [daap/dacp] Workaround so that libevent cleans up when a long poll is disconnected
See https://github.com/ejurgensen/forked-daapd/issues/870
2020-01-12 01:06:34 +01:00
ejurgensen
87cb3b8b58 [logger] Always limit repeated logging no matter the log level 2020-01-12 01:06:34 +01:00
ejurgensen
4fa7eb98a0 [daap/dacp] Fix for memleak when client hangs up 2020-01-12 01:05:59 +01:00
ejurgensen
8d21a66493 [logger] Suppress logging of many similar repeated messages 2020-01-12 01:05:59 +01:00
whatdoineed2do/Ray
609cba5f04 [alsa] multi alsa cfg section SEGV with no nickname - use 'card' when not specified 2020-01-06 15:38:32 +00:00
ejurgensen
cc78926721 [dacp] Support for volumeup, volumedown and mutetoggle (issue #873)
Mute toggle only supported via enable/disable
2020-01-03 23:40:16 +01:00
whatdoineed2do/Ray
7ea8eeae05 [alsa] cfg section typo using 'mixer_device_name' 2020-01-03 19:37:07 +00:00
ejurgensen
e61e98bcbb [player] Reverse args to player_speaker_get_byid() for consistency 2020-01-03 19:38:52 +01:00
ejurgensen
af1bc27dd5 [dacp] Support for dmcp.device-prevent-playback (issue #855) 2020-01-03 19:36:35 +01:00
ejurgensen
80b183c7ff [dacp] Fix for genres that have single quotes in their name (fixes #869) 2020-01-03 19:05:48 +01:00
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
ejurgensen
8248d2fe9f [scan] Fix access violation if pls line has no '=' 2019-12-27 23:58:57 +01:00
ejurgensen
251080344e [alsa] Fix missing unsubscription when closing session (ref. #866) 2019-12-27 11:29:36 +01:00
ejurgensen
0c08e83811 [outputs] Fix segv due to incorrect array size (fix for issue #866)
If the number of quality subscriptions reaches max then this bug will be
triggered, because we will incorrectly use the last element of the
output_buffer for a subscription, thus losing the zero terminator.
2019-12-27 00:10:32 +01:00
ejurgensen
33f97f55f3 [player] Fix for #860, going to next track when consume is enabled 2019-12-17 20:58:47 +01:00
ejurgensen
b83023356b [db] Fix for time_added incorrectly updated (issue #852) 2019-12-04 20:57:21 +01:00
Will Saxon
f3ebb574ba Recognize '@' as an operator identical to ':' (#841)
* Recognize '@' as an operator identical to ':'

* Add comments

* Add shortened example query
2019-11-16 12:27:43 +01:00
ejurgensen
f5e59c9b26
[pipe] Allow sample rate of 88200
Ref. issue #838
2019-11-05 00:13:33 +01:00
ejurgensen
6f3c315dfc [db] Add missing declarations of media_kind column in commit 40c7522 (fixes issue #836) 2019-11-03 00:16:20 +01:00
ejurgensen
a4f9bb576d [xcode] Increase read timeout 15s -> 30s (ref. issue #728) 2019-11-02 08:56:10 -07:00
Christian Meffert
cafdb96329
Merge pull request #833 from chme/cache_control
[httpd] Force browsers to always revalidate their cache
2019-11-02 07:57:55 +01:00
ejurgensen
40c7522baa [db] Make Apple Music on Catalina work - part 2 (fix for issue #834)
Extends the playlist table with media_kind to handle playlist queries like
this from Apple Music:

/databases/71/containers?session-id=12345678&revision-number=4&delta=0&query=('dmap.itemname:Library%20name','com.apple.itunes.extended-media-kind:1','com.apple.itunes.extended-media-kind:32','com.apple.itunes.extended-media-kind:128','com.apple.itunes.extended-media-kind:65537')&meta=dmap.itemid,dmap.itemname,dmap.persistentid,dmap.parentcontainerid,com.apple.itunes.is-podcast-playlist,com.apple.itunes.special-playlist,com.apple.itunes.smart-playlist,dmap.haschildcontainers,com.apple.itunes.saved-genius,dmap.objectextradata
2019-11-01 15:44:53 -07:00
ejurgensen
a69e79e5ec [daap] Make Apple Music on Catalina work - part 1 (fix for issue #834)
Like with iTunes, it has adverse effects to announce support for DAAP groups,
so with this change we also check if user-agent is "Music" before deciding what
to announce.
2019-11-01 15:43:56 -07: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
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
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
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
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
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
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
2846287169 [jsonapi] Add endpoint "/api/outputs/{id}/toggle" to toggle outputs 2019-09-26 08:00:03 +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