Commit 8fd3e02e authored by Bela Bodecs's avatar Bela Bodecs

libavformat/hlsenc: default segment name and use_localtime

in hlcenc.c, in the hls_write_header() function the default format
string for strftime() function contains %s specifier when use_localtime
is true. This %s specifier will insert the seconds since EPOCH. But %s
is not available on all system/environment. This patch check %s
availabilty at runtine and alter the default format string if necessary.
Signed-off-by: 's avatarBela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: 's avatarSteven Liu <lq@chinaffmpeg.org>
parent 75255175
......@@ -829,13 +829,23 @@ fail:
return err;
}
static const char * get_default_pattern_localtime_fmt(void)
{
char b[21];
time_t t = time(NULL);
struct tm *p, tmbuf;
p = localtime_r(&t, &tmbuf);
// no %s support when strftime returned error or left format string unchanged
return (!strftime(b, sizeof(b), "%s", p) || !strcmp(b, "%s")) ? "-%Y%m%d%H%I%S.ts" : "-%s.ts";
}
static int hls_write_header(AVFormatContext *s)
{
HLSContext *hls = s->priv_data;
int ret, i;
char *p;
const char *pattern = "%d.ts";
const char *pattern_localtime_fmt = "-%s.ts";
const char *pattern_localtime_fmt = get_default_pattern_localtime_fmt();
const char *vtt_pattern = "%d.vtt";
AVDictionary *options = NULL;
int basename_size;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment