|
|
@@ -1441,32 +1441,33 @@ static int hls_write_header(AVFormatContext *s) |
|
|
} else { |
|
|
} else { |
|
|
av_strlcat(hls->basename, pattern, basename_size); |
|
|
av_strlcat(hls->basename, pattern, basename_size); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (av_strcasecmp(hls->fmp4_init_filename, "init.mp4")) { |
|
|
|
|
|
int fmp4_init_filename_len = strlen(hls->fmp4_init_filename) + 1; |
|
|
|
|
|
hls->base_output_dirname = av_malloc(fmp4_init_filename_len); |
|
|
|
|
|
if (!hls->base_output_dirname) { |
|
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
|
goto fail; |
|
|
|
|
|
} |
|
|
|
|
|
av_strlcpy(hls->base_output_dirname, hls->fmp4_init_filename, fmp4_init_filename_len); |
|
|
|
|
|
} else { |
|
|
|
|
|
hls->base_output_dirname = av_malloc(basename_size); |
|
|
|
|
|
if (!hls->base_output_dirname) { |
|
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
|
goto fail; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (av_strcasecmp(hls->fmp4_init_filename, "init.mp4")) { |
|
|
|
|
|
int fmp4_init_filename_len = strlen(hls->fmp4_init_filename) + 1; |
|
|
|
|
|
hls->base_output_dirname = av_malloc(fmp4_init_filename_len); |
|
|
|
|
|
if (!hls->base_output_dirname) { |
|
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
|
goto fail; |
|
|
|
|
|
} |
|
|
|
|
|
av_strlcpy(hls->base_output_dirname, hls->fmp4_init_filename, fmp4_init_filename_len); |
|
|
|
|
|
} else { |
|
|
|
|
|
hls->base_output_dirname = av_malloc(basename_size); |
|
|
|
|
|
if (!hls->base_output_dirname) { |
|
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
|
goto fail; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
av_strlcpy(hls->base_output_dirname, s->filename, basename_size); |
|
|
|
|
|
p = strrchr(hls->base_output_dirname, '/'); |
|
|
|
|
|
if (p) { |
|
|
|
|
|
*(p + 1) = '\0'; |
|
|
|
|
|
av_strlcat(hls->base_output_dirname, hls->fmp4_init_filename, basename_size); |
|
|
|
|
|
} else { |
|
|
|
|
|
av_strlcpy(hls->base_output_dirname, hls->fmp4_init_filename, basename_size); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
av_strlcpy(hls->base_output_dirname, s->filename, basename_size); |
|
|
|
|
|
p = strrchr(hls->base_output_dirname, '/'); |
|
|
|
|
|
if (p) { |
|
|
|
|
|
*(p + 1) = '\0'; |
|
|
|
|
|
av_strlcat(hls->base_output_dirname, hls->fmp4_init_filename, basename_size); |
|
|
|
|
|
} else { |
|
|
|
|
|
av_strlcpy(hls->base_output_dirname, hls->fmp4_init_filename, basename_size); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (!hls->use_localtime) { |
|
|
if (!hls->use_localtime) { |
|
|
ret = sls_flag_check_duration_size_index(hls); |
|
|
ret = sls_flag_check_duration_size_index(hls); |
|
|
if (ret < 0) { |
|
|
if (ret < 0) { |
|
|
|