From 6484149158b6fc6d13d2b2ef84cb26a2d3275400 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 29 Apr 2014 08:08:43 +0200 Subject: lavc: make the xvid-specific "gmc" flag a private option of libxvid --- libavcodec/avcodec.h | 5 +++++ libavcodec/libxvid.c | 9 ++++++++- libavcodec/options_table.h | 2 ++ libavcodec/version.h | 5 ++++- 4 files changed, 19 insertions(+), 2 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 6c430fecaf..6ffc717b23 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -669,7 +669,12 @@ typedef struct RcOverride{ #define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed / advanced prediction for H.263. #define CODEC_FLAG_OUTPUT_CORRUPT 0x0008 ///< Output even those frames that might be corrupted #define CODEC_FLAG_QPEL 0x0010 ///< Use qpel MC. +#if FF_API_GMC +/** + * @deprecated use the "gmc" private option of the libxvid encoder + */ #define CODEC_FLAG_GMC 0x0020 ///< Use GMC. +#endif #define CODEC_FLAG_MV0 0x0040 ///< Always try a MB with MV=<0,0>. #if FF_API_INPUT_PRESERVED /** diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c index dd68ecaa08..eab61be393 100644 --- a/libavcodec/libxvid.c +++ b/libavcodec/libxvid.c @@ -64,6 +64,7 @@ struct xvid_context { int variance_aq; /**< Variance adaptive quantization */ int ssim; /**< SSIM information display mode */ int ssim_acc; /**< SSIM accuracy. 0: accurate. 4: fast. */ + int gmc; }; /** @@ -416,8 +417,13 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) { } /* Bring in VOL flags from avconv command-line */ +#if FF_API_GMC + if (avctx->flags & CODEC_FLAG_GMC) + x->gmc = 1; +#endif + x->vol_flags = 0; - if( xvid_flags & CODEC_FLAG_GMC ) { + if (x->gmc) { x->vol_flags |= XVID_VOL_GMC; x->me_flags |= XVID_ME_GME_REFINE; } @@ -799,6 +805,7 @@ static const AVOption options[] = { { "avg", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "ssim" }, { "frame", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 2 }, INT_MIN, INT_MAX, VE, "ssim" }, { "ssim_acc", "SSIM accuracy", OFFSET(ssim_acc), AV_OPT_TYPE_INT, { .i64 = 2 }, 0, 4, VE }, + { "gmc", "use GMC", OFFSET(gmc), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE }, { NULL }, }; diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h index b48a4fd543..684286d6f7 100644 --- a/libavcodec/options_table.h +++ b/libavcodec/options_table.h @@ -52,7 +52,9 @@ static const AVOption avcodec_options[] = { {"qpel", "use 1/4-pel motion compensation", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_QPEL }, INT_MIN, INT_MAX, V|E, "flags"}, {"loop", "use loop filter", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_LOOP_FILTER }, INT_MIN, INT_MAX, V|E, "flags"}, {"qscale", "use fixed qscale", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_QSCALE }, INT_MIN, INT_MAX, 0, "flags"}, +#if FF_API_GMC {"gmc", "use gmc", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_GMC }, INT_MIN, INT_MAX, V|E, "flags"}, +#endif {"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"}, diff --git a/libavcodec/version.h b/libavcodec/version.h index f1585420c2..a1d605491f 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #define LIBAVCODEC_VERSION_MAJOR 55 #define LIBAVCODEC_VERSION_MINOR 50 -#define LIBAVCODEC_VERSION_MICRO 1 +#define LIBAVCODEC_VERSION_MICRO 2 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ @@ -135,5 +135,8 @@ #ifndef FF_API_NORMALIZE_AQP #define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 57) #endif +#ifndef FF_API_GMC +#define FF_API_GMC (LIBAVCODEC_VERSION_MAJOR < 57) +#endif #endif /* AVCODEC_VERSION_H */ -- cgit v1.2.3