X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=vss.c;fp=vss.c;h=b63a1fcb84616cfa050cd6843050f2440da5db2b;hb=c52d8d08b47bc556cb5149bbb376d7d27a0b7cbc;hp=c6e4053321c950e8ae03c352382610515de561cb;hpb=70f527312e613fd89be88177dc2a44ad24b2d27c;p=paraslash.git diff --git a/vss.c b/vss.c index c6e40533..b63a1fcb 100644 --- a/vss.c +++ b/vss.c @@ -288,19 +288,20 @@ static int setup_next_fec_group(struct fec_client *fc, struct vss_task *vsst) g->num = 0; g->start = *now; } else { + struct timeval tmp; + if (g->first_chunk + g->num_chunks >= mmd->afd.afhi.chunks_total) + return 0; /* * Start and duration of this group depend only on the previous * group. Compute the new group start as g->start += g->duration. */ - struct timeval tmp = g->start; + tmp = g->start; tv_add(&tmp, &g->duration, &g->start); k = fc->fcp->data_slices_per_group + fc->num_extra_slices; set_group_timing(fc, g); g->first_chunk += g->num_chunks; g->num++; } - if (g->first_chunk >= mmd->afd.afhi.chunks_total) - return 0; if (need_audio_header(fc, vsst)) { ret = num_slices(vsst->header_len, fc, &g->num_header_slices); if (ret < 0)