]> granicus.if.org Git - libvpx/commitdiff
Replacing CHECK_BOUNDS macro with inline check_bounds function.
authorDmitry Kovalev <dkovalev@google.com>
Wed, 11 Dec 2013 23:00:36 +0000 (15:00 -0800)
committerDmitry Kovalev <dkovalev@google.com>
Wed, 11 Dec 2013 23:00:36 +0000 (15:00 -0800)
Change-Id: I8437113da256088576bf66401186e35125089c03

vp9/encoder/vp9_mcomp.c

index fee11fd2be7f0413209becfcb0ca36477d9ae2e2..aec8de32480418aa5de6d56e9f4759a5332cddd7 100644 (file)
@@ -666,14 +666,12 @@ int vp9_find_best_sub_pixel_comp_tree(MACROBLOCK *x,
 #undef CHECK_BETTER
 #undef SP
 
-#define CHECK_BOUNDS(range) \
-  {\
-    all_in = 1;\
-    all_in &= ((br-range) >= x->mv_row_min);\
-    all_in &= ((br+range) <= x->mv_row_max);\
-    all_in &= ((bc-range) >= x->mv_col_min);\
-    all_in &= ((bc+range) <= x->mv_col_max);\
-  }
+static INLINE int check_bounds(MACROBLOCK *x, int row, int col, int range) {
+  return ((row - range) >= x->mv_row_min) &
+         ((row + range) <= x->mv_row_max) &
+         ((col - range) >= x->mv_col_min) &
+         ((col + range) <= x->mv_col_max);
+}
 
 #define CHECK_POINT \
   {\
@@ -739,7 +737,6 @@ static int vp9_pattern_search(MACROBLOCK *x,
   uint8_t *base_offset;
   uint8_t *this_offset;
   int k = -1;
-  int all_in;
   int best_site = -1;
   int_mv fcenter_mv;
   int best_init_s = search_param_to_steps[search_param];
@@ -771,8 +768,7 @@ static int vp9_pattern_search(MACROBLOCK *x,
     best_init_s = -1;
     for (t = 0; t <= s; ++t) {
       best_site = -1;
-      CHECK_BOUNDS((1 << t))
-      if (all_in) {
+      if (check_bounds(x, br, bc, 1 << t)) {
         for (i = 0; i < num_candidates[t]; i++) {
           this_mv.row = br + candidates[t][i].row;
           this_mv.col = bc + candidates[t][i].col;
@@ -815,8 +811,7 @@ static int vp9_pattern_search(MACROBLOCK *x,
     do {
       // No need to search all 6 points the 1st time if initial search was used
       if (!do_init_search || s != best_init_s) {
-        CHECK_BOUNDS((1 << s))
-        if (all_in) {
+        if (check_bounds(x, br, bc, 1 << s)) {
           for (i = 0; i < num_candidates[s]; i++) {
             this_mv.row = br + candidates[s][i].row;
             this_mv.col = bc + candidates[s][i].col;
@@ -851,10 +846,8 @@ static int vp9_pattern_search(MACROBLOCK *x,
       do {
         int next_chkpts_indices[PATTERN_CANDIDATES_REF];
         best_site = -1;
-        CHECK_BOUNDS((1 << s))
-
         get_next_chkpts(next_chkpts_indices, k, num_candidates[s]);
-        if (all_in) {
+        if (check_bounds(x, br, bc, 1 << s)) {
           for (i = 0; i < PATTERN_CANDIDATES_REF; i++) {
             this_mv.row = br + candidates[s][next_chkpts_indices[i]].row;
             this_mv.col = bc + candidates[s][next_chkpts_indices[i]].col;
@@ -894,8 +887,7 @@ static int vp9_pattern_search(MACROBLOCK *x,
     };
     for (j = 0; j < 16; j++) {
       best_site = -1;
-      CHECK_BOUNDS(1)
-      if (all_in) {
+      if (check_bounds(x, br, bc, 1)) {
         for (i = 0; i < 4; i++) {
           this_mv.row = br + neighbors[i].row;
           this_mv.col = bc + neighbors[i].col;
@@ -1062,7 +1054,6 @@ int vp9_square_search(MACROBLOCK *x,
                             square_num_candidates, square_candidates);
 };
 
-#undef CHECK_BOUNDS
 #undef CHECK_POINT
 #undef CHECK_BETTER