diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index 2bfa5ce..c531339 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -196,10 +196,14 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb,
             st->need_parsing = AVSTREAM_PARSE_HEADERS;
         case AV_CODEC_ID_ATRAC3:
         case AV_CODEC_ID_SIPR:
+            if (read_all) {
+                codecdata_length = 0;
+            } else {
             avio_rb16(pb); avio_r8(pb);
             if (version == 5)
                 avio_r8(pb);
             codecdata_length = avio_rb32(pb);
+            }
             if(codecdata_length + FF_INPUT_BUFFER_PADDING_SIZE <= (unsigned)codecdata_length){
                 av_log(s, AV_LOG_ERROR, "codecdata_length too large\n");
                 return -1;
