[FFmpeg-cvslog] avformat/dashdec: add min_buffer_time process logic
Steven Liu
git at videolan.org
Wed Sep 5 09:36:11 EEST 2018
ffmpeg | branch: master | Steven Liu <lq at chinaffmpeg.org> | Wed Sep 5 14:20:52 2018 +0800| [8eac027cd14eb507d7d1bddf2606a01e1d118d38] | committer: Steven Liu
avformat/dashdec: add min_buffer_time process logic
if there have min_buffer_time in playlist, use the min_buffer_time
value for realtime.
Signed-off-by: Steven Liu <lq at onvideo.cn>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8eac027cd14eb507d7d1bddf2606a01e1d118d38
---
libavformat/dashdec.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index adcdd51dae..91d4e36432 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;
}
More information about the ffmpeg-cvslog
mailing list