Browse Source

netsync: use char for temporary local buffer

On Windows recvfrom/revc/sendto expects a char*.
cherry-pick-c5513cf9
Steve Lhomme 3 years ago
parent
commit
3391108f97
  1. 14
      modules/control/netsync.c

14
modules/control/netsync.c

@ -181,7 +181,7 @@ static void *Master(void *handle)
intf_sys_t *sys = intf->p_sys;
for (;;) {
struct pollfd ufd = { .fd = sys->fd, .events = POLLIN, };
uint64_t data[2];
char data[16];
if (poll(&ufd, 1, -1) < 0)
continue;
@ -198,8 +198,8 @@ static void *Master(void *handle)
if (master_system < 0)
continue;
data[0] = hton64(mdate());
data[1] = hton64(master_system);
SetQWBE(&data[0], mdate());
SetQWBE(&data[8], master_system);
/* Reply to the sender */
sendto(sys->fd, data, 16, 0,
@ -224,7 +224,7 @@ static void *Slave(void *handle)
for (;;) {
struct pollfd ufd = { .fd = sys->fd, .events = POLLIN, };
uint64_t data[2];
char data[16];
vlc_tick_t system = GetPcrSystem(sys->input);
if (system < 0)
@ -233,7 +233,7 @@ static void *Slave(void *handle)
/* Send clock request to the master */
const vlc_tick_t send_date = mdate();
data[0] = hton64(system);
SetQWBE(&data[0], system);
send(sys->fd, data, 8, 0);
/* Don't block */
@ -244,8 +244,8 @@ static void *Slave(void *handle)
if (recv(sys->fd, data, 16, 0) < 16)
goto wait;
const vlc_tick_t master_date = ntoh64(data[0]);
const vlc_tick_t master_system = ntoh64(data[1]);
const vlc_tick_t master_date = GetQWBE(&data[0]);
const vlc_tick_t master_system = GetQWBE(&data[8]);
const vlc_tick_t diff_date = receive_date -
((receive_date - send_date) / 2 + master_date);

Loading…
Cancel
Save