1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

avformat/hlsenc: revamped master playlist url creation logic

This commit is contained in:
Vishwanath Dixit 2018-01-02 10:45:28 +08:00 committed by Steven Liu
parent 21b5990da4
commit 26e1efb04f

View File

@ -1689,28 +1689,30 @@ static int update_variant_stream_info(AVFormatContext *s) {
static int update_master_pl_info(AVFormatContext *s) {
HLSContext *hls = s->priv_data;
int m3u8_name_size, ret;
char *p;
const char *dir;
char *fn;
int ret = 0;
fn = av_strdup(s->filename);
if (!fn) {
ret = AVERROR(ENOMEM);
goto fail;
}
dir = av_dirname(fn);
if (dir && strcmp(dir, "."))
hls->master_m3u8_url = av_append_path_component(dir, hls->master_pl_name);
else
hls->master_m3u8_url = av_strdup(hls->master_pl_name);
m3u8_name_size = strlen(s->filename) + strlen(hls->master_pl_name) + 1;
hls->master_m3u8_url = av_malloc(m3u8_name_size);
if (!hls->master_m3u8_url) {
ret = AVERROR(ENOMEM);
return ret;
goto fail;
}
av_strlcpy(hls->master_m3u8_url, s->filename, m3u8_name_size);
p = strrchr(hls->master_m3u8_url, '/') ?
strrchr(hls->master_m3u8_url, '/') :
strrchr(hls->master_m3u8_url, '\\');
if (p) {
*(p + 1) = '\0';
av_strlcat(hls->master_m3u8_url, hls->master_pl_name, m3u8_name_size);
} else {
av_strlcpy(hls->master_m3u8_url, hls->master_pl_name, m3u8_name_size);
}
return 0;
fail:
av_freep(&fn);
return ret;
}
static int hls_write_header(AVFormatContext *s)