diff options
author | Steven Liu <lq@chinaffmpeg.org> | 2018-09-05 14:33:53 +0800 |
---|---|---|
committer | Steven Liu <lq@chinaffmpeg.org> | 2018-09-05 14:33:53 +0800 |
commit | ad9b4ecc26bef7babb31b58f19c869f6464c2db9 (patch) | |
tree | 125a4354e83876ebc2a0974306195e958523f86f | |
parent | d0be0de06557e344ee0142ab0a88f8f14825f5ae (diff) | |
download | ffmpeg-ad9b4ecc26bef7babb31b58f19c869f6464c2db9.tar.gz |
avformat/dashdec: refine compute current fragment for presentation_timeoffset mode
fix ticket id: #7369 #7382.
use ((wallclock - availability_start_time) * timescale -presentation_timeoffset) / duration
Signed-off-by: Steven Liu <lq@onvideo.cn>
-rw-r--r-- | libavformat/dashdec.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index e8c57a51c5..154b1426b9 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -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->presentation_timeoffset * pls->fragment_timescale / 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; } 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; |