mirror of
https://github.com/owntone/owntone-server.git
synced 2025-01-01 01:53:23 -05:00
commit
de2e1b32ed
8
.github/workflows/macos.yml
vendored
8
.github/workflows/macos.yml
vendored
@ -53,14 +53,14 @@ jobs:
|
|||||||
brew install ffmpeg
|
brew install ffmpeg
|
||||||
|
|
||||||
- name: Install other dependencies
|
- name: Install other dependencies
|
||||||
run: brew install libunistring libmxml confuse libplist sqlite libwebsockets libevent libgcrypt json-c protobuf-c libsodium gnutls pulseaudio
|
run: brew install libunistring libmxml confuse libplist sqlite libwebsockets libevent libgcrypt json-c protobuf-c libsodium gnutls pulseaudio openssl
|
||||||
|
|
||||||
- name: Configure forked-daapd
|
- name: Configure
|
||||||
run: |
|
run: |
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
./configure --enable-chromecast --enable-lastfm --with-pulseaudio
|
./configure --enable-chromecast --enable-lastfm --with-pulseaudio
|
||||||
|
|
||||||
- name: Build forked-daapd
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
# Without setting these env vars the build fails with "fatal error: 'openssl/ssl.h' file not found"
|
# Without setting these env vars the build fails with "fatal error: 'openssl/ssl.h' file not found"
|
||||||
# (Solution taken from https://github.com/libimobiledevice/libimobiledevice/issues/389#issuecomment-289284190)
|
# (Solution taken from https://github.com/libimobiledevice/libimobiledevice/issues/389#issuecomment-289284190)
|
||||||
@ -69,5 +69,5 @@ jobs:
|
|||||||
export PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig
|
export PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig
|
||||||
make
|
make
|
||||||
|
|
||||||
- name: Install forked-daapd
|
- name: Install
|
||||||
run: sudo make install
|
run: sudo make install
|
||||||
|
12
src/db.c
12
src/db.c
@ -5233,18 +5233,6 @@ queue_enum_start(struct query_params *qp)
|
|||||||
#undef Q_TMPL
|
#undef Q_TMPL
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline char *
|
|
||||||
strdup_if(char *str, int cond)
|
|
||||||
{
|
|
||||||
if (str == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (cond)
|
|
||||||
return strdup(str);
|
|
||||||
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
queue_enum_fetch(struct query_params *qp, struct db_queue_item *qi, int must_strdup)
|
queue_enum_fetch(struct query_params *qp, struct db_queue_item *qi, int must_strdup)
|
||||||
{
|
{
|
||||||
|
@ -230,7 +230,7 @@ library_callback_schedule(library_cb cb, void *arg, struct timeval *wait, enum l
|
|||||||
|
|
||||||
event_add(cbreg->ev, wait);
|
event_add(cbreg->ev, wait);
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_LIB, "Added library callback to %p (id %d), wait %ld.%06ld\n", cbreg->cb, idx_available, wait->tv_sec, wait->tv_usec);
|
DPRINTF(E_DBG, L_LIB, "Added library callback to %p (id %d), wait %ld.%06ld\n", cbreg->cb, idx_available, (long) wait->tv_sec, (long) wait->tv_usec);
|
||||||
|
|
||||||
return idx_available;
|
return idx_available;
|
||||||
}
|
}
|
||||||
|
@ -1978,8 +1978,8 @@ packets_resend(struct airplay_session *rs, uint16_t seqnum, int len)
|
|||||||
|
|
||||||
rtp_session = rs->master_session->rtp_session;
|
rtp_session = rs->master_session->rtp_session;
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_AIRPLAY, "Got retransmit request from '%s': seqnum %" PRIu16 " (len %d), last RTP session seqnum %" PRIu16 " (len %zu)\n",
|
DPRINTF(E_DBG, L_AIRPLAY, "Got retransmit request from '%s': seqnum %" PRIu16 " (len %d), next RTP session seqnum %" PRIu16 " (len %zu)\n",
|
||||||
rs->devname, seqnum, len, rtp_session->seqnum - 1, rtp_session->pktbuf_len);
|
rs->devname, seqnum, len, rtp_session->seqnum, rtp_session->pktbuf_len);
|
||||||
|
|
||||||
// Note that seqnum may wrap around, so we don't use it for counting
|
// Note that seqnum may wrap around, so we don't use it for counting
|
||||||
for (i = 0, s = seqnum; i < len; i++, s++)
|
for (i = 0, s = seqnum; i < len; i++, s++)
|
||||||
@ -1992,8 +1992,8 @@ packets_resend(struct airplay_session *rs, uint16_t seqnum, int len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (pkt_missing)
|
if (pkt_missing)
|
||||||
DPRINTF(E_WARN, L_AIRPLAY, "Device '%s' retransmit request for seqnum %" PRIu16 " (len %d) is outside buffer range (last seqnum %" PRIu16 ", len %zu)\n",
|
DPRINTF(E_WARN, L_AIRPLAY, "Device '%s' retransmit request for seqnum %" PRIu16 " (len %d) is outside buffer range (next seqnum %" PRIu16 ", len %zu)\n",
|
||||||
rs->devname, seqnum, len, rtp_session->seqnum - 1, rtp_session->pktbuf_len);
|
rs->devname, seqnum, len, rtp_session->seqnum, rtp_session->pktbuf_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -1300,7 +1300,7 @@ xr_packet_process(struct cast_session *cs, uint8_t *data, size_t len)
|
|||||||
{
|
{
|
||||||
seqnum = frame_id_expand(feedback.lost_fields[i].frame_id, cs->seqnum_next - 1);
|
seqnum = frame_id_expand(feedback.lost_fields[i].frame_id, cs->seqnum_next - 1);
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_CAST, "Retransmission to '%s' of lost RTCP frame_id %" PRIu8", packet_id %" PRIu16 ", bitmask %02x\n",
|
DPRINTF(E_DBG, L_CAST, "Retransmission to '%s' of lost RTCP frame_id %" PRIu16", packet_id %" PRIu16 ", bitmask %02x\n",
|
||||||
cs->devname, seqnum, feedback.lost_fields[i].packet_id, feedback.lost_fields[i].bitmask);
|
cs->devname, seqnum, feedback.lost_fields[i].packet_id, feedback.lost_fields[i].bitmask);
|
||||||
packet_send(cs, seqnum);
|
packet_send(cs, seqnum);
|
||||||
}
|
}
|
||||||
@ -1891,7 +1891,7 @@ cast_session_make(struct output_device *device, int family, int callback_id)
|
|||||||
const char *err;
|
const char *err;
|
||||||
char *address;
|
char *address;
|
||||||
unsigned short port;
|
unsigned short port;
|
||||||
uint64_t offset_ms;
|
int offset_ms;
|
||||||
int flags;
|
int flags;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -1954,7 +1954,7 @@ cast_session_make(struct output_device *device, int family, int callback_id)
|
|||||||
offset_ms = chromecast ? cfg_getint(chromecast, "offset_ms") : 0;
|
offset_ms = chromecast ? cfg_getint(chromecast, "offset_ms") : 0;
|
||||||
if (abs(offset_ms) > CAST_OFFSET_MAX)
|
if (abs(offset_ms) > CAST_OFFSET_MAX)
|
||||||
{
|
{
|
||||||
DPRINTF(E_LOG, L_CAST, "Ignoring invalid configuration of Chromecast offset (%" PRIu64 " ms)\n", offset_ms);
|
DPRINTF(E_LOG, L_CAST, "Ignoring invalid configuration of Chromecast offset (%d ms)\n", offset_ms);
|
||||||
offset_ms = 0;
|
offset_ms = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1963,7 +1963,7 @@ cast_session_make(struct output_device *device, int family, int callback_id)
|
|||||||
cs->offset_ts.tv_sec = (offset_ms / 1000);
|
cs->offset_ts.tv_sec = (offset_ms / 1000);
|
||||||
cs->offset_ts.tv_nsec = (offset_ms % 1000) * 1000000UL;
|
cs->offset_ts.tv_nsec = (offset_ms % 1000) * 1000000UL;
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_CAST, "Offset is set to %lu:%lu\n", cs->offset_ts.tv_sec, cs->offset_ts.tv_nsec);
|
DPRINTF(E_DBG, L_CAST, "Offset is set to %lu:%09lu\n", cs->offset_ts.tv_sec, cs->offset_ts.tv_nsec);
|
||||||
|
|
||||||
cs->ev = event_new(evbase_player, cs->server_fd, EV_READ | EV_PERSIST, cast_listen_cb, cs);
|
cs->ev = event_new(evbase_player, cs->server_fd, EV_READ | EV_PERSIST, cast_listen_cb, cs);
|
||||||
if (!cs->ev)
|
if (!cs->ev)
|
||||||
|
@ -2810,8 +2810,8 @@ packets_resend(struct raop_session *rs, uint16_t seqnum, int len)
|
|||||||
|
|
||||||
rtp_session = rs->master_session->rtp_session;
|
rtp_session = rs->master_session->rtp_session;
|
||||||
|
|
||||||
DPRINTF(E_DBG, L_RAOP, "Got retransmit request from '%s': seqnum %" PRIu16 " (len %d), last RTP session seqnum %" PRIu16 " (len %zu)\n",
|
DPRINTF(E_DBG, L_RAOP, "Got retransmit request from '%s': seqnum %" PRIu16 " (len %d), next RTP session seqnum %" PRIu16 " (len %zu)\n",
|
||||||
rs->devname, seqnum, len, rtp_session->seqnum - 1, rtp_session->pktbuf_len);
|
rs->devname, seqnum, len, rtp_session->seqnum, rtp_session->pktbuf_len);
|
||||||
|
|
||||||
// Note that seqnum may wrap around, so we don't use it for counting
|
// Note that seqnum may wrap around, so we don't use it for counting
|
||||||
for (i = 0, s = seqnum; i < len; i++, s++)
|
for (i = 0, s = seqnum; i < len; i++, s++)
|
||||||
@ -2824,8 +2824,8 @@ packets_resend(struct raop_session *rs, uint16_t seqnum, int len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (pkt_missing)
|
if (pkt_missing)
|
||||||
DPRINTF(E_WARN, L_RAOP, "Device '%s' retransmit request for seqnum %" PRIu16 " (len %d) is outside buffer range (last seqnum %" PRIu16 ", len %zu)\n",
|
DPRINTF(E_WARN, L_RAOP, "Device '%s' retransmit request for seqnum %" PRIu16 " (len %d) is outside buffer range (next seqnum %" PRIu16 ", len %zu)\n",
|
||||||
rs->devname, seqnum, len, rtp_session->seqnum - 1, rtp_session->pktbuf_len);
|
rs->devname, seqnum, len, rtp_session->seqnum, rtp_session->pktbuf_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
Loading…
Reference in New Issue
Block a user