if (vard <= 64<<8 || vard < varc) { //FIXME
c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc);
}else{
- c->scene_change_score+= s->qscale;
+ c->scene_change_score+= s->qscale * s->avctx->scenechange_factor;
}
return;
}
if (vard <= 64<<8 || vard < varc)
c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc);
else
- c->scene_change_score+= s->qscale;
+ c->scene_change_score+= s->qscale * s->avctx->scenechange_factor;
if(mb_type == CANDIDATE_MB_TYPE_INTER){
c->sub_motion_search(s, &mx, &my, dmin, 0, 0, 0, 16);
if (vard <= 64<<8 || vard < varc)
c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc);
else
- c->scene_change_score+= s->qscale;
+ c->scene_change_score+= s->qscale * s->avctx->scenechange_factor;
if (vard*2 + 200*256 > varc)
mb_type|= CANDIDATE_MB_TYPE_INTRA;
if (vard <= 64<<8 || vard < varc) { //FIXME
c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc);
}else{
- c->scene_change_score+= s->qscale;
+ c->scene_change_score+= s->qscale * s->avctx->scenechange_factor;
}
}
/* if (vard <= 64<<8 || vard < varc) {
c->scene_change_score+= ff_sqrt(vard) - ff_sqrt(varc);
}else{
- c->scene_change_score+= s->qscale;
+ c->scene_change_score+= s->qscale * s->avctx->scenechange_factor;
}*/
return;
}
{"partp4x4", NULL, 0, FF_OPT_TYPE_CONST, X264_PART_P4X4, 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"},
+{"sc_factor", NULL, OFFSET(scenechange_factor), FF_OPT_TYPE_INT, 6, 0, INT_MAX, V|E},
{NULL},
};