diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index b8eef3de25..62f6565217 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2251,6 +2251,14 @@ typedef struct AVCodecContext { * - decoding: Set by user. */ int64_t reordered_opaque; + + /** + * Bits per sample/pixel of internal libavcodec pixel/sample format. + * This field is applicable only when sample_fmt is SAMPLE_FMT_S32. + * - encoding: set by user. + * - decoding: set by libavcodec. + */ + int bits_per_raw_sample; } AVCodecContext; /** diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 83c4de2261..b13cf377cd 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -741,6 +741,7 @@ static const AVOption options[]={ {"request_channels", "set desired number of audio channels", OFFSET(request_channels), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, A|D}, {"drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), FF_OPT_TYPE_FLOAT, 1.0, 0.0, 1.0, A|D}, {"reservoir", "use bit reservoir", 0, FF_OPT_TYPE_CONST, CODEC_FLAG2_BIT_RESERVOIR, INT_MIN, INT_MAX, A|E, "flags2"}, +{"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX}, {NULL}, };