Commit ac19e63b authored by Aman Gupta's avatar Aman Gupta

avformat/hls: respect http_persistent only for http playlist urls

Fixes a segfault when reading a live playlist (without end tag) from non-http url (like a file on disk).
Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
parent 11f98994
...@@ -725,8 +725,9 @@ static int parse_playlist(HLSContext *c, const char *url, ...@@ -725,8 +725,9 @@ static int parse_playlist(HLSContext *c, const char *url,
struct variant_info variant_info; struct variant_info variant_info;
char tmp_str[MAX_URL_SIZE]; char tmp_str[MAX_URL_SIZE];
struct segment *cur_init_section = NULL; struct segment *cur_init_section = NULL;
int is_http = av_strstart(url, "http", NULL);
if (!in && c->http_persistent && c->playlist_pb) { if (is_http && !in && c->http_persistent && c->playlist_pb) {
in = c->playlist_pb; in = c->playlist_pb;
ret = open_url_keepalive(c->ctx, &c->playlist_pb, url); ret = open_url_keepalive(c->ctx, &c->playlist_pb, url);
if (ret == AVERROR_EXIT) { if (ret == AVERROR_EXIT) {
...@@ -760,7 +761,7 @@ static int parse_playlist(HLSContext *c, const char *url, ...@@ -760,7 +761,7 @@ static int parse_playlist(HLSContext *c, const char *url,
if (ret < 0) if (ret < 0)
return ret; return ret;
if (c->http_persistent) if (is_http && c->http_persistent)
c->playlist_pb = in; c->playlist_pb = in;
else else
close_in = 1; close_in = 1;
......
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