diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 822f38104fb222da3a251f5439961a40f51ade88..c7b692273fc447b934d57890cb66b80fe0ed2bb9 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -720,8 +720,9 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
                 flv_same_video_codec(st->codec, flags)) {
                 break;
             }
-        } else if (st->id == stream_type) {
-            break;
+        } else if (stream_type == FLV_STREAM_TYPE_DATA) {
+            if (st->codec->codec_type == AVMEDIA_TYPE_DATA)
+                break;
         }
     }
     if(i == s->nb_streams){