Commit Graph

146 Commits

Author SHA1 Message Date
ejurgensen
5e13bac867 [configure] Add option to use old ffmpeg API (issue #502)
Seems ffmpeg 3.4 has a bug in the new API that causes a crash when
avcodec_send_frame() is called. The bug is fixed in 3.4.2.

The new option --disable-modern-av-api allows for building with the
old API, i.e. no avcodec_send_frame(), even if ffmpeg support is
detected at configure time. The option may also become useful for
easier testing of legacy mode.
2018-03-04 21:55:37 +01:00
ejurgensen
0014b9001b Bump to version 26.0 2018-02-24 16:45:41 +01:00
ejurgensen
b1c9518a78 [-] Make json-c a required library
Already kind of was required, as it was required by Spotify, Chromecast and the web api
2018-02-22 21:49:11 +01:00
chme
e7f8b7010b [configure] Allow to build with db profiling log output
Add configure option to turn on debug logs profiling sql queries with:

./configure --enable-dbprofile
2018-01-13 10:51:41 +01:00
ejurgensen
45d193e56c [scan] Use open()/close() instead of euidaccess() to support ACL's
Fixes #474
2018-01-06 20:10:34 +01:00
ejurgensen
02e5f02e7f [configure] Fix misplaced av_* declaration checks 2017-09-17 00:34:20 +02:00
ejurgensen
eec98e3b7e [main/transcode] Fix some libav compability + log what ffmpeg/libav we are using 2017-09-16 23:01:42 +02:00
ejurgensen
f8c442ba38 [configure] Change so we enable/disable websockets based on libwebsockets >= 2.0.2 presence 2017-09-16 00:05:50 +02:00
chme
b678542ad6 [htdocs] Add admin web interface 2017-09-15 18:49:04 +02:00
chme
75eb5420fd [httpd/websocket/conf] Initial websocket implementation
If enabled (default) requires libwebsockets >= 2.0.2, can be disabled
with configure option --disable-websocket.
2017-09-15 07:14:08 +02:00
ejurgensen
1b8adc11ed [dmap] Use a wrapper for dmap_find_field()
Avoids the need to have definition of dmap_find_field in dmap_common.h that
must be kept in sync with the definition that gperf generates.

Also should fix compilation problems when gperf is not present, ref pr #390
2017-08-25 19:27:41 +02:00
ejurgensen
e489f1a6a9 [configure] Use avcodec_parameters_from_context as check for codecpar 2017-08-06 22:31:43 +02:00
Scott Shambarger
6b94a34501 [config] Added check for modern AV apis 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
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
03ec423f83 Bump to version 25.0 2017-07-22 00:25:35 +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
Gergan Penkov
08d25154e5 fix the compilation problem because of gperf changes in 3.1 2017-05-27 12:28:00 +02:00
sshambar
c54c909ae4 Added support for libav/ffmpeg dual installs (#346)
* [config] Added support for libav/ffmpeg dual installs

Reordered CPPFLAGS/LIBS so that library flags (includes etc) appear
ahead of prefix/global directives and the correct headers/libraries
are checked (if symbols are defined in alternative libraries).
Updated libav checks to use header declaration checks
rather than link checks (so differences between
libav/ffmpeg can be correctly found), and updated code references
to use new defines.  Added support the alternate pkg-config
package names for libav.  Updated ffmpeg vs libav check
to check MICRO version number (>=100 for ffmpeg).  Simplified
resulting configure script by using a function to merge
CPPFLAGS variables.

* [config] Use FORKED_OPTS prefix for libevent_pthreads option

* [config] Add --with-libav option to select libav even if ffmpeg present
2017-02-19 15:21:00 +01:00
Scott Shambarger
c7855e7c55 [config] Min automake 1.11, support silent rules on automake < 1.13 2017-02-16 10:44:00 -08:00
ejurgensen
bbb3322ddc [spotify] Flush audio buffer on playback stop - and since we are
flushing from another thread we use evbuffer_enable_locking() which
in turn adds a requirement for libevent_pthreads to be present
2017-01-30 22:50:02 +01:00
ejurgensen
b6f969d96e [pipe/mxml] Add compability with older versions of mxml 2017-01-28 22:20:35 +01:00
Scott Shambarger
bb68d59a6e [osx] Added missing timer/clock functions, support Bonjour mDNS on OSX
Added configure checks needed to detect missing functions on OSX
Added compat clock functions using clock_get_time on OSX
Added compat timer functions using clock_gettime and setitimer on OSX
Added byteswap functions on OSX
2017-01-14 00:56:43 -05:00
Scott Shambarger
ba5d5f0f4a [config] Add prefix search to library tests, re-test unistring with iconv
- Updated function tests to additionally check for libraries/headers under $prefix
- libunistring test now also tests with iconv library on failure (like original)
- Reworked macros to allow nested tests even on the same library
2017-01-10 10:10:09 -08:00
Scott Shambarger
20e19d9fe9 [config] Fix check for pthread_setname_np on linux 2017-01-06 13:58:02 -08:00
Scott Shambarger
c4195239d2 [config] Make macros more robust
- FORK_ macros now correctly ignore non-empty but blank default actions
- Removed test variable left in last commit
2017-01-06 12:49:57 -08:00
Scott Shambarger
ce4ef0aa23 [config] Many updates to configuration and feature checks
- Added custom checks for libraries and pkgconfig modules that test library
 presence with additional checks for use of headers and functions with
 given options.  Also support correct additional feature library checks
 using provided flags.
- Added custom enable/disable feature macros to simplify their use.
- Use custom CFLAGS and LIBS variables for Makefiles to simplify maintenance.
- Update many feature checks from platform to function.
- Streamline many function checks.
- Correctly check gnutls, gcrypt and gpg-error libraries.
- Fix chromecast and spotify config and compile on FreeBSD
- Added inotify, signalfd and kqueue, and byte swap checks.
- Many clarifications of error messages.
- Correct json-c checks to properly use supplied CFLAGS.
- Correct many quoting inconsistencies
- Use __DATE__ in place of BUILDDATE
- Use full path for gperf and antlr3
- Remove unnecessary CFLAGS
- Added tests for pthread_setname_np parameters
- Added tests for clock_gettime and timer_settime
- Added tests for time.h
- Test if pthread, dl and rt libs are required/available.
- Updated checks for libunistring
2017-01-06 00:44:18 -08:00
Scott Shambarger
8ead7ea3b8 [config] configure.ac checks required features, updated porting
Added a real config.rpath
Fixed build date calc for BSD
Require some needed headers at configure time
Correctly check libav functions using pkg-config flags
Made checks for some Linux features available on other ports
Fixed porting issue with antlr dep files
Added default HOST_NAME_MAX if not defined
Added missing libav header
2016-12-29 16:14:22 -08:00
Scott Shambarger
a1498fbe4f [config] Added rpm spec file
Build/dist rpm spec file, include -with/without options for all
supported features (defaults same as configure).
2016-12-27 15:57:41 -08:00
Scott Shambarger
17d3058147 [config] Build conf/service, added user/group name config
systemd service and config files populated with paths/users
Added user/group override options to configure
Added man ref in service file
2016-12-27 15:47:00 -08:00
Scott Shambarger
8b4b55b748 [config] Make gperf/antlr maintainer tools, support distcheck
Updated configure to allow gperf/antlr to be missing if products are
in distribution (allows option of building w/o those tools)
Removed circular dependency of antlr products on clean
Added missing ffmpeg-compat.h header (correct dist)
Include gperf/antlr products in dist
gperf/antlr products removed with maintainer-clean
Support vpath builds, distcheck passes
Added support for non-verbose builds
2016-12-27 15:32:08 -08:00
Scott Shambarger
b9e62ce75f [config] Update configure to support autodetect of features
Updated tests for alsa, pulseaudio, libcurl and json to autodetect
when no with/without options are given (given options still enforce)
Fixed check for libprotobuf-c < 1.0.0 to actually check for it.
Fixed various quoting issues in configure
2016-12-27 15:15:04 -08:00
Scott Shambarger
d7f8dea0ec [config] Modernize autotools
Updated AC_OUTPUT to use AC_CONFIG_FILES
Use PACKAGE in install path
Remove automake -Wno-portability, not needed with foreign option
Fixed typo in evrtsp.h path
Autotools commands moved to build-aux directory
Allow CFLAGS and package CFLAGS/LIBS to be updated at build time
2016-12-27 14:51:37 -08:00
ejurgensen
3921cf5732 Merge branch 'spwebapi2' 2016-11-27 22:54:06 +01:00
ejurgensen
1b6283752e Bump version to 24.2 2016-11-09 22:48:09 +01:00
ejurgensen
807951976c [configure/mdns] Register CNAME forked-daapd.local + generalize CURL detection in configure.ac 2016-11-05 13:33:30 +01:00
ejurgensen
3d6d4e8521 [config] Print build info in the log 2016-09-07 22:18:29 +02:00
ejurgensen
53e3a6a7b2 [config] Use defines in config.h instead of -D flags for the optional modules 2016-09-07 20:53:53 +02:00
ejurgensen
5722772817 [pulseaudio] Don't try to build by default - yet 2016-08-28 22:36:06 +02:00
ejurgensen
42d4e150d8 [pulseaudio] Make both ALSA and Pulseaudio default in configure.ac 2016-08-25 23:06:51 +02:00
ejurgensen
f8d3ccddb2 [pulseaudio] Let configure check if Pulseaudio supports setting its thread name 2016-08-25 22:32:07 +02:00
ejurgensen
5b67f84855 [pulseaudio] First draft 2016-07-21 22:13:32 +02:00
ejurgensen
524d060b7a Bump version to 24.1 2016-05-06 19:50:14 +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
618493c688 Bump version to 24.0 2016-05-01 23:08:12 +02:00
ejurgensen
084a86597b [laudio] Remove OSS4 support and move dummy output to outputs interface 2016-04-14 09:48:48 +02:00
ejurgensen
bf27a879df [filescanner] Use libinotify for FreeBSD (should fix issue #245)
Filescanner was broken in FreeBSD. Besides fixing this, using
libinotify instead of kqueue directly should make the code easier
to maintain, since it will be less divergent.

This commit includes these changes:
- Add libinotify to FreeBSD install scripts
- Fix reading multiple events from inotify fd (possible bug in Linux too)
- Deferred scanning since FreeBSD doesn't have IN_CLOSE_WRITE
- Configure search for inotify library
- Removal of kqueue stuff
2016-04-12 22:11:56 +02:00
ejurgensen
b454a2fd60 [general] Put back support for platforms without pipe2(), see issue #239 2016-03-17 22:20:16 +01:00
ejurgensen
598ae1bd71 [chromecast] json-c < 0.11 compability 2016-03-06 21:33:49 +01:00
ejurgensen
a2222c8a52 [chromecast] Try json if pkg-config doesn't find json-c 2016-03-06 19:49:24 +01:00
ejurgensen
23db4c3f4e [chromecast] Support protobuf v1 2016-02-11 20:04:30 +01:00
ejurgensen
153ed98dba [chromecast] Begin adding actual Chromecast support (basic playback) 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
ejurgensen
1b24a86169 [artwork] Tidy up artwork.c and handle remaining ffmpeg deprecated warning 2016-01-07 22:48:04 +01:00
ejurgensen
0d55e055c0 [ffmpeg] Update most deprecated functions 2016-01-05 23:22:01 +01:00
ejurgensen
90514de7c8 Bump to version 23.4 2016-01-01 12:18:13 +01:00
ejurgensen
1a8028600f [config] Enable MPD support by default 2015-12-28 21:41:48 +01:00
ejurgensen
fc8ab41f29 [config] Add libavutil to AC_CHECK_LIB, as it may otherwise not detect av_packet_rescale_ts 2015-12-18 21:54:20 +01:00
ejurgensen
058b2fb0d6 [transcode] Improve decoding to allow for decoder special cases, like decoders not processing
entire packets, rejecting packets and not returning frames. Should fix issue with network
streams not opening.
2015-10-21 23:53:21 +02:00
ejurgensen
55104015e0 Full removal of libevent 1 legacy code. Also drop pipe() in FreeBSD, since pipe2 is available now. 2015-10-19 21:15:29 +02: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
ejurgensen
6606bfafed Bump to version 23.3 2015-10-03 22:20:30 +02:00
ejurgensen
7e9cf80ec0 Reorganize configure.ac according to subject (and my taste) 2015-07-21 23:00:55 +02:00
ejurgensen
bf72547b9b Drop legacy FLAC, Musepack and WMA file scanners (ffmpeg/libav can do this now) 2015-07-21 22:16:50 +02:00
Erik Mackdanz
349a30cbab
Fix --disable-* 2015-07-20 18:06:03 -05:00
ejurgensen
227017ef5b Bump version to 23.2 2015-06-18 23:19:06 +02:00
ejurgensen
75ded12d7f Bump version to 23.1 2015-05-21 22:26:33 +02:00
ejurgensen
33a64a4a95 Bump version to 23.0 2015-05-02 23:36:03 +02:00
ejurgensen
fa4496c729 Begin removing support for libevent 1 2015-04-24 22:11:08 +02:00
ejurgensen
76a638a277 Merge pull request #130 from chme/laudio
[laudio] Make output type for local audio configurable
2015-04-16 17:56:01 +02:00
ejurgensen
2d8a6a7102 Drop support for libavformat versions < 53 (issue #128) 2015-04-12 20:05:14 +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
c8158805e3 Merge pull request #64 from chme/mpdprotocol
Add support for the mpd protocol
2015-02-20 22:39:03 +01:00
ejurgensen
81b0d33069 Bump version to 22.3 2015-02-19 19:30:03 +01:00
ejurgensen
df9bcade5a Embed libavl (v0.3.5), it is no longer available upstream and the dependency is a hassle 2015-02-14 20:58:01 +01:00
chme
830054bd71 Initial support for mpd protocol 2015-02-14 08:50:18 +01:00
ejurgensen
3cd7b27bac Remove FreeBSD/OSS4 hacks and add FreeBSD 10.1 install and startup helper scripts (issue #94) 2015-02-11 22:59:57 +01:00
ejurgensen
5d58b6b559 Remove check for old versions of ffmpeg
(was becoming obsolete and produces errors in FreeBSD)
2015-01-27 21:49:04 +01:00
ejurgensen
77f206c118 Bump version to 22.2 2015-01-21 21:10:31 +01:00
ejurgensen
4df4c50c35 Add option to exclude paths from scanning based on regex 2015-01-14 21:50:25 +01:00
ejurgensen
2879458e98 Fix for issue #62 (slow internet streams), credit @chme 2015-01-02 23:24:44 +01:00
chme
0ef1819f02 Pass the foreign option to automake thus omitting README is not an error 2014-12-31 10:12:28 +01:00
Stuart C. Naifeh
ee902a1a68 Fix for bug introduced by commit 67c092828d 2014-12-23 11:34:11 -05:00
ejurgensen
6489d717b6 Bump version to 22.1 2014-11-22 23:04:22 +01:00
ejurgensen
61a4da215c Revert special ffmpeg linker handling - not required any more
- ref https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758337#11
2014-10-16 22:16:25 +02:00
ejurgensen
f0e1d919c4 Bump version to 22.0 2014-10-14 21:24:39 +02:00
ejurgensen
d61dc295e8 Fix for previous commit which would not work when PKG_CONFIG also returned -L flags 2014-10-02 23:31:30 +02:00
ejurgensen
d0685aed6f Use pkg-config to determine FFmpeg linker flags (for Debian, see #758337) 2014-10-02 23:08:38 +02:00
ejurgensen
88fcfa061d Add compability with ffmpeg's libswresample 2014-10-02 22:48:50 +02:00
ejurgensen
6d8e4c67aa Support for LastFM scrobbling (issue #19) 2014-08-15 23:36:54 +02:00
ejurgensen
2247fadbfa Some preprocessor conditions for compability on OpenWrt 2014-06-16 23:31:44 +02:00
ejurgensen
24da24e275 Bump version to 21.0 2014-06-14 23:22:07 +02:00
ejurgensen
c740e6e3b0 Make compatible with libevent 2.0 by crippling streaming and ICY metadata (see issue #30) 2014-05-30 23:39:03 +02:00
ejurgensen
ce209bae7a Modify configure script:
- make check for libavresample dependent on libavcodec (since the resample functions were removed from libavcodec)
- check for libevent 1 or >=2.1.4 but don't bail if other libevent is also present
2014-05-22 22:17:20 +02:00
ejurgensen
7640349cf6 Keep automake happy and warning free with subdir-objects 2014-04-21 22:26:41 +02:00
ejurgensen
2dfa64abcf Update autoconf script 2014-04-14 22:44:05 +02:00