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

Marton Balint cus at passwd.hu
Thu Jul 30 00:11:25 EEST 2020



On Tue, 28 Jul 2020, Steven Liu wrote:

> Marton Balint <cus at passwd.hu> 于2020年7月28日周二 上午4:15写道:
>>
>>
>>
>> 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,
> I have no question about it, thanks for your clarify respond, LGTM.

Thanks, applied.

Regards,
Marton


More information about the ffmpeg-devel mailing list