X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=vss.c;h=1a038f060bd1f0e2ecfd842e9f08fd7f704f70e2;hp=fef61cbe4bc469e4884540a3be1f44038e29c423;hb=d96c06ff93493c125b9f4d36655e77d7029ca309;hpb=fb6d93240bb9c7c3d2c8e1826d722296002fb487 diff --git a/vss.c b/vss.c index fef61cbe..1a038f06 100644 --- a/vss.c +++ b/vss.c @@ -677,6 +677,13 @@ static int need_to_request_new_audio_file(struct vss_task *vsst) return 1; } +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. * @@ -716,14 +723,12 @@ static void vss_pre_select(struct sched *s, struct task *t) set_eof_barrier(vsst); mmd->chunks_sent = 0; } else if (vss_repos()) { - struct timeval offset; 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); + set_mmd_offset(); } if (need_to_request_new_audio_file(vsst)) { PARA_DEBUG_LOG("ready and playing, but no audio file\n"); @@ -880,6 +885,7 @@ static void vss_send(struct vss_task *vsst) if (!mmd->chunks_sent) { mmd->stream_start = *now; mmd->events++; + set_mmd_offset(); } /* * We call the send function also in case of empty chunks as