make zero motion vector threshold user setable
Originally committed as revision 5348 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									60827a1a80
								
							
						
					
					
						commit
						1dd509b157
					
				@ -1967,6 +1967,14 @@ typedef struct AVCodecContext {
 | 
			
		||||
     * - decoding: unused
 | 
			
		||||
     */
 | 
			
		||||
    int scenechange_factor;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *
 | 
			
		||||
     * note: value depends upon the compare functin used for fullpel ME
 | 
			
		||||
     * - encoding: set by user.
 | 
			
		||||
     * - decoding: unused
 | 
			
		||||
     */
 | 
			
		||||
    int mv0_threshold;
 | 
			
		||||
} AVCodecContext;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
                        (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
 | 
			
		||||
    }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_TOPRIGHT[0]|P_TOPRIGHT[1])==0){
 | 
			
		||||
            *mx_ptr= 0;
 | 
			
		||||
 | 
			
		||||
@ -739,6 +739,7 @@ static AVOption options[]={
 | 
			
		||||
{"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"},
 | 
			
		||||
{"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},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -793,6 +794,7 @@ void avcodec_get_context_defaults(AVCodecContext *s){
 | 
			
		||||
    s->frame_skip_cmp= FF_CMP_DCTMAX;
 | 
			
		||||
    s->nsse_weight= 8;
 | 
			
		||||
    s->sample_fmt= SAMPLE_FMT_S16; // FIXME: set to NONE
 | 
			
		||||
    s->mv0_threshold= 256;
 | 
			
		||||
 | 
			
		||||
    s->intra_quant_bias= FF_DEFAULT_QUANT_BIAS;
 | 
			
		||||
    s->inter_quant_bias= FF_DEFAULT_QUANT_BIAS;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user