diff --git a/libavformat/riff.c b/libavformat/riff.c
index ffa35566a9802f7bebf89e2d4c15e5e1885ee3bf..0a2a77cb7c1f7a89e347c87b91aaa916bd0c9cc9 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -364,7 +364,7 @@ int put_wav_header(ByteIOContext *pb, AVCodecContext *enc)
     } else if (enc->codec_id == CODEC_ID_ADPCM_IMA_WAV) {
         put_le16(pb, 2); /* wav_extra_size */
         hdrsize += 2;
-        put_le16(pb, ((enc->block_align - 4 * enc->channels) / (4 * enc->channels)) * 8 + 1); /* wSamplesPerBlock */
+        put_le16(pb, enc->frame_size); /* wSamplesPerBlock */
     } else if(enc->extradata_size){
         put_le16(pb, enc->extradata_size);
         put_buffer(pb, enc->extradata, enc->extradata_size);