This code could be executed if the demuxer reads more than one segment before returning from av_open_input_stream. --- libavformat/applehttp.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c index 243f4a6..35759be 100644 --- a/libavformat/applehttp.c +++ b/libavformat/applehttp.c @@ -309,10 +309,13 @@ reload: c->end_of_segment = 1; c->cur_seq_no = v->cur_seq_no; - v->needed = 0; - for (i = v->stream_offset; i < v->stream_offset + v->ctx->nb_streams; i++) { - if (v->parent->streams[i]->discard < AVDISCARD_ALL) - v->needed = 1; + if (v->ctx) { + v->needed = 0; + for (i = v->stream_offset; i < v->stream_offset + v->ctx->nb_streams; + i++) { + if (v->parent->streams[i]->discard < AVDISCARD_ALL) + v->needed = 1; + } } if (!v->needed) { av_log(v->parent, AV_LOG_INFO, "No longer receiving variant %d\n", -- 1.7.3.1 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel