diff --git a/libavformat/hls.c b/libavformat/hls.c
index ff95519fb3b14576c3df30b0904fb482732de87b..3c073e0c28471fab75b6583e236a04e4f42a410c 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -1602,6 +1602,7 @@ static int hls_read_packet(AVFormatContext *s, AVPacket *pkt)
     int ret, i, minplaylist = -1;
 
     recheck_discard_flags(s, c->first_packet);
+    c->first_packet = 0;
 
     for (i = 0; i < c->n_playlists; i++) {
         struct playlist *pls = c->playlists[i];