Commit Graph

3150 Commits

Author SHA1 Message Date
ejurgensen
43abb18e4e [transcode] Fix illegal write when *icy_timer is null (fixes issue #412) 2017-08-20 23:08:36 +02:00
ejurgensen
2d3d641f41 Merge pull request #413 from chme/realpath
[misc] Replace m_realpath with realpath from stdlib.h
2017-08-12 21:52:30 +02:00
chme
14877a49e0 [misc] Replace m_realpath with realpath from stdlib.h 2017-08-12 13:35:22 +02:00
chme
d477294809 [filescanner] Guard against modifying files outside the library and
guard against creating m3u playlists with the same virtual path like pls
playlists
2017-08-12 10:22: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
chme
d10c3672c6 [filescanner] Add support to save/add/delete local stored playlists
Allows creating/modifying of playlists in one of the configured library
directories.
2017-08-09 21:41:32 +02:00
chme
f84e87913c [library] Allow save/add/delete of playlists if source supports it 2017-08-09 21:30:23 +02:00
chme
ff4b388d26 [db] Use db_get_one_int in db_pl_id_bypath 2017-08-07 20:13:46 +02:00
ejurgensen
a975dabded [artwork] Re-apply commit ef13abe to artwork_legacy.c 2017-08-07 00:09:27 +02:00
ejurgensen
e489f1a6a9 [configure] Use avcodec_parameters_from_context as check for codecpar 2017-08-06 22:31:43 +02:00
ejurgensen
394dee2a86 [raop] Log src and dst ip addresses (checking for ipv6, not sure it is allowed) 2017-08-06 22:31:43 +02:00
ejurgensen
548d9ada2e [transcode] Fixup dead assignment 2017-08-06 22:31:43 +02:00
ejurgensen
c13ed8761a [trancode/artwork] Put back compability with older versions of ffmpeg/libav 2017-08-06 22:31:43 +02:00
ejurgensen
f9375ef915 [transcode] More adjustments for libav 12 2017-08-06 22:31:43 +02:00
ejurgensen
6951639d24 [transcode] Adjustments for libav 12 2017-08-06 22:31:43 +02:00
ejurgensen
441ad006a6 [artwork/transcode] Also let transcode.c handle rescaling of non-file Spotify artwork 2017-08-06 22:31:43 +02:00
ejurgensen
e7f888645f [artwork/transcode] Adjust transcode.c so it can take care of artwork
rescaling, meaning we can do without parallel ffmpeg interfaces.
This also moves artwork rescaling from libswscale to libavfilter, which
seems to fix a problem with PNG rescaling.
2017-08-06 22:31:43 +02:00
ejurgensen
d933e171d4 [filescanner_ffmpeg] Update to use ffmpeg's new stream->codecpar
- keep some compability with older ffmpeg/libav, but also remove some
2017-08-06 22:20:44 +02:00
ejurgensen
1e180b5ce8 [transcode] Call av_write_trailer before cleanup so that any flushed data
will be written to encode_ctx->obuf, where it can be passed to the caller
2017-08-06 22:20:44 +02:00
ejurgensen
e96b9500db [transcode] Implement new ffmpeg decoding methods: avcodec_send_packet/avcodec_receive_frame 2017-08-06 22:20:44 +02:00
ejurgensen
5afed60a42 [transcode] Implement new ffmpeg encoding methods: avcodec_send_frame/avcodec_receive_packet 2017-08-06 22:20:44 +02:00
ejurgensen
7c8eba74bb [transcode] Remove unused param to open_filter() 2017-08-06 22:20:44 +02:00
ejurgensen
25c1795af2 [transcode] Update to new ffmpeg api - part 1
- no more use of AVStream.codec
- ditch some backwards compability
- move closer to being able do video, at least for artwork
2017-08-06 22:20:44 +02:00
ejurgensen
b71b32438b [player] Don't log single tick overruns 2017-07-23 16:58:18 +02:00
ejurgensen
b19553811c [main] Respect the configure check for libevent_pthreads 2017-07-22 00:04:35 +02:00
ejurgensen
3f2ad41094 [alsa] Fix missing cleanup of failed ALSA sessions 2017-07-14 23:20:53 +02:00
ejurgensen
b803c30dcd [player] Check volume range when called for volume change + some adjustments in pipe input 2017-07-14 20:04:35 +02:00
ejurgensen
4085161e9a Merge pull request #403 from jkellerer/pipe_metadata_volume
Add support for instant volume changes when using metadata pipe (pvol)
2017-07-14 19:43:40 +02:00
chme
b6807a24aa [filescanner] Add missing break statement in process_file 2017-07-14 17:21:08 +02:00
juergen kellerer
93e4886993 [pipe] Added instant volume support (pvol) to named metadata pipe. 2017-07-13 21:53:35 +02:00
ejurgensen
072c940426 Merge branch 'playback_resilience' 2017-07-09 22:06:01 +02:00
chme
e136c726c1 [raop] Add device name to log message for retransmit requests 2017-07-09 11:44:05 +02:00
chme
ecb41eccca [player] Use false/true for boolean field 2017-07-09 11:43:10 +02:00
chme
3048817c0b [player] Add warning log message if overrun is detected but player is
still able to catch up
2017-07-09 11:43:05 +02:00
ejurgensen
074b4e773d [input] Increase input buffer size to two seconds 2017-07-08 23:37:12 +02:00
ejurgensen
1549d0d4b5 [pipe] Fix crash if pipe is deleted after being written to (caused by double free) 2017-07-08 01:41:12 +02:00
ejurgensen
6295f2d79a [player] Make the player resilient in cases where an output blocks
(due to e.g. network problems) and also make sure that all devices
have called back before restarting after a suspend. Also a whole
lot of tidying up while I am at it.
2017-07-06 22:13:04 +02:00
ejurgensen
a23bb0b7e2 [raop] Clear auth_key for device verification if verify request to device is denied
- should make it easier for user to setup a new pin
2017-07-01 08:33:11 +02:00
ejurgensen
2068794b7f [pairing] Make log message more helpful 2017-06-30 19:35:33 +02:00
ejurgensen
467b652da0 [rtsp] Silence event_del warnings 2017-06-27 22:15:53 +02:00
ejurgensen
81a93bbec1 [player] Add config option high_resolution_clock 2017-06-26 23:32:24 +02:00
ejurgensen
c2b1706855 [raop] Send correct volume as keep-alive for ATV's (fix for #368) 2017-06-26 20:11:31 +02:00
ejurgensen
f4e171db75 [raop] Save verification key to db immediately after verification 2017-06-24 23:59:02 +02:00
ejurgensen
01308f7f83 Misc fixup to keep scan-build happy 2017-06-20 22:07:49 +02:00
ejurgensen
20128e2235 [raop] Raise log level of verification setup complete message 2017-06-20 21:36:21 +02:00
ejurgensen
9369e97753 [raop] Lower log level of verification success slightly 2017-06-20 21:17:17 +02:00
ejurgensen
299a8f9e4b [mpd] Add support for "mpc sendmessage verification [pincode]" 2017-06-20 21:01:55 +02:00
ejurgensen
5e48a68525 [player] device_restart_cb() should also handle failures due to device verification 2017-06-20 20:58:46 +02:00
ejurgensen
7626b6c535 [raop] Fix bad enum 2017-06-20 20:00:05 +02:00
ejurgensen
f63d103753 [raop] Add support for Apple TV device verification, required by tvOS 10.2 (fix for issue #377)
- also change how speakers are saved/retrieved from the db
- add generic authorization methods in outputs.c and player.c
- let filescanner read *.verification files (containing PIN)
- configure options to enable and disable, since libsodium is required
2017-06-19 21:52:01 +02:00
ejurgensen
736979a9a2 [evrtsp] Add POST rtsp method - used for device verification 2017-06-18 01:31:23 +02:00
ejurgensen
0e9bca9e3d [db] Add column for auth key to speakers table (incl methods for saving/retrieving) 2017-06-18 01:29:40 +02:00
ejurgensen
0642171de0 [mpd] Adjust so "sendmessage pairing" now gives an arglist to remote_pairing_kickoff() 2017-06-15 00:00:05 +02:00
ejurgensen
283df8aa72 [misc] Consolidate control file reader (e.g. for pairing credentials) into misc.c
- also remove requirement to enter device name in .remote file
2017-06-14 23:49:18 +02:00
Gergan Penkov
08d25154e5 fix the compilation problem because of gperf changes in 3.1 2017-05-27 12:28:00 +02:00
ejurgensen
3fe3c71ea7 [lastfm] Remove obsolete include of curl.h 2017-05-18 22:55:04 +02:00
ejurgensen
1aa8072e68 [misc] Change name of string_printf to safe_asprintf 2017-05-05 20:00:51 +02:00
ejurgensen
dcf75f59eb Merge branch 'string_printf' of git://github.com/chme/forked-daapd into chme-string_printf 2017-05-05 19:43:17 +02:00
ejurgensen
497ffc2f43 [misc] Add __attribute__((__noreturn__)) to our abort functions so
scan-build doesn't complain about logic errors after abort
2017-05-05 19:41:17 +02:00
ejurgensen
f465f6a77d [raop] Fix possible incorrect address family in SDP 2017-05-04 19:31:26 +02:00
ejurgensen
544791ef59 [player] Prevent crash if output is failed and triggers a playback_abort
when a pause or seek is requested
2017-05-04 18:06:18 +02:00
ejurgensen
b9e069939e [mdns] Also handle devices being switched on/off without Avahi service removal notices 2017-05-02 23:13:53 +02:00
ejurgensen
e2f65debc8 [mdns] Keep Avahi resolvers alive so we get IP changes from e.g. Airplay devices (fix for issue #378) 2017-05-02 19:27:35 +02:00
chme
2f1124d4dc [mpd] Use string_printf instead of asprintf 2017-05-01 10:28:41 +02:00
chme
6887ff9d7b [spotify] Use string_printf instead of asprintf 2017-05-01 10:21:58 +02:00
chme
4e6b78ca29 [misc] Add string_printf function 2017-05-01 10:21:57 +02:00
chme
6b9878490e [mpd] Add missing free in channel_outputvolume 2017-04-30 19:27:44 +02:00
chme
989b44c8dc [mpd] Implement 'channels' command (returns the special forked-daapd
channes like 'pairing')
2017-04-30 19:27:44 +02:00
chme
eeef65f951 [mpd] Add support to change output volume through sendmessage command
Output volume can be set by sending a message to the channel
'outputvolume' by passing a message with the output id and the volume
separated by a colon.
2017-04-30 19:27:44 +02:00
chme
d8b5951e40 [mpd] Move function mpd_command_outputvolume and split into two
functions
2017-04-30 19:27:44 +02:00
chme
9d72dc9176 [pairing] Only require the pin for kicking off the remote pairing 2017-04-29 23:36:11 +02:00
chme
170e4aaf75 [pairing] Only keep last remote pairing request from mdsn 2017-04-29 23:36:11 +02:00
chme
6f60006edb [mpd] Support pairing remotes over mpd 'sendmessage' command
Adds a basic structure for supporting sendmessage and implements the
first message handler for the channel 'pairing'.

Pairing can be achieved by passing a message to channel 'pairing' in the
format "devicename:pin". With mpc this looks like 'mpc pairing
"devicename:1234"
2017-04-29 23:36:11 +02:00
chme
fd2c77cb9f [pairing] Add public function to pair by devicename and pin 2017-04-29 23:36:11 +02:00
chme
8ed1c9c0ec [pairing] Rename 'remote_pairing_read_pin' to
'remote_pairing_kickoff_byfile'
2017-04-29 23:36:11 +02:00
chme
3f10dac2f7 [dacp] Start playback from selected song in shuffle mode (#379) 2017-04-17 10:46:24 +02:00
ejurgensen
3a35a51cb9 [db] Align naming of struct query_params pointers et al 2017-04-16 23:54:07 +02:00
chme
626c77046c [spotify] Fix empty spotify playlists 2017-04-10 09:33:22 +02:00
chme
cc29c617b0 [filescanner] Switch argument order (input first) 2017-03-19 18:30:46 +01:00
chme
888710612c [library] Add missing attribute mapping from mfi to queue item 2017-03-19 18:30:46 +01:00
chme
e31fea6c44 [filescanner] Remove unused include and make privat function static 2017-03-19 18:30:46 +01:00
chme
59ade61d7b [library] Rename constants 2017-03-19 18:30:46 +01:00
chme
f4aade7f3a [filescanner] Fix and refactor scanning of playlists 2017-03-19 18:30:46 +01:00
chme
f5c65d1eef [db] Do not notify clients in 'db_queue_add_by_query' if no items were
added
2017-03-19 18:30:46 +01:00
chme
a65737b4e7 [filescanner] Add scan-metadata function for non library items
For now only support scanning metadata for internet radio streams
2017-03-19 18:30:46 +01:00
chme
8381b7489e [mpd] Try to read metadata and add to queue if path is not in the
library
2017-03-19 18:30:46 +01:00
chme
e6f49b721f [library] New functions to support scan metadata for arbitrary path and
adding a mfi as a queue item
2017-03-19 18:30:46 +01:00
chme
cc899651c7 [db] New function to add a media file info as a new queue item 2017-03-19 18:30:46 +01:00
chme
bdd08f516f [library] Rename 'library_process_media' to 'library_add_media' 2017-03-19 18:30:46 +01:00
chme
dadba23efc Refactor library scan of media files
Remove the data_kind specific parts out of the general library functions
and into their (library) source specific functions.
2017-03-19 18:30:46 +01:00
ejurgensen
fce68ebd1a [raop] Add option to exclude particular devices from speaker list 2017-03-15 23:24:24 +01:00
ejurgensen
ef13abe2cf [artwork] Fix for issue #345 and #367: Broken PNG rescaling 2017-03-15 22:12:37 +01:00
ejurgensen
efd6805f9e Merge pull request #365 from chme/spotifybaseplaylist
Avoid adding spotify playlist folder
2017-03-11 19:30:31 +01:00
ejurgensen
5d74c98431 [input] Pass read errors to the player through the input buffer 2017-03-11 19:23:49 +01:00
chme
6c97448e2f [spotify] Remove log messages after token request
The whole response is already written to the log in debug mode
2017-03-11 09:55:32 +01:00
chme
247abec88f [spotify] Only create spotify playlist folder after successful login
Before creating the folder there should be either a valid api token or a
valid libspotify session.
2017-03-11 09:44:54 +01:00
ejurgensen
6c94cdd635 [httpd_daap] Honour sort param "artist" for album groups (fixes issue #358) 2017-03-05 09:45:34 +01:00
ejurgensen
9f2f5566d2 [commands] Protect against race condition by moving event_add() inside lock
- otherwise commands_base_destroy() could free cmdbase before event_add()
2017-03-04 17:26:45 +01:00
chme
00e5e098d4 [spotify] Purge spotify songs from db before scanning after oauth (#361) 2017-03-04 17:24:42 +01:00