From 42c71907cb394f1b35627631fbc1778f338942d2 Mon Sep 17 00:00:00 2001 From: David Conrad Date: Mon, 13 Aug 2007 05:23:38 +0000 Subject: [PATCH] Add av_get_bits_per_sample_format() Originally committed as revision 10099 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/avcodec.h | 12 ++++++++++-- libavcodec/utils.c | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 80eb3e350f..b9e9a20954 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -33,8 +33,8 @@ #define AV_STRINGIFY(s) AV_TOSTRING(s) #define AV_TOSTRING(s) #s -#define LIBAVCODEC_VERSION_INT ((51<<16)+(40<<8)+4) -#define LIBAVCODEC_VERSION 51.40.4 +#define LIBAVCODEC_VERSION_INT ((51<<16)+(41<<8)+0) +#define LIBAVCODEC_VERSION 51.41.0 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) @@ -2706,6 +2706,14 @@ char av_get_pict_type_char(int pict_type); */ int av_get_bits_per_sample(enum CodecID codec_id); +/** + * Returns sample format bits per sample. + * + * @param[in] sample_fmt the sample format + * @return Number of bits per sample or zero if unknown for the given sample format. + */ +int av_get_bits_per_sample_format(enum SampleFormat sample_fmt); + /* frame parsing */ typedef struct AVCodecParserContext { void *priv_data; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 5f10ffbe86..c381f03f20 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1322,6 +1322,22 @@ int av_get_bits_per_sample(enum CodecID codec_id){ } } +int av_get_bits_per_sample_format(enum SampleFormat sample_fmt) { + switch (sample_fmt) { + case SAMPLE_FMT_U8: + return 8; + case SAMPLE_FMT_S16: + return 16; + case SAMPLE_FMT_S24: + return 24; + case SAMPLE_FMT_S32: + case SAMPLE_FMT_FLT: + return 32; + default: + return 0; + } +} + #if !defined(HAVE_THREADS) int avcodec_thread_init(AVCodecContext *s, int thread_count){ return -1;