This will allow audio decoders to support output of different sample formats
as a runtime option.
---
libavcodec/avcodec.h | 7 +++++++
libavcodec/options.c | 6 ++++++
libavcodec/version.h | 2 +-
3 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 7727ad0..af9f6d5 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2850,6 +2850,13 @@ typedef struct AVCodecContext {
* - decoding: Set by libavcodec.
*/
enum AVAudioServiceType audio_service_type;
+
+ /**
+ * Used to request a sample format from the decoder.
+ * - encoding: unused.
+ * - decoding: Set by user.
+ */
+ enum AVSampleFormat request_sample_fmt;
} AVCodecContext;
/**
diff --git a/libavcodec/options.c b/libavcodec/options.c
index 9a9ed7b..963f53b 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -447,6 +447,12 @@ static const AVOption options[]={
{"em", "Emergency", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_EMERGENCY, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"vo", "Voice Over", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_VOICE_OVER, INT_MIN, INT_MAX, A|E, "audio_service_type"},
{"ka", "Karaoke", 0, FF_OPT_TYPE_CONST, AV_AUDIO_SERVICE_TYPE_KARAOKE, INT_MIN, INT_MAX, A|E, "audio_service_type"},
+{"request_sample_fmt", NULL, OFFSET(request_sample_fmt), FF_OPT_TYPE_INT, AV_SAMPLE_FMT_NONE, AV_SAMPLE_FMT_NONE, AV_SAMPLE_FMT_NB-1, A|D, "request_sample_fmt"},
+{"u8" , "8-bit unsigned integer", 0, FF_OPT_TYPE_CONST, AV_SAMPLE_FMT_U8 , INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
+{"s16", "16-bit signed integer", 0, FF_OPT_TYPE_CONST, AV_SAMPLE_FMT_S16, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
+{"s32", "32-bit signed integer", 0, FF_OPT_TYPE_CONST, AV_SAMPLE_FMT_S32, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
+{"flt", "32-bit float", 0, FF_OPT_TYPE_CONST, AV_SAMPLE_FMT_FLT, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
+{"dbl", "64-bit double", 0, FF_OPT_TYPE_CONST, AV_SAMPLE_FMT_DBL, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
{NULL},
};
diff --git a/libavcodec/version.h b/libavcodec/version.h
index b9c219d..487e7a5 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -21,7 +21,7 @@
#define AVCODEC_VERSION_H
#define LIBAVCODEC_VERSION_MAJOR 53
-#define LIBAVCODEC_VERSION_MINOR 0
+#define LIBAVCODEC_VERSION_MINOR 1
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel