aboutsummaryrefslogtreecommitdiff
path: root/sound/squeezelite/patches
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2020-02-04 00:49:34 -0800
committerRosen Penev <rosenp@gmail.com>2020-02-19 17:54:37 -0800
commitb7bb3bbd49c7c07e2fc03f79044e9352dd59ded5 (patch)
treee73a29596ba7a2cb480652afecee82c455c249c8 /sound/squeezelite/patches
parentef8ee4f94f2634ced57c736654b3fce53a3ae8e6 (diff)
squeezelite: update to 1.9.6-1210
Rebased patches. Ran init script through shellcheck. Several Makefile cleanups. Signed-off-by: Rosen Penev <rosenp@gmail.com>
Diffstat (limited to 'sound/squeezelite/patches')
-rw-r--r--sound/squeezelite/patches/010-select_broadcast_interface.patch150
-rw-r--r--sound/squeezelite/patches/020-no_libmad.patch62
2 files changed, 98 insertions, 114 deletions
diff --git a/sound/squeezelite/patches/010-select_broadcast_interface.patch b/sound/squeezelite/patches/010-select_broadcast_interface.patch
index e016d2bfc..145287379 100644
--- a/sound/squeezelite/patches/010-select_broadcast_interface.patch
+++ b/sound/squeezelite/patches/010-select_broadcast_interface.patch
@@ -1,8 +1,6 @@
-Index: squeezelite-1.9.1-1130/main.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/main.c
-+++ squeezelite-1.9.1-1130/main.c
-@@ -84,6 +84,7 @@ static void usage(const char *argv0) {
+--- a/main.c
++++ b/main.c
+@@ -93,6 +93,7 @@ static void usage(const char *argv0) {
#if IR
" -i [<filename>]\tEnable lirc remote control support (lirc config file ~/.lircrc used if filename not specified)\n"
#endif
@@ -10,7 +8,7 @@ Index: squeezelite-1.9.1-1130/main.c
" -m <mac addr>\t\tSet mac address, format: ab:cd:ef:12:34:56\n"
" -M <modelname>\tSet the squeezelite player model name sent to the server (default: " MODEL_NAME_STRING ")\n"
" -n <name>\t\tSet the player name\n"
-@@ -267,6 +268,8 @@ int main(int argc, char **argv) {
+@@ -285,6 +286,8 @@ int main(int argc, char **argv) {
extern bool user_rates;
char *logfile = NULL;
u8_t mac[6];
@@ -19,7 +17,7 @@ Index: squeezelite-1.9.1-1130/main.c
unsigned stream_buf_size = STREAMBUF_SIZE;
unsigned output_buf_size = 0; // set later
unsigned rates[MAX_SUPPORTED_SAMPLERATES] = { 0 };
-@@ -307,6 +310,7 @@ int main(int argc, char **argv) {
+@@ -325,6 +328,7 @@ int main(int argc, char **argv) {
int maxSampleRate = 0;
@@ -27,7 +25,7 @@ Index: squeezelite-1.9.1-1130/main.c
char *optarg = NULL;
int optind = 1;
int i;
-@@ -314,8 +318,6 @@ int main(int argc, char **argv) {
+@@ -332,8 +336,6 @@ int main(int argc, char **argv) {
#define MAXCMDLINE 512
char cmdline[MAXCMDLINE] = "";
@@ -36,7 +34,7 @@ Index: squeezelite-1.9.1-1130/main.c
for (i = 0; i < argc && (strlen(argv[i]) + strlen(cmdline) + 2 < MAXCMDLINE); i++) {
strcat(cmdline, argv[i]);
strcat(cmdline, " ");
-@@ -323,7 +325,7 @@ int main(int argc, char **argv) {
+@@ -341,7 +343,7 @@ int main(int argc, char **argv) {
while (optind < argc && strlen(argv[optind]) >= 2 && argv[optind][0] == '-') {
char *opt = argv[optind] + 1;
@@ -45,7 +43,7 @@ Index: squeezelite-1.9.1-1130/main.c
#if ALSA
"UVO"
#endif
-@@ -424,6 +426,9 @@ int main(int argc, char **argv) {
+@@ -442,6 +444,9 @@ int main(int argc, char **argv) {
case 'f':
logfile = optarg;
break;
@@ -55,7 +53,7 @@ Index: squeezelite-1.9.1-1130/main.c
case 'm':
{
int byte = 0;
-@@ -733,6 +738,11 @@ int main(int argc, char **argv) {
+@@ -755,6 +760,11 @@ int main(int argc, char **argv) {
winsock_init();
#endif
@@ -67,7 +65,7 @@ Index: squeezelite-1.9.1-1130/main.c
stream_init(log_stream, stream_buf_size);
if (!strcmp(output_device, "-")) {
-@@ -776,7 +786,7 @@ int main(int argc, char **argv) {
+@@ -798,7 +808,7 @@ int main(int argc, char **argv) {
exit(1);
}
@@ -76,42 +74,18 @@ Index: squeezelite-1.9.1-1130/main.c
decode_close();
stream_close();
-Index: squeezelite-1.9.1-1130/squeezelite.h
-===================================================================
---- squeezelite-1.9.1-1130.orig/squeezelite.h
-+++ squeezelite-1.9.1-1130/squeezelite.h
-@@ -414,7 +414,7 @@ typedef enum { EVENT_TIMEOUT = 0, EVENT_
-
- char *next_param(char *src, char c);
- u32_t gettime_ms(void);
--void get_mac(u8_t *mac);
-+in_addr_t get_iface_info(log_level level, char *iface, u8_t *mac);
- void set_nonblock(sockfd s);
- int connect_timeout(sockfd sock, const struct sockaddr *addr, socklen_t addrlen, int timeout);
- void server_addr(char *server, in_addr_t *ip_ptr, unsigned *port_ptr);
-@@ -470,7 +470,7 @@ void buf_init(struct buffer *buf, size_t
- void buf_destroy(struct buffer *buf);
-
- // slimproto.c
--void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
-+void slimproto(log_level level, char *server, in_addr_t bcast_addr, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
- void slimproto_stop(void);
- void wake_controller(void);
-
-Index: squeezelite-1.9.1-1130/slimproto.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/slimproto.c
-+++ squeezelite-1.9.1-1130/slimproto.c
-@@ -113,7 +113,7 @@ void send_packet(u8_t *packet, size_t le
+--- a/slimproto.c
++++ b/slimproto.c
+@@ -113,7 +113,7 @@ void send_packet(u8_t *packet, size_t len) {
}
}
-static void sendHELO(bool reconnect, const char *fixed_cap, const char *var_cap, u8_t mac[6]) {
+static void sendHELO(bool reconnect, const char *fixed_cap, const char *var_cap, u8_t *mac) {
- const char *base_cap = "Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=" VERSION;
- struct HELO_packet pkt;
-
-@@ -757,7 +757,7 @@ void wake_controller(void) {
+ #define BASE_CAP "Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=" VERSION
+ #define SSL_CAP "CanHTTPS=1"
+ const char *base_cap;
+@@ -761,7 +761,7 @@ void wake_controller(void) {
wake_signal(wake_e);
}
@@ -120,7 +94,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
struct sockaddr_in d;
struct sockaddr_in s;
char *buf;
-@@ -774,7 +774,7 @@ in_addr_t discover_server(char *default_
+@@ -778,7 +778,7 @@ in_addr_t discover_server(char *default_server) {
memset(&d, 0, sizeof(d));
d.sin_family = AF_INET;
d.sin_port = htons(PORT);
@@ -129,7 +103,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
pollinfo.fd = disc_sock;
pollinfo.events = POLLIN;
-@@ -809,7 +809,7 @@ in_addr_t discover_server(char *default_
+@@ -813,7 +813,7 @@ in_addr_t discover_server(char *default_server) {
#define FIXED_CAP_LEN 256
#define VAR_CAP_LEN 128
@@ -138,7 +112,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
struct sockaddr_in serv_addr;
static char fixed_cap[FIXED_CAP_LEN], var_cap[VAR_CAP_LEN] = "";
bool reconnect = false;
-@@ -830,7 +830,7 @@ void slimproto(log_level level, char *se
+@@ -834,7 +834,7 @@ void slimproto(log_level level, char *server, u8_t mac[6], const char *name, con
}
if (!slimproto_ip) {
@@ -147,7 +121,7 @@ Index: squeezelite-1.9.1-1130/slimproto.c
}
if (!slimproto_port) {
-@@ -911,7 +911,7 @@ void slimproto(log_level level, char *se
+@@ -915,7 +915,7 @@ void slimproto(log_level level, char *server, u8_t mac[6], const char *name, con
// rediscover server if it was not set at startup
if (!server && ++failed_connect > 5) {
@@ -156,10 +130,28 @@ Index: squeezelite-1.9.1-1130/slimproto.c
}
} else {
-Index: squeezelite-1.9.1-1130/utils.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/utils.c
-+++ squeezelite-1.9.1-1130/utils.c
+--- a/squeezelite.h
++++ b/squeezelite.h
+@@ -455,7 +455,7 @@ char* strcasestr(const char *haystack, const char *needle);
+
+ char *next_param(char *src, char c);
+ u32_t gettime_ms(void);
+-void get_mac(u8_t *mac);
++in_addr_t get_iface_info(log_level level, char *iface, u8_t *mac);
+ void set_nonblock(sockfd s);
+ int connect_timeout(sockfd sock, const struct sockaddr *addr, socklen_t addrlen, int timeout);
+ void server_addr(char *server, in_addr_t *ip_ptr, unsigned *port_ptr);
+@@ -511,7 +511,7 @@ void buf_init(struct buffer *buf, size_t size);
+ void buf_destroy(struct buffer *buf);
+
+ // slimproto.c
+-void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
++void slimproto(log_level level, char *server, in_addr_t bcast_addr, u8_t mac[6], const char *name, const char *namefile, const char *modelname, int maxSampleRate);
+ void slimproto_stop(void);
+ void wake_controller(void);
+
+--- a/utils.c
++++ b/utils.c
@@ -22,11 +22,11 @@
#include "squeezelite.h"
@@ -175,9 +167,9 @@ Index: squeezelite-1.9.1-1130/utils.c
#include <net/if_dl.h>
#include <net/if_types.h>
#endif
-@@ -44,15 +44,11 @@
- #if WIN
- #include <iphlpapi.h>
+@@ -49,15 +49,11 @@
+ #include <ctype.h>
+ #endif
#endif
-#if OSX
-#include <net/if_dl.h>
@@ -193,7 +185,7 @@ Index: squeezelite-1.9.1-1130/utils.c
// logging functions
const char *logtime(void) {
static char buf[100];
-@@ -114,58 +110,94 @@ u32_t gettime_ms(void) {
+@@ -119,58 +115,94 @@ u32_t gettime_ms(void) {
#endif
}
@@ -228,23 +220,29 @@ Index: squeezelite-1.9.1-1130/utils.c
+ unsigned char *ptr;
+ in_addr_t bcast_addr = 0;
+ int have_mac = 0, have_ifname = 0;
-+
+
+- }
+ loglevel = level;
-+
+
+- mac[0] = mac[1] = mac[2] = mac[3] = mac[4] = mac[5] = 0;
+ // Check for non-zero MAC
+ if (mac[0] | mac[1] | mac[2] != 0)
+ have_mac = 1;
-+
+
+- int s = socket(AF_INET, SOCK_DGRAM, 0);
+ // Copy interface name, if it was provided.
+ if (iface != NULL) {
+ if (strlen(iface) > sizeof(ifname))
+ return -1;
-+ strncpy(ifname, iface, sizeof(ifname));
+- ifc.ifc_len = sizeof(ifs);
+- ifc.ifc_req = ifs;
++ strncpy(ifname, iface, sizeof(ifname) - 1);
+ have_ifname = 1;
- }
++ }
-- mac[0] = mac[1] = mac[2] = mac[3] = mac[4] = mac[5] = 0;
+- if (ioctl(s, SIOCGIFCONF, &ifc) == 0) {
+- ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
+ if (getifaddrs(&addrs) == 0) {
+ //iterate to find corresponding ethernet address
+ for (ifa = addrs; ifa; ifa = ifa->ifa_next) {
@@ -255,11 +253,10 @@ Index: squeezelite-1.9.1-1130/utils.c
+ || !ifa->ifa_flags & IFF_BROADCAST) {
+ continue;
+ }
-
-- int s = socket(AF_INET, SOCK_DGRAM, 0);
++
+ if (!have_ifname) {
+ // We have found a valid interface name. Keep it.
-+ strncpy(ifname, ifa->ifa_name, sizeof(ifname));
++ strncpy(ifname, ifa->ifa_name, sizeof(ifname) - 1);
+ have_ifname = 1;
+ } else {
+ if (strncmp(ifname, ifa->ifa_name, sizeof(ifname)) != 0) {
@@ -268,11 +265,15 @@ Index: squeezelite-1.9.1-1130/utils.c
+ }
+ }
-- ifc.ifc_len = sizeof(ifs);
-- ifc.ifc_req = ifs;
+- for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
+- if (ifr->ifr_addr.sa_family == AF_INET) {
-- if (ioctl(s, SIOCGIFCONF, &ifc) == 0) {
-- ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
+- strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name) - 1);
+- if (ioctl (s, SIOCGIFHWADDR, &ifreq) == 0) {
+- memcpy(mac, ifreq.ifr_hwaddr.sa_data, 6);
+- if (mac[0]+mac[1]+mac[2] != 0) {
+- break;
+- }
+ // Check address family.
+ if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET &&
+ ((struct sockaddr_in *)ifa->ifa_broadaddr)->sin_addr.s_addr != 0) {
@@ -286,16 +287,7 @@ Index: squeezelite-1.9.1-1130/utils.c
+ have_ifname = 0;
+ }
+ }
-
-- for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
-- if (ifr->ifr_addr.sa_family == AF_INET) {
--
-- strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
-- if (ioctl (s, SIOCGIFHWADDR, &ifreq) == 0) {
-- memcpy(mac, ifreq.ifr_hwaddr.sa_data, 6);
-- if (mac[0]+mac[1]+mac[2] != 0) {
-- break;
-- }
++
+ // Find MAC address matching interface
+ if (!have_mac && bcast_addr != 0) {
+ for (ifa = addrs; ifa; ifa = ifa->ifa_next) {
@@ -324,7 +316,7 @@ Index: squeezelite-1.9.1-1130/utils.c
#if SUN
void get_mac(u8_t mac[]) {
struct arpreq parpreq;
-@@ -232,30 +264,6 @@ void get_mac(u8_t mac[]) {
+@@ -237,30 +269,6 @@ void get_mac(u8_t mac[]) {
}
#endif
diff --git a/sound/squeezelite/patches/020-no_libmad.patch b/sound/squeezelite/patches/020-no_libmad.patch
index 4504a5537..c65243210 100644
--- a/sound/squeezelite/patches/020-no_libmad.patch
+++ b/sound/squeezelite/patches/020-no_libmad.patch
@@ -1,8 +1,6 @@
-Index: squeezelite-1.9.1-1130/Makefile
-===================================================================
---- squeezelite-1.9.1-1130.orig/Makefile
-+++ squeezelite-1.9.1-1130/Makefile
-@@ -17,7 +17,7 @@ OPT_NO_FAAD = -DNO_FAAD
+--- a/Makefile
++++ b/Makefile
+@@ -22,7 +22,7 @@ OPT_OPUS = -DOPUS
SOURCES = \
main.c slimproto.c buffer.c stream.c utils.c \
output.c output_alsa.c output_pa.c output_stdout.c output_pack.c decode.c \
@@ -11,20 +9,18 @@ Index: squeezelite-1.9.1-1130/Makefile
SOURCES_DSD = dsd.c dop.c dsd2pcm/dsd2pcm.c
SOURCES_FF = ffmpeg.c
-@@ -30,7 +30,7 @@ SOURCES_FAAD = faad.c
- LINK_LINUX = -ldl
- LINK_RPI = -lwiringPi
+@@ -40,7 +40,7 @@ LINK_LINUX = -ldl
+ LINK_SSL = -lssl -lcrypto
+ LINK_ALAC = -lalac
--LINKALL = -lFLAC -lmad -lvorbisfile -lmpg123
-+LINKALL = -lFLAC -lvorbisfile -lmpg123
- LINKALL_FF = -lavcodec -lavformat -lavutil
+-LINKALL = -lmad -lmpg123 -lFLAC -lvorbisfile -lvorbis -logg
++LINKALL = -lmpg123 -lFLAC -lvorbisfile -lvorbis -logg
+ LINKALL_FF = -lavformat -lavcodec -lavutil
LINKALL_RESAMPLE = -lsoxr
LINKALL_IR = -llirc_client
-Index: squeezelite-1.9.1-1130/decode.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/decode.c
-+++ squeezelite-1.9.1-1130/decode.c
-@@ -176,11 +176,7 @@ void decode_init(log_level level, const
+--- a/decode.c
++++ b/decode.c
+@@ -184,11 +184,7 @@ void decode_init(log_level level, const char *include_codecs, const char *exclud
if (!strstr(exclude_codecs, "pcm") && (!include_codecs || (order_codecs = strstr(include_codecs, "pcm"))))
sort_codecs((include_codecs ? order_codecs - include_codecs : i), register_pcm());
@@ -37,32 +33,28 @@ Index: squeezelite-1.9.1-1130/decode.c
(!include_codecs || (order_codecs = strstr(include_codecs, "mp3")) || (order_codecs = strstr(include_codecs, "mpg"))))
sort_codecs((include_codecs ? order_codecs - include_codecs : i), register_mpg());
-Index: squeezelite-1.9.1-1130/main.c
-===================================================================
---- squeezelite-1.9.1-1130.orig/main.c
-+++ squeezelite-1.9.1-1130/main.c
-@@ -44,7 +44,7 @@
+--- a/main.c
++++ b/main.c
+@@ -51,7 +51,7 @@
#else
#define CODECS_DSD ""
#endif
-#define CODECS_MP3 " (mad,mpg for specific mp3 codec)"
+#define CODECS_MP3 ""
- #define CODECS CODECS_BASE CODECS_AAC CODECS_FF CODECS_DSD CODECS_MP3
+ #define CODECS CODECS_BASE CODECS_AAC CODECS_FF CODECS_OPUS CODECS_DSD CODECS_MP3
-Index: squeezelite-1.9.1-1130/squeezelite.h
-===================================================================
---- squeezelite-1.9.1-1130.orig/squeezelite.h
-+++ squeezelite-1.9.1-1130/squeezelite.h
-@@ -163,7 +163,6 @@
+--- a/squeezelite.h
++++ b/squeezelite.h
+@@ -190,7 +190,6 @@
#if LINUX
#define LIBFLAC "libFLAC.so.8"
-#define LIBMAD "libmad.so.0"
#define LIBMPG "libmpg123.so.0"
#define LIBVORBIS "libvorbisfile.so.3"
- #define LIBTREMOR "libvorbisidec.so.1"
-@@ -177,7 +176,6 @@
+ #define LIBOPUS "libopusfile.so.0"
+@@ -205,7 +204,6 @@
#if OSX
#define LIBFLAC "libFLAC.8.dylib"
@@ -70,19 +62,19 @@ Index: squeezelite-1.9.1-1130/squeezelite.h
#define LIBMPG "libmpg123.0.dylib"
#define LIBVORBIS "libvorbisfile.3.dylib"
#define LIBTREMOR "libvorbisidec.1.dylib"
-@@ -190,7 +188,6 @@
+@@ -219,7 +217,6 @@
#if WIN
#define LIBFLAC "libFLAC.dll"
-#define LIBMAD "libmad-0.dll"
#define LIBMPG "libmpg123-0.dll"
#define LIBVORBIS "libvorbisfile.dll"
- #define LIBTREMOR "libvorbisidec.dll"
-@@ -203,7 +200,6 @@
+ #define LIBOPUS "libopusfile-0.dll"
+@@ -233,7 +230,6 @@
#if FREEBSD
- #define LIBFLAC "libFLAC.so.11"
--#define LIBMAD "libmad.so.2"
+ #define LIBFLAC "libFLAC.so.8"
+-#define LIBMAD "libmad.so.0"
#define LIBMPG "libmpg123.so.0"
- #define LIBVORBIS "libvorbisfile.so.6"
+ #define LIBVORBIS "libvorbisfile.so.3"
#define LIBTREMOR "libvorbisidec.so.1"