avformat/dashdec: minus minBufferTime when there have value
authorSteven Liu <lq@chinaffmpeg.org>
Thu, 6 Sep 2018 05:40:56 +0000 (13:40 +0800)
committerSteven Liu <lq@chinaffmpeg.org>
Thu, 6 Sep 2018 05:40:56 +0000 (13:40 +0800)
fix ticket 7382

libavformat/dashdec.c

index 154b142..497e7e4 100644 (file)
@@ -1341,7 +1341,7 @@ static int64_t calc_cur_seg_no(AVFormatContext *s, struct representation *pls)
         } else if (pls->fragment_duration){
             av_log(s, AV_LOG_TRACE, "in fragment_duration mode fragment_timescale = %"PRId64", presentation_timeoffset = %"PRId64"\n", pls->fragment_timescale, pls->presentation_timeoffset);
             if (pls->presentation_timeoffset) {
-                num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time) * pls->fragment_timescale)-pls->presentation_timeoffset) / pls->fragment_duration;
+                num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time) * pls->fragment_timescale)-pls->presentation_timeoffset) / pls->fragment_duration - c->min_buffer_time;
             } else if (c->publish_time > 0 && !c->availability_start_time) {
                 if (c->min_buffer_time) {
                     num = pls->first_seq_no + (((c->publish_time + pls->fragment_duration) - c->suggested_presentation_delay) * pls->fragment_timescale) / pls->fragment_duration - c->min_buffer_time;