diff mbox

[FFmpeg-devel,6/8] avformat/dashdec: add min_buffer_time process logic

Message ID 20180903100600.85023-6-lq@chinaffmpeg.org
State Accepted
Commit 8eac027cd14eb507d7d1bddf2606a01e1d118d38
Headers show

Commit Message

Liu Steven Sept. 3, 2018, 10:05 a.m. UTC
if there have min_buffer_time in playlist, use the min_buffer_time
value for realtime.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
---
 libavformat/dashdec.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox

Patch

diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index 40e12e19ce..2a2d7455cd 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -1343,7 +1343,11 @@  static int64_t calc_cur_seg_no(AVFormatContext *s, struct representation *pls)
             if (pls->presentation_timeoffset) {
                 num = pls->presentation_timeoffset * pls->fragment_timescale / pls->fragment_duration;
             } 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;
+                } else {
                 num = pls->first_seq_no + (((c->publish_time - c->time_shift_buffer_depth + pls->fragment_duration) - c->suggested_presentation_delay) * pls->fragment_timescale) / pls->fragment_duration;
+                }
             } else {
                 num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time) - c->suggested_presentation_delay) * pls->fragment_timescale) / pls->fragment_duration;
             }