Commit 22e908e3 authored by michael's avatar michael

make zero motion vector threshold user setable


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@5348 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent dee6624d
...@@ -1967,6 +1967,14 @@ typedef struct AVCodecContext { ...@@ -1967,6 +1967,14 @@ typedef struct AVCodecContext {
* - decoding: unused * - decoding: unused
*/ */
int scenechange_factor; int scenechange_factor;
/**
*
* note: value depends upon the compare functin used for fullpel ME
* - encoding: set by user.
* - decoding: unused
*/
int mv0_threshold;
} AVCodecContext; } AVCodecContext;
/** /**
......
...@@ -896,7 +896,8 @@ static always_inline int epzs_motion_search_internal(MpegEncContext * s, int *mx ...@@ -896,7 +896,8 @@ static always_inline int epzs_motion_search_internal(MpegEncContext * s, int *mx
CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16, CHECK_CLIPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16,
(last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16) (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
}else{ }else{
if(dmin<h*h && ( P_LEFT[0] |P_LEFT[1] if(dmin<((h*h*s->avctx->mv0_threshold)>>8)
&& ( P_LEFT[0] |P_LEFT[1]
|P_TOP[0] |P_TOP[1] |P_TOP[0] |P_TOP[1]
|P_TOPRIGHT[0]|P_TOPRIGHT[1])==0){ |P_TOPRIGHT[0]|P_TOPRIGHT[1])==0){
*mx_ptr= 0; *mx_ptr= 0;
......
...@@ -739,6 +739,7 @@ static AVOption options[]={ ...@@ -739,6 +739,7 @@ static AVOption options[]={
{"partp8x8", NULL, 0, FF_OPT_TYPE_CONST, X264_PART_P8X8, INT_MIN, INT_MAX, V|E, "partitions"}, {"partp8x8", NULL, 0, FF_OPT_TYPE_CONST, X264_PART_P8X8, INT_MIN, INT_MAX, V|E, "partitions"},
{"partb8x8", NULL, 0, FF_OPT_TYPE_CONST, X264_PART_B8X8, INT_MIN, INT_MAX, V|E, "partitions"}, {"partb8x8", NULL, 0, FF_OPT_TYPE_CONST, X264_PART_B8X8, INT_MIN, INT_MAX, V|E, "partitions"},
{"sc_factor", NULL, OFFSET(scenechange_factor), FF_OPT_TYPE_INT, 6, 0, INT_MAX, V|E}, {"sc_factor", NULL, OFFSET(scenechange_factor), FF_OPT_TYPE_INT, 6, 0, INT_MAX, V|E},
{"mv0_threshold", NULL, OFFSET(mv0_threshold), FF_OPT_TYPE_INT, 256, 0, INT_MAX, V|E},
{NULL}, {NULL},
}; };
...@@ -793,6 +794,7 @@ void avcodec_get_context_defaults(AVCodecContext *s){ ...@@ -793,6 +794,7 @@ void avcodec_get_context_defaults(AVCodecContext *s){
s->frame_skip_cmp= FF_CMP_DCTMAX; s->frame_skip_cmp= FF_CMP_DCTMAX;
s->nsse_weight= 8; s->nsse_weight= 8;
s->sample_fmt= SAMPLE_FMT_S16; // FIXME: set to NONE s->sample_fmt= SAMPLE_FMT_S16; // FIXME: set to NONE
s->mv0_threshold= 256;
s->intra_quant_bias= FF_DEFAULT_QUANT_BIAS; s->intra_quant_bias= FF_DEFAULT_QUANT_BIAS;
s->inter_quant_bias= FF_DEFAULT_QUANT_BIAS; s->inter_quant_bias= FF_DEFAULT_QUANT_BIAS;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment