btr: Rename btr_bytes_pending() and make it public.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index fef61cb..1a038f0 100644 (file)
--- 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