hls: Don't check discard flags until the parent demuxer's streams actually exist
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 13 Aug 2012 18:37:04 +0000 (20:37 +0200)
committerMartin Storsjö <martin@martin.st>
Mon, 29 Jul 2013 06:50:05 +0000 (09:50 +0300)
If passing the end of one segment while initializing the
chained demuxer, the parent demuxer's streams aren't set up
yet, so we can't recheck the discard flags.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/hls.c

index b9b1fea..213b717 100644 (file)
@@ -427,7 +427,8 @@ reload:
     c->end_of_segment = 1;
     c->cur_seq_no = v->cur_seq_no;
 
-    if (v->ctx && v->ctx->nb_streams) {
+    if (v->ctx && v->ctx->nb_streams &&
+        v->parent->nb_streams >= v->stream_offset + v->ctx->nb_streams) {
         v->needed = 0;
         for (i = v->stream_offset; i < v->stream_offset + v->ctx->nb_streams;
              i++) {