diff --git a/libavformat/utils.c b/libavformat/utils.c
index a72f0a482e24f7c98d014c0a97e36028795a2e01..c95aaa2fd656443018fff5cecef2dd3b3f4215c7 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1405,7 +1405,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
             presentation_delayed, delay, av_ts2str(pkt->pts), av_ts2str(pkt->dts), av_ts2str(st->cur_dts));
 
     /* update flags */
-    if (is_intra_only(st->codecpar->codec_id))
+    if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA || is_intra_only(st->codecpar->codec_id))
         pkt->flags |= AV_PKT_FLAG_KEY;
 #if FF_API_CONVERGENCE_DURATION
 FF_DISABLE_DEPRECATION_WARNINGS