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

Steven Liu lingjiujianke at gmail.com
Sun Jul 19 14:45:18 EEST 2020


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?
>
> >>
> >>     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".


More information about the ffmpeg-devel mailing list