From: Vitor Sessak Date: Wed, 23 Jul 2008 03:55:37 +0000 (+0000) Subject: When picking a "high utility centroid" do not pick one X-Git-Tag: v0.5~3559 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6bf8b047640e9e8af726f21f146876c2c1f26f8d;p=platform%2Fupstream%2Flibav.git When picking a "high utility centroid" do not pick one that has no corresponding points. Not only it is the worst possible pick, but also the code was written without this case in mind. Originally committed as revision 14341 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/elbg.c b/libavcodec/elbg.c index 9f8ed22..d56a0c3 100644 --- a/libavcodec/elbg.c +++ b/libavcodec/elbg.c @@ -105,9 +105,12 @@ static int get_high_utility_cell(elbg_data *elbg) { int i=0; /* Using linear search, do binary if it ever turns to be speed critical */ - int r = av_random(elbg->rand_state)%elbg->utility_inc[elbg->numCB-1]; + int r = av_random(elbg->rand_state)%(elbg->utility_inc[elbg->numCB-1]-1) + 1; while (elbg->utility_inc[i] < r) i++; + + assert(!elbg->cells[i]); + return i; }