- Please use AVCodecContext's me_method now.
Originally committed as revision 399 to svn://svn.ffmpeg.org/ffmpeg/trunk
static int video_qdiff = 3;
static float video_qblur = 0.5;
static float video_qcomp = 0.5;
-static int motion_estimation_method = 0;
+static int me_method = 0;
static int video_disable = 0;
static int video_codec_id = CODEC_ID_NONE;
static int same_quality = 0;
break;
p++;
}
- motion_estimation_method = (p - motion_str) - 4;
+ me_method = (p - motion_str) + 1;
}
void opt_video_codec(const char *arg)
else
video_enc->get_psnr = 0;
- video_enc->me_method = motion_estimation_method;
+ video_enc->me_method = me_method;
/* XXX: need to find a way to set codec parameters */
if (oc->format == &ppm_format ||
pp = motion_str;
while (*pp) {
printf(" %s", *pp);
- if ((pp - motion_str - 4) == ME_ZERO)
+ if ((pp - motion_str + 1) == ME_ZERO)
printf("(fastest)");
- else if ((pp - motion_str - 4) == ME_FULL)
+ else if ((pp - motion_str + 1) == ME_FULL)
printf("(slowest)");
- else if ((pp - motion_str - 4) == ME_EPZS)
+ else if ((pp - motion_str + 1) == ME_EPZS)
printf("(default)");
pp++;
}
/* motion estimation type, EPZS by default */
enum Motion_Est_ID {
- ME_ZERO = -4,
+ ME_ZERO = 1,
ME_FULL,
ME_LOG,
ME_PHODS,
ME_X1
};
+/* only for ME compatiblity with old apps */
+extern int motion_estimation_method;
+
/* ME algos sorted by quality */
static const int Motion_Est_QTab[] = { -4, -1, -2, 1, 0, -3 };
//#define DEBUG
+
/* for jpeg fast DCT */
#define CONST_BITS 14
static UINT16 default_mv_penalty[MAX_FCODE+1][MAX_MV*2+1];
static UINT8 default_fcode_tab[MAX_MV*2+1];
-/* default motion estimation */
-int motion_estimation_method = ME_LOG;
-
extern UINT8 zigzag_end[64];
+/* default motion estimation */
+int motion_estimation_method = ME_EPZS;
+
static void convert_matrix(int *qmat, UINT16 *qmat16, const UINT16 *quant_matrix, int qscale)
{
int i;
}
/* ME algorithm */
- s->me_method = avctx->me_method;
+ if (avctx->me_method == 0)
+ /* For compatibility */
+ s->me_method = motion_estimation_method;
+ else
+ s->me_method = avctx->me_method;
+
/* Fixed QSCALE */
s->fixed_qscale = (avctx->flags & CODEC_FLAG_QSCALE);
mpeg1_encode_init(s);
/* dont use mv_penalty table for crap MV as it would be confused */
- if (s->me_method < 0) s->mv_penalty = default_mv_penalty;
+ if (s->me_method < 5) s->mv_penalty = default_mv_penalty;
s->encoding = 1;
}
/* find best f_code for ME which do unlimited searches */
- if(s->pict_type == P_TYPE && s->me_method >= 0){
+ if(s->pict_type == P_TYPE && s->me_method >= 5){
int mv_num[8];
int i;
int loose=0;