diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 6691089e1f1daa262e313469f5db2777fb40dfaf..b8eef3de25cea77ba838d50da1bb335a05dfe6ff 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1430,7 +1430,11 @@ typedef struct AVCodecContext {
      * - encoding: Set by libavcodec.
      * - decoding: Set by user.
      */
+#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
      int bits_per_sample;
+#else
+     int bits_per_coded_sample;
+#endif
 
     /**
      * prediction method (needed for huffyuv)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index fa5bf1a894d9a67ce2a7dcefb70a0d8a11a02b4d..83c4de22618f2adc1d704c1b15b82099a7212eff 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -568,7 +568,11 @@ static const AVOption options[]={
 {"ec", "set error concealment strategy", OFFSET(error_concealment), FF_OPT_TYPE_FLAGS, 3, INT_MIN, INT_MAX, V|D, "ec"},
 {"guess_mvs", "iterative motion vector (MV) search (slow)", 0, FF_OPT_TYPE_CONST, FF_EC_GUESS_MVS, INT_MIN, INT_MAX, V|D, "ec"},
 {"deblock", "use strong deblock filter for damaged MBs", 0, FF_OPT_TYPE_CONST, FF_EC_DEBLOCK, INT_MIN, INT_MAX, V|D, "ec"},
+#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
 {"bits_per_sample", NULL, OFFSET(bits_per_sample), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX},
+#else
+{"bits_per_coded_sample", NULL, OFFSET(bits_per_coded_sample), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX},
+#endif
 {"pred", "prediction method", OFFSET(prediction_method), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, V|E, "pred"},
 {"left", NULL, 0, FF_OPT_TYPE_CONST, FF_PRED_LEFT, INT_MIN, INT_MAX, V|E, "pred"},
 {"plane", NULL, 0, FF_OPT_TYPE_CONST, FF_PRED_PLANE, INT_MIN, INT_MAX, V|E, "pred"},