diff --git a/libavformat/smush.c b/libavformat/smush.c
index b164c7516e90eee5a16f2831b416d862f8b82c1f..19ac5d94918b37c10711aeec2189f0900f847aaa 100644
--- a/libavformat/smush.c
+++ b/libavformat/smush.c
@@ -32,8 +32,10 @@ typedef struct {
 
 static int smush_read_probe(AVProbeData *p)
 {
-    if ((AV_RL32(p->buf) == MKTAG('S', 'A', 'N', 'M') ||
-         AV_RL32(p->buf) == MKTAG('A', 'N', 'I', 'M'))) {
+    if (((AV_RL32(p->buf) == MKTAG('S', 'A', 'N', 'M') &&
+          AV_RL32(p->buf + 8) == MKTAG('S', 'H', 'D', 'R')) ||
+         (AV_RL32(p->buf) == MKTAG('A', 'N', 'I', 'M') &&
+          AV_RL32(p->buf + 8) == MKTAG('A', 'H', 'D', 'R')))) {
         return AVPROBE_SCORE_MAX;
     }