diff --git a/libavcodec/s302m.c b/libavcodec/s302m.c
index daccbaf242ec53b245d91b158e9646c35df82e07..5cf9eb5b1d8d0f2e2ad137f2b028a0f78c386a67 100644
--- a/libavcodec/s302m.c
+++ b/libavcodec/s302m.c
@@ -85,7 +85,6 @@ static int s302m_parse_frame_header(AVCodecContext *avctx, const uint8_t *buf,
         case 8:
             avctx->channel_layout = AV_CH_LAYOUT_5POINT1_BACK | AV_CH_LAYOUT_STEREO_DOWNMIX;
     }
-    avctx->sample_rate = 48000;
     avctx->bit_rate    = 48000 * avctx->channels * (avctx->bits_per_raw_sample + 4) +
                          32 * (48000 / (buf_size * 8 /
                                         (avctx->channels *
@@ -197,6 +196,8 @@ static int s302m_decode_frame(AVCodecContext *avctx, void *data,
         }
     }
 
+    avctx->sample_rate = 48000;
+
     *got_frame_ptr = 1;
 
     return avpkt->size;