diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 86560f5cd7..35037979b5 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -1226,6 +1226,16 @@ typedef struct AVCodecContext { */ enum PixelFormat pix_fmt; +#if FF_API_RATE_EMU + /** + * Frame rate emulation. If not zero, the lower layer (i.e. format handler) + * has to read frames at native frame rate. + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int rate_emu; +#endif + /** * If non NULL, 'draw_horiz_band' is called by the libavcodec * decoder to draw a horizontal band. It improves cache usage. Not diff --git a/libavcodec/options.c b/libavcodec/options.c index c8220e43b3..3117bbe1b5 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -105,6 +105,9 @@ static const AVOption options[]={ {"extradata_size", NULL, OFFSET(extradata_size), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX}, {"time_base", NULL, OFFSET(time_base), FF_OPT_TYPE_RATIONAL, DEFAULT, INT_MIN, INT_MAX}, {"g", "set the group of picture size", OFFSET(gop_size), FF_OPT_TYPE_INT, 12, INT_MIN, INT_MAX, V|E}, +#if FF_API_RATE_EMU +{"rate_emu", "frame rate emulation", OFFSET(rate_emu), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX}, +#endif {"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX}, {"ac", "set number of audio channels", OFFSET(channels), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX}, {"cutoff", "set cutoff bandwidth", OFFSET(cutoff), FF_OPT_TYPE_INT, DEFAULT, INT_MIN, INT_MAX, A|E}, diff --git a/libavcodec/version.h b/libavcodec/version.h index b13c953028..56c7a95b0c 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -71,6 +71,9 @@ #ifndef FF_API_OLD_AUDIOCONVERT #define FF_API_OLD_AUDIOCONVERT (LIBAVCODEC_VERSION_MAJOR < 54) #endif +#ifndef FF_API_RATE_EMU +#define FF_API_RATE_EMU (LIBAVCODEC_VERSION_MAJOR < 53) +#endif #ifndef FF_API_MB_Q #define FF_API_MB_Q (LIBAVCODEC_VERSION_MAJOR < 53) #endif