diff --git a/libavformat/ipmovie.c b/libavformat/ipmovie.c
index 4bd3580bc2dba0bf55869050d5fce539b16fb7e7..bd5ec300165f63a326a91d254713ce9e0204a63c 100644
--- a/libavformat/ipmovie.c
+++ b/libavformat/ipmovie.c
@@ -116,6 +116,11 @@ static int load_ipmovie_packet(IPMVEContext *s, AVIOContext *pb,
     int chunk_type;
 
     if (s->audio_chunk_offset) {
+        if (s->audio_type == CODEC_ID_NONE) {
+            av_log(NULL, AV_LOG_ERROR, "Can not read audio packet before"
+                   "audio codec is known\n");
+                return CHUNK_BAD;
+        }
 
         /* adjust for PCM audio by skipping chunk header */
         if (s->audio_type != CODEC_ID_INTERPLAY_DPCM) {