diff --git a/libavcodec/qdrw.c b/libavcodec/qdrw.c
index f7a437711b10516c8f35686705f104a7d01341c5..477175c066d949627086c2cac425957210e58f4c 100644
--- a/libavcodec/qdrw.c
+++ b/libavcodec/qdrw.c
@@ -125,6 +125,10 @@ static int decode_frame(AVCodecContext *avctx,
 
     bytestream2_init(&gbc, avpkt->data, avpkt->size);
 
+    /* PICT images start with a 512 bytes empty header */
+    if (bytestream2_peek_be32(&gbc) == 0)
+        bytestream2_skip(&gbc, 512);
+
     /* smallest PICT header */
     if (bytestream2_get_bytes_left(&gbc) < 40) {
         av_log(avctx, AV_LOG_ERROR, "Frame is too small %d\n",