- if (*next_point) {
- if (chunked) {
- uint64_t max= av_rescale_q(s->max_chunk_duration, AV_TIME_BASE_Q, st->time_base);
- if ( st->interleaver_chunk_size + pkt->size <= s->max_chunk_size-1U
- && st->interleaver_chunk_duration + pkt->duration <= max-1U) {
- st->interleaver_chunk_size += pkt->size;
- st->interleaver_chunk_duration += pkt->duration;
- goto next_non_null;
- } else {
- st->interleaver_chunk_size =
- st->interleaver_chunk_duration = 0;
- this_pktl->pkt.flags |= CHUNK_START;
- }
+ if (chunked) {
+ uint64_t max= av_rescale_q_rnd(s->max_chunk_duration, AV_TIME_BASE_Q, st->time_base, AV_ROUND_UP);
+ if ( st->interleaver_chunk_size + pkt->size <= s->max_chunk_size-1U
+ && st->interleaver_chunk_duration + pkt->duration <= max-1U) {
+ st->interleaver_chunk_size += pkt->size;
+ st->interleaver_chunk_duration += pkt->duration;
+ } else {
+ st->interleaver_chunk_size =
+ st->interleaver_chunk_duration = 0;
+ this_pktl->pkt.flags |= CHUNK_START;