Commit
fb6d93240 (vss: Update offset directly when setting the REPOS
flag.) was buggy. On pause/restart we miss to update mmd->offset,
hence the status items which are sent to the stat clients like audiod
did not contain the correct offset value either which messes up
the time string that audiod sends to its clients (para_gui).
We need to set the new offset both on repos requests and on restart,
do introduce a small helper function for this purpose.
+static void set_mmd_offset(void)
+{
+ struct timeval offset;
+ tv_scale(mmd->current_chunk, &mmd->afd.afhi.chunk_tv, &offset);
+ mmd->offset = tv2ms(&offset);
+}
+
/**
* Compute the timeout for the main select-loop of the scheduler.
*
/**
* Compute the timeout for the main select-loop of the scheduler.
*
set_eof_barrier(vsst);
mmd->chunks_sent = 0;
} else if (vss_repos()) {
set_eof_barrier(vsst);
mmd->chunks_sent = 0;
} else if (vss_repos()) {
tv_add(now, &vsst->announce_tv, &vsst->data_send_barrier);
set_eof_barrier(vsst);
mmd->chunks_sent = 0;
mmd->current_chunk = mmd->repos_request;
mmd->new_vss_status_flags &= ~VSS_REPOS;
tv_add(now, &vsst->announce_tv, &vsst->data_send_barrier);
set_eof_barrier(vsst);
mmd->chunks_sent = 0;
mmd->current_chunk = mmd->repos_request;
mmd->new_vss_status_flags &= ~VSS_REPOS;
- tv_scale(mmd->current_chunk, &mmd->afd.afhi.chunk_tv, &offset);
- mmd->offset = tv2ms(&offset);
}
if (need_to_request_new_audio_file(vsst)) {
PARA_DEBUG_LOG("ready and playing, but no audio file\n");
}
if (need_to_request_new_audio_file(vsst)) {
PARA_DEBUG_LOG("ready and playing, but no audio file\n");
if (!mmd->chunks_sent) {
mmd->stream_start = *now;
mmd->events++;
if (!mmd->chunks_sent) {
mmd->stream_start = *now;
mmd->events++;
}
/*
* We call the send function also in case of empty chunks as
}
/*
* We call the send function also in case of empty chunks as