diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c
index 2a7d252c67aa6606fbcca2fa1c020ee41d3f9a56..8dac0c17b136eeb8155c04d1cb81aebee04e82a8 100644
--- a/libavcodec/libopencore-amr.c
+++ b/libavcodec/libopencore-amr.c
@@ -31,7 +31,8 @@ static void amr_decode_fix_avctx(AVCodecContext *avctx)
 {
     const int is_amr_wb = 1 + (avctx->codec_id == AV_CODEC_ID_AMR_WB);
 
-    avctx->sample_rate = 8000 * is_amr_wb;
+    if (!avctx->sample_rate)
+        avctx->sample_rate = 8000 * is_amr_wb;
 
     if (avctx->channels > 1) {
         av_log_missing_feature(avctx, "multi-channel AMR", 0);