|
|
@@ -1946,6 +1946,7 @@ static int hls_read_header(AVFormatContext *s) |
|
|
|
/* Open the demuxer for each playlist */ |
|
|
|
for (i = 0; i < c->n_playlists; i++) { |
|
|
|
struct playlist *pls = c->playlists[i]; |
|
|
|
char *url; |
|
|
|
ff_const59 AVInputFormat *in_fmt = NULL; |
|
|
|
|
|
|
|
if (!(pls->ctx = avformat_alloc_context())) { |
|
|
@@ -1983,8 +1984,9 @@ static int hls_read_header(AVFormatContext *s) |
|
|
|
read_data, NULL, NULL); |
|
|
|
pls->ctx->probesize = s->probesize > 0 ? s->probesize : 1024 * 4; |
|
|
|
pls->ctx->max_analyze_duration = s->max_analyze_duration > 0 ? s->max_analyze_duration : 4 * AV_TIME_BASE; |
|
|
|
ret = av_probe_input_buffer(&pls->pb, &in_fmt, pls->segments[0]->url, |
|
|
|
NULL, 0, 0); |
|
|
|
url = av_strdup(pls->segments[0]->url); |
|
|
|
ret = av_probe_input_buffer(&pls->pb, &in_fmt, url, NULL, 0, 0); |
|
|
|
av_free(url); |
|
|
|
if (ret < 0) { |
|
|
|
/* Free the ctx - it isn't initialized properly at this point, |
|
|
|
* so avformat_close_input shouldn't be called. If |
|
|
|