From 89223ef6989fb2da0a7a20009ca4111cbcfaef05 Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier Date: Thu, 5 Jun 2008 01:57:35 +0000 Subject: [PATCH] add esa/dia compat me options and new tesa for libx264 Originally committed as revision 13660 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/avcodec.h | 5 +++-- libavcodec/libx264.c | 2 ++ libavcodec/utils.c | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 43684e876a..001e5c21d9 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -31,7 +31,7 @@ #define LIBAVCODEC_VERSION_MAJOR 51 #define LIBAVCODEC_VERSION_MINOR 57 -#define LIBAVCODEC_VERSION_MICRO 1 +#define LIBAVCODEC_VERSION_MICRO 2 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ @@ -374,6 +374,7 @@ enum Motion_Est_ID { ME_HEX, ///< hexagon based search ME_UMH, ///< uneven multi-hexagon search ME_ITER, ///< iterative search + ME_TESA, ///< thresholded exhaustive search algorithm }; enum AVDiscard{ @@ -840,7 +841,7 @@ typedef struct AVCodecContext { /** * Motion estimation algorithm used for video coding. * 1 (zero), 2 (full), 3 (log), 4 (phods), 5 (epzs), 6 (x1), 7 (hex), - * 8 (umh), 9 (iter) [7, 8 are x264 specific, 9 is snow specific] + * 8 (umh), 9 (iter), 10 (tesa) [7, 8, 10 are x264 specific, 9 is snow specific] * - encoding: MUST be set by user. * - decoding: unused */ diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 78fe81a593..c02a696465 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -220,6 +220,8 @@ X264_init(AVCodecContext *avctx) x4->params.analyse.i_me_method = X264_ME_UMH; else if(avctx->me_method == ME_FULL) x4->params.analyse.i_me_method = X264_ME_ESA; + else if(avctx->me_method == ME_TESA) + x4->params.analyse.i_me_method = X264_ME_TESA; else x4->params.analyse.i_me_method = X264_ME_HEX; x4->params.analyse.i_me_range = avctx->me_range; diff --git a/libavcodec/utils.c b/libavcodec/utils.c index a245b90fc8..1a2dca3ac7 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -424,6 +424,9 @@ static const AVOption options[]={ {"zero", "zero motion estimation (fastest)", 0, FF_OPT_TYPE_CONST, ME_ZERO, INT_MIN, INT_MAX, V|E, "me_method" }, {"full", "full motion estimation (slowest)", 0, FF_OPT_TYPE_CONST, ME_FULL, INT_MIN, INT_MAX, V|E, "me_method" }, {"epzs", "EPZS motion estimation (default)", 0, FF_OPT_TYPE_CONST, ME_EPZS, INT_MIN, INT_MAX, V|E, "me_method" }, +{"esa", "esa motion estimation (alias for full)", 0, FF_OPT_TYPE_CONST, ME_FULL, INT_MIN, INT_MAX, V|E, "me_method" }, +{"tesa", "tesa motion estimation", 0, FF_OPT_TYPE_CONST, ME_TESA, INT_MIN, INT_MAX, V|E, "me_method" }, +{"dia", "dia motion estimation (alias for epzs)", 0, FF_OPT_TYPE_CONST, ME_EPZS, INT_MIN, INT_MAX, V|E, "me_method" }, {"log", "log motion estimation", 0, FF_OPT_TYPE_CONST, ME_LOG, INT_MIN, INT_MAX, V|E, "me_method" }, {"phods", "phods motion estimation", 0, FF_OPT_TYPE_CONST, ME_PHODS, INT_MIN, INT_MAX, V|E, "me_method" }, {"x1", "X1 motion estimation", 0, FF_OPT_TYPE_CONST, ME_X1, INT_MIN, INT_MAX, V|E, "me_method" },