Commit c1638bfa authored by Andreas Rheinhardt's avatar Andreas Rheinhardt

avformat/hlsenc: Don't unnecessarily duplicate baseurl string

Up until now, the HLS muxer duplicated a string for every VariantStream,
although neither the original nor the copies are ever modified. So use
the original directly and stop copying.
Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
parent c6e73ad2
...@@ -177,7 +177,6 @@ typedef struct VariantStream { ...@@ -177,7 +177,6 @@ typedef struct VariantStream {
char *agroup; /* audio group name */ char *agroup; /* audio group name */
char *sgroup; /* subtitle group name */ char *sgroup; /* subtitle group name */
char *ccgroup; /* closed caption group name */ char *ccgroup; /* closed caption group name */
char *baseurl;
char *varname; // variant name char *varname; // variant name
} VariantStream; } VariantStream;
...@@ -1525,7 +1524,7 @@ static int hls_window(AVFormatContext *s, int last, VariantStream *vs) ...@@ -1525,7 +1524,7 @@ static int hls_window(AVFormatContext *s, int last, VariantStream *vs)
ret = ff_hls_write_file_entry(byterange_mode ? hls->m3u8_out : vs->out, en->discont, byterange_mode, ret = ff_hls_write_file_entry(byterange_mode ? hls->m3u8_out : vs->out, en->discont, byterange_mode,
en->duration, hls->flags & HLS_ROUND_DURATIONS, en->duration, hls->flags & HLS_ROUND_DURATIONS,
en->size, en->pos, vs->baseurl, en->size, en->pos, hls->baseurl,
en->filename, prog_date_time_p, en->keyframe_size, en->keyframe_pos, hls->flags & HLS_I_FRAMES_ONLY); en->filename, prog_date_time_p, en->keyframe_size, en->keyframe_pos, hls->flags & HLS_I_FRAMES_ONLY);
if (ret < 0) { if (ret < 0) {
av_log(s, AV_LOG_WARNING, "ff_hls_write_file_entry get error\n"); av_log(s, AV_LOG_WARNING, "ff_hls_write_file_entry get error\n");
...@@ -1547,7 +1546,7 @@ static int hls_window(AVFormatContext *s, int last, VariantStream *vs) ...@@ -1547,7 +1546,7 @@ static int hls_window(AVFormatContext *s, int last, VariantStream *vs)
for (en = vs->segments; en; en = en->next) { for (en = vs->segments; en; en = en->next) {
ret = ff_hls_write_file_entry(hls->sub_m3u8_out, 0, byterange_mode, ret = ff_hls_write_file_entry(hls->sub_m3u8_out, 0, byterange_mode,
en->duration, 0, en->size, en->pos, en->duration, 0, en->size, en->pos,
vs->baseurl, en->sub_filename, NULL, 0, 0, 0); hls->baseurl, en->sub_filename, NULL, 0, 0, 0);
if (ret < 0) { if (ret < 0) {
av_log(s, AV_LOG_WARNING, "ff_hls_write_file_entry get error\n"); av_log(s, AV_LOG_WARNING, "ff_hls_write_file_entry get error\n");
} }
...@@ -2581,7 +2580,6 @@ static void hls_deinit(AVFormatContext *s) ...@@ -2581,7 +2580,6 @@ static void hls_deinit(AVFormatContext *s)
av_freep(&vs->sgroup); av_freep(&vs->sgroup);
av_freep(&vs->language); av_freep(&vs->language);
av_freep(&vs->ccgroup); av_freep(&vs->ccgroup);
av_freep(&vs->baseurl);
av_freep(&vs->varname); av_freep(&vs->varname);
} }
...@@ -2956,12 +2954,6 @@ static int hls_init(AVFormatContext *s) ...@@ -2956,12 +2954,6 @@ static int hls_init(AVFormatContext *s)
*p = '.'; *p = '.';
} }
if (hls->baseurl) {
vs->baseurl = av_strdup(hls->baseurl);
if (!vs->baseurl)
return AVERROR(ENOMEM);
}
if ((ret = hls_mux_init(s, vs)) < 0) if ((ret = hls_mux_init(s, vs)) < 0)
return ret; return ret;
......
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