> On Jul 19, 2020, at 7:45 PM, Steven Liu <lingjiujia...@gmail.com> wrote: > > Zhao Zhili <quinkbl...@foxmail.com> 于2020年7月19日周日 下午6:26写道: >> >> >> >>> On Jul 19, 2020, at 5:20 PM, Steven Liu <lingjiujia...@gmail.com> wrote: >>> >>> Marton Balint <c...@passwd.hu> 于2020年7月19日周日 上午6:04写道: >>>> >>>> Also query time only once, not for every variant stream, otherwise variant >>>> streams might get a slightly different initial program date time. And we >>>> can >>>> set this unconditionally because HLS_PROGRAM_DATE_TIME flag is checked >>>> elsewhere. >>>> >>>> Signed-off-by: Marton Balint <c...@passwd.hu> >>>> --- >>>> libavformat/hlsenc.c | 8 ++------ >>>> 1 file changed, 2 insertions(+), 6 deletions(-) >>>> >>>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c >>>> index df84e6487d..39ff1fa1e7 100644 >>>> --- a/libavformat/hlsenc.c >>>> +++ b/libavformat/hlsenc.c >>>> @@ -2704,6 +2704,7 @@ static int hls_init(AVFormatContext *s) >>>> char *p = NULL; >>>> int http_base_proto = ff_is_http_proto(s->url); >>>> int fmp4_init_filename_len = strlen(hls->fmp4_init_filename) + 1; >>>> + double initial_program_date_time = av_gettime() / 1000000.0; >>> is it AV_TIME_BASE? >> >> According to the documentation of av_gettime, it's not related to >> AV_TIME_BASE. >> >> /** >> * Get the current time in microseconds. >> */ >> int64_t av_gettime(void); > I saw > /** > * Internal time base represented as integer > */ > > #define AV_TIME_BASE 1000000 > Do you mean cannot av_gettime() / AV_TIME_BASE?
AV_TIME_BASE is an opaque time unit used by ffmpeg, it can be set to 90000 in theory. To get time in AV_TIME_BASE, it should be (ignore integer overflow) av_gettime * AV_TIME_BASE / 1000000 >> >>>> >>>> if (hls->use_localtime) { >>>> pattern = get_default_pattern_localtime_fmt(s); >>>> @@ -2798,12 +2799,7 @@ static int hls_init(AVFormatContext *s) >>>> vs->start_pts = AV_NOPTS_VALUE; >>>> vs->end_pts = AV_NOPTS_VALUE; >>>> vs->current_segment_final_filename_fmt[0] = '\0'; >>>> - >>>> - if (hls->flags & HLS_PROGRAM_DATE_TIME) { >>>> - time_t now0; >>>> - time(&now0); >>>> - vs->initial_prog_date_time = now0; >>>> - } >>>> + vs->initial_prog_date_time = initial_program_date_time; >>>> >>>> for (j = 0; j < vs->nb_streams; j++) { >>>> vs->has_video += vs->streams[j]->codecpar->codec_type == >>>> AVMEDIA_TYPE_VIDEO; >>>> -- >>>> 2.26.2 >>>> >>>> _______________________________________________ >>>> ffmpeg-devel mailing list >>>> ffmpeg-devel@ffmpeg.org >>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>>> >>>> To unsubscribe, visit link above, or email >>>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >>> To unsubscribe, visit link above, or email >>> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".