diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 43c178ff7e2cc68cf885892cee708a88eb942718..477e04556f0d21a4edf817bfb1c483c2ce06dd5b 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -995,7 +995,7 @@ start_sync:
             goto start_sync;
         }
 
-        n = avi->dv_demux ? 0 : get_stream_idx(d);
+        n = get_stream_idx(d);
 
         if (!((i - avi->last_pkt_pos) & 1) &&
             get_stream_idx(d + 1) < s->nb_streams)
@@ -1007,6 +1007,9 @@ start_sync:
             goto start_sync;
         }
 
+        if (avi->dv_demux && n != 0)
+            continue;
+
         // parse ##dc/##wb
         if (n < s->nb_streams) {
             AVStream *st;