--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2171,8 +2171,10 @@
     HLSContext *c = s->priv_data;
     int ret, i, minplaylist = -1;
 
-    recheck_discard_flags(s, c->first_packet);
-    c->first_packet = 0;
+    if (c->first_packet) {
+        recheck_discard_flags(s, 1);
+        c->first_packet = 0;
+    }
 
     for (i = 0; i < c->n_playlists; i++) {
         struct playlist *pls = c->playlists[i];