On 29/04/14 11:17, Anton Khirnov wrote:
> The addition of reference-counted frames makes it pointless.
> ---
> doc/APIchanges | 4 ++++
> libavcodec/avcodec.h | 7 ++++---
> libavcodec/mpegvideo_enc.c | 3 +--
> libavcodec/options_table.h | 2 ++
> libavcodec/version.h | 3 +++
> 5 files changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/doc/APIchanges b/doc/APIchanges
> index 28afc9b..10366b0 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -13,6 +13,10 @@ libavutil: 2013-12-xx
>
> API changes, most recent first:
>
> +2014-04-xx - xxxxxxx - avcodec.h
> + Deprecate CODEC_FLAG_INPUT_PRESERVED. Its functionality is replaced by
> passing
> + reference-counted frames to encoders.
> +
> 2014-04-xx - xxxxxxx - lavc 55.50.0 - dxva2.h
> Add FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO for old Intel GPUs.
>
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 2130ea3..919cc76 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -671,12 +671,13 @@ typedef struct RcOverride{
> #define CODEC_FLAG_QPEL 0x0010 ///< Use qpel MC.
> #define CODEC_FLAG_GMC 0x0020 ///< Use GMC.
> #define CODEC_FLAG_MV0 0x0040 ///< Always try a MB with MV=<0,0>.
> +#if FF_API_INPUT_PRESERVED
> /**
> - * The parent program guarantees that the input for B-frames containing
> - * streams is not written to for at least s->max_b_frames+1 frames, if
> - * this is not set the input will be copied.
> + * @deprecated passing reference-counted frames to the encoders replaces this
> + * flag
> */
> #define CODEC_FLAG_INPUT_PRESERVED 0x0100
> +#endif
> #define CODEC_FLAG_PASS1 0x0200 ///< Use internal 2pass
> ratecontrol in first pass mode.
> #define CODEC_FLAG_PASS2 0x0400 ///< Use internal 2pass
> ratecontrol in second pass mode.
> #define CODEC_FLAG_GRAY 0x2000 ///< Only decode/encode
> grayscale.
> diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
> index 9c2b24b..a13ff89 100644
> --- a/libavcodec/mpegvideo_enc.c
> +++ b/libavcodec/mpegvideo_enc.c
> @@ -1081,8 +1081,7 @@ static int estimate_best_b_count(MpegEncContext *s)
>
> c->width = s->width >> scale;
> c->height = s->height >> scale;
> - c->flags = CODEC_FLAG_QSCALE | CODEC_FLAG_PSNR |
> - CODEC_FLAG_INPUT_PRESERVED;
> + c->flags = CODEC_FLAG_QSCALE | CODEC_FLAG_PSNR;
> c->flags |= s->avctx->flags & CODEC_FLAG_QPEL;
> c->mb_decision = s->avctx->mb_decision;
> c->me_cmp = s->avctx->me_cmp;
> diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
> index 1006a86..af06370 100644
> --- a/libavcodec/options_table.h
> +++ b/libavcodec/options_table.h
> @@ -54,7 +54,9 @@ static const AVOption avcodec_options[] = {
> {"qscale", "use fixed qscale", 0, AV_OPT_TYPE_CONST, {.i64 =
> CODEC_FLAG_QSCALE }, INT_MIN, INT_MAX, 0, "flags"},
> {"gmc", "use gmc", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_GMC }, INT_MIN,
> INT_MAX, V|E, "flags"},
> {"mv0", "always try a mb with mv=<0,0>", 0, AV_OPT_TYPE_CONST, {.i64 =
> CODEC_FLAG_MV0 }, INT_MIN, INT_MAX, V|E, "flags"},
> +#if FF_API_INPUT_PRESERVED
> {"input_preserved", NULL, 0, AV_OPT_TYPE_CONST, {.i64 =
> CODEC_FLAG_INPUT_PRESERVED }, INT_MIN, INT_MAX, 0, "flags"},
> +#endif
> {"pass1", "use internal 2-pass ratecontrol in first pass mode", 0,
> AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_PASS1 }, INT_MIN, INT_MAX, 0, "flags"},
> {"pass2", "use internal 2-pass ratecontrol in second pass mode", 0,
> AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_PASS2 }, INT_MIN, INT_MAX, 0, "flags"},
> {"gray", "only decode/encode grayscale", 0, AV_OPT_TYPE_CONST, {.i64 =
> CODEC_FLAG_GRAY }, INT_MIN, INT_MAX, V|E|D, "flags"},
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index d82a068..706f2eb 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -129,5 +129,8 @@
> #ifndef FF_API_ARCH_SPARC
> #define FF_API_ARCH_SPARC (LIBAVCODEC_VERSION_MAJOR < 56)
> #endif
> +#ifndef FF_API_INPUT_PRESERVED
> +#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 56)
If Libav11 will use 56 this should be 57.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel