diff --git a/Makefile.am b/Makefile.am
index d5f9aa780..9339e9029 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1376,6 +1376,18 @@ libinput_a_SOURCES += \
INPUT_LIBS += $(YAJL_LIBS)
endif
+if ENABLE_QOBUZ
+libinput_a_SOURCES += \
+ $(YAJL_SOURCES) \
+ src/lib/gcrypt/MD5.cxx src/lib/gcrypt/MD5.hxx \
+ src/input/plugins/QobuzSession.hxx \
+ src/input/plugins/QobuzClient.cxx src/input/plugins/QobuzClient.hxx \
+ src/input/plugins/QobuzLoginRequest.cxx src/input/plugins/QobuzLoginRequest.hxx \
+ src/input/plugins/QobuzTrackRequest.cxx src/input/plugins/QobuzTrackRequest.hxx \
+ src/input/plugins/QobuzInputPlugin.cxx src/input/plugins/QobuzInputPlugin.hxx
+INPUT_LIBS += $(YAJL_LIBS) $(LIBGCRYPT_LIBS)
+endif
+
if ENABLE_SMBCLIENT
libinput_a_SOURCES += \
$(SMBCLIENT_SOURCES) \
diff --git a/NEWS b/NEWS
index c89f8ef92..d27149c30 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ ver 0.21 (not yet released)
- "outputset" sets runtime attributes
- close connection when client sends HTTP request
* input
+ - qobuz: new plugin to play Qobuz streams
- tidal: new plugin to play Tidal streams
* tags
- new tags "OriginalDate", "MUSICBRAINZ_WORKID"
diff --git a/configure.ac b/configure.ac
index 6216a4f90..325eaa77e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -362,6 +362,11 @@ AC_ARG_ENABLE(ipv6,
AC_SYS_LARGEFILE
+AC_ARG_ENABLE(qobuz,
+ AS_HELP_STRING([--enable-qobuz],
+ [enable support for Qobuz streaming]),,
+ [enable_qobuz=auto])
+
AC_ARG_ENABLE(soundcloud,
AS_HELP_STRING([--enable-soundcloud],
[enable support for soundcloud.com]),,
@@ -565,9 +570,15 @@ dnl -------------------------------- expat --------------------------------
MPD_ENABLE_AUTO_PKG(expat, EXPAT, [expat],
[expat XML parser], [expat not found])
+dnl -------------------------------- libgcrypt --------------------------------
+
+if test x$enable_qobuz != xno; then
+ AM_PATH_LIBGCRYPT([1], [found_gcrypt=yes], [found_gcrypt=no])
+fi
+
dnl -------------------------------- yajl -------------------------------------
-if test x$enable_soundcloud != xno || test x$enable_tidal != xno; then
+if test x$enable_qobuz != xno || x$enable_soundcloud != xno || test x$enable_tidal != xno; then
PKG_CHECK_MODULES([YAJL], [yajl >= 2.0],
[found_yajl=yes],
[found_yajl=no])
@@ -718,6 +729,13 @@ dnl ----------------------------------- NFS -----------------------------
MPD_ENABLE_AUTO_PKG(nfs, NFS, [libnfs],
[NFS input plugin], [libnfs not found])
+dnl --------------------------------- Qobuz -----------------------------------
+MPD_DEPENDS([enable_qobuz], [found_yajl], [Qobuz streaming], [libyajl not found])
+MPD_DEPENDS([enable_qobuz], [found_gcrypt], [Qobuz streaming], [libgcrypt not found])
+MPD_DEPENDS([enable_qobuz], [enable_curl], [Qobuz streaming], [libcurl not found])
+MPD_AUTO(qobuz, [Qobuz streaming], [Qobuz not available], [found_qobuz=yes])
+MPD_DEFINE_CONDITIONAL(enable_qobuz, ENABLE_QOBUZ, [Qobuz streaming])
+
dnl --------------------------------- Soundcloud ------------------------------
MPD_DEPENDS([enable_soundcloud], [found_yajl],
[soundcloud.com support], [libyajl not found])
@@ -1525,6 +1543,7 @@ fi
printf '\nStreaming support:\n\t'
results(cdio_paranoia, [CDIO_PARANOIA])
results(curl,[CURL])
+results(qobuz,[Qobuz])
results(smbclient,[SMBCLIENT])
results(soundcloud,[Soundcloud])
results(tidal,[Tidal])
diff --git a/doc/user.xml b/doc/user.xml
index 86fa0b49e..70466984f 100644
--- a/doc/user.xml
+++ b/doc/user.xml
@@ -2370,6 +2370,70 @@ run
+
+