[FFmpeg-devel] [PATCH] avformat/hlsenc: increase initial program date time precision

Marton Balint cus at passwd.hu
Mon Jul 27 23:14:36 EEST 2020



On Sun, 19 Jul 2020, Marton Balint wrote:

>
>
> On Sun, 19 Jul 2020, Steven Liu wrote:
>
>> Zhao Zhili <quinkblack at foxmail.com> 于2020年7月19日周日 下午6:26写道:
>>>
>>>
>>>
>>> > On Jul 19, 2020, at 5:20 PM, Steven Liu <lingjiujianke at gmail.com> wrote:
>>> >
>>> > Marton Balint <cus at 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 <cus at 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_gettime() is always microsec according to docs, even if AV_TIME_BASE is 
> not 1000000. In practice however AV_TIME_BASE is assumed to be 1000000 in 
> a lot of places, so one can't really change it.
>
> IMHO it is cleaner to use 1000000.0 instead of AV_TIME_BASE, because 
> AV_TIME_BASE is integer, so you'd have to use (double)AV_TIME_BASE and 
> that would be ugly. So I'd rather keep 1000000.0.

Ping, thanks,

Marton

>>>
>>> >>
>>> >>     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 at ffmpeg.org
>>> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>> >>
>>> >> To unsubscribe, visit link above, or email
>>> >> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>>> > _______________________________________________
>>> > ffmpeg-devel mailing list
>>> > ffmpeg-devel at ffmpeg.org
>>> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>> >
>>> > To unsubscribe, visit link above, or email
>>> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>>>
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list