]> granicus.if.org Git - libvpx/commitdiff
Replacing memcpy with struct assignment.
authorDmitry Kovalev <dkovalev@google.com>
Fri, 31 May 2013 23:00:32 +0000 (16:00 -0700)
committerDmitry Kovalev <dkovalev@google.com>
Fri, 31 May 2013 23:00:32 +0000 (16:00 -0700)
Change-Id: Ib557cc6351404b9e178e95a545883eb3666f11f0

vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_rdopt.c

index 714a1bf5cdde40d4f32f9aa5ca043aa254fb5b36..d1666df2a20aa68101f7c08fe65d1569f6ef9192 100644 (file)
@@ -356,8 +356,7 @@ static void update_state(VP9_COMP *cpi,
       if ((xd->mb_to_right_edge >> (3 + LOG2_MI_SIZE)) + bw > x_idx &&
           (xd->mb_to_bottom_edge >> (3 + LOG2_MI_SIZE)) + bh > y) {
         MODE_INFO *mi_addr = xd->mode_info_context + x_idx + y * mis;
-
-        vpx_memcpy(mi_addr, mi, sizeof(MODE_INFO));
+        *mi_addr = *mi;
       }
     }
   }
@@ -367,15 +366,10 @@ static void update_state(VP9_COMP *cpi,
     ctx->txfm_rd_diff[ALLOW_32X32] = ctx->txfm_rd_diff[ALLOW_16X16];
   }
 
-  if (mbmi->ref_frame != INTRA_FRAME &&
-      mbmi->sb_type < BLOCK_SIZE_SB8X8) {
-    vpx_memcpy(x->partition_info, &ctx->partition_info,
-               sizeof(PARTITION_INFO));
-
-    mbmi->mv[0].as_int =
-        x->partition_info->bmi[3].mv.as_int;
-    mbmi->mv[1].as_int =
-        x->partition_info->bmi[3].second_mv.as_int;
+  if (mbmi->ref_frame != INTRA_FRAME && mbmi->sb_type < BLOCK_SIZE_SB8X8) {
+    *x->partition_info = ctx->partition_info;
+    mbmi->mv[0].as_int = x->partition_info->bmi[3].mv.as_int;
+    mbmi->mv[1].as_int = x->partition_info->bmi[3].second_mv.as_int;
   }
 
   x->skip = ctx->skip;
index f57c8be6c5c9cf7175a2a26f32ccfa80fb847931..b07e37d7ac836dda30e8b4510b140aa449bf69e0 100644 (file)
@@ -746,9 +746,7 @@ void vp9_first_pass(VP9_COMP *cpi) {
                             - cpi->source->ts_start);
 
     // don't want to do output stats with a stack variable!
-    memcpy(&cpi->twopass.this_frame_stats,
-           &fps,
-           sizeof(FIRSTPASS_STATS));
+    cpi->twopass.this_frame_stats = fps;
     output_stats(cpi, cpi->output_pkt_list, &cpi->twopass.this_frame_stats);
     accumulate_stats(&cpi->twopass.total_stats, &fps);
   }
@@ -1673,7 +1671,7 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) {
       break;
     }
 
-    vpx_memcpy(this_frame, &next_frame, sizeof(*this_frame));
+    *this_frame = next_frame;
 
     old_boost_score = boost_score;
   }
@@ -2107,14 +2105,14 @@ void vp9_second_pass(VP9_COMP *cpi) {
   // keyframe and section processing !
   if (cpi->twopass.frames_to_key == 0) {
     // Define next KF group and assign bits to it
-    vpx_memcpy(&this_frame_copy, &this_frame, sizeof(this_frame));
+    this_frame_copy = this_frame;
     find_next_key_frame(cpi, &this_frame_copy);
   }
 
   // Is this a GF / ARF (Note that a KF is always also a GF)
   if (cpi->frames_till_gf_update_due == 0) {
     // Define next gf group and assign bits to it
-    vpx_memcpy(&this_frame_copy, &this_frame, sizeof(this_frame));
+    this_frame_copy = this_frame;
 
 #if CONFIG_MULTIPLE_ARF
     if (cpi->multi_arf_enabled) {
@@ -2136,14 +2134,14 @@ void vp9_second_pass(VP9_COMP *cpi) {
       // Assign a standard frames worth of bits from those allocated
       // to the GF group
       int bak = cpi->per_frame_bandwidth;
-      vpx_memcpy(&this_frame_copy, &this_frame, sizeof(this_frame));
+      this_frame_copy = this_frame;
       assign_std_frame_bits(cpi, &this_frame_copy);
       cpi->per_frame_bandwidth = bak;
     }
   } else {
     // Otherwise this is an ordinary frame
     // Assign bits from those allocated to the GF group
-    vpx_memcpy(&this_frame_copy, &this_frame, sizeof(this_frame));
+    this_frame_copy =  this_frame;
     assign_std_frame_bits(cpi, &this_frame_copy);
   }
 
@@ -2201,7 +2199,7 @@ static int test_candidate_kf(VP9_COMP *cpi,
     double decay_accumulator = 1.0;
     double next_iiratio;
 
-    vpx_memcpy(&local_next_frame, next_frame, sizeof(*next_frame));
+    local_next_frame = *next_frame;
 
     // Note the starting file position so we can reset to it
     start_pos = cpi->twopass.stats_in;
@@ -2294,7 +2292,7 @@ static void find_next_key_frame(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) {
   cpi->twopass.frames_to_key = 1;
 
   // Take a copy of the initial frame details
-  vpx_memcpy(&first_frame, this_frame, sizeof(*this_frame));
+  first_frame = *this_frame;
 
   cpi->twopass.kf_group_bits = 0;        // Total bits available to kf group
   cpi->twopass.kf_group_error_left = 0;  // Group modified error score.
@@ -2313,7 +2311,7 @@ static void find_next_key_frame(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) {
     kf_group_coded_err += this_frame->coded_error;
 
     // load a the next frame's stats
-    vpx_memcpy(&last_frame, this_frame, sizeof(*this_frame));
+    last_frame = *this_frame;
     input_stats(cpi, this_frame);
 
     // Provided that we are not at the end of the file...
@@ -2366,7 +2364,7 @@ static void find_next_key_frame(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) {
     cpi->twopass.frames_to_key /= 2;
 
     // Copy first frame details
-    vpx_memcpy(&tmp_frame, &first_frame, sizeof(first_frame));
+    tmp_frame = first_frame;
 
     // Reset to the start of the group
     reset_fpf_position(cpi, start_position);
index 6a6473a569aff10ade8f268efe26793bf0f33550..58420da12ed103e42b869c8a47e66b2abb169d44 100644 (file)
@@ -1719,11 +1719,11 @@ static void store_coding_context(MACROBLOCK *x, PICK_MODE_CONTEXT *ctx,
   // restored if we decide to encode this way
   ctx->skip = x->skip;
   ctx->best_mode_index = mode_index;
-  vpx_memcpy(&ctx->mic, xd->mode_info_context,
-             sizeof(MODE_INFO));
+  ctx->mic = *xd->mode_info_context;
+
   if (partition)
-    vpx_memcpy(&ctx->partition_info, partition,
-               sizeof(PARTITION_INFO));
+    ctx->partition_info = *partition;
+
   ctx->best_ref_mv.as_int = ref_mv->as_int;
   ctx->second_best_ref_mv.as_int = second_ref_mv->as_int;
 
@@ -2443,7 +2443,7 @@ void vp9_rd_pick_intra_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
     xd->mode_info_context->mbmi.mode = mode;
   }
 
-  vpx_memcpy(&ctx->mic, xd->mode_info_context, sizeof(MODE_INFO));
+  ctx->mic = *xd->mode_info_context;
 }
 
 int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
@@ -2811,12 +2811,10 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
               tmp_best_ratey = rate_y;
               tmp_best_distortion = distortion;
               tmp_best_skippable = skippable;
-              vpx_memcpy(&tmp_best_mbmode, mbmi, sizeof(MB_MODE_INFO));
-              vpx_memcpy(&tmp_best_partition, x->partition_info,
-                         sizeof(PARTITION_INFO));
-              for (i = 0; i < 4; i++) {
+              tmp_best_mbmode = *mbmi;
+              tmp_best_partition = *x->partition_info;
+              for (i = 0; i < 4; i++)
                 tmp_best_bmodes[i] = xd->mode_info_context->bmi[i];
-              }
               pred_exists = 1;
             }
       }  // switchable_filter_index loop
@@ -2844,12 +2842,10 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
         rate_y = tmp_best_ratey;
         distortion = tmp_best_distortion;
         skippable = tmp_best_skippable;
-        vpx_memcpy(mbmi, &tmp_best_mbmode, sizeof(MB_MODE_INFO));
-        vpx_memcpy(x->partition_info, &tmp_best_partition,
-                   sizeof(PARTITION_INFO));
-        for (i = 0; i < 4; i++) {
+        *mbmi = tmp_best_mbmode;
+        *x->partition_info = tmp_best_partition;
+        for (i = 0; i < 4; i++)
           xd->mode_info_context->bmi[i] = tmp_best_bmodes[i];
-        }
       }
 
       rate2 += rate;
@@ -3003,14 +2999,12 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
         *returnrate = rate2;
         *returndistortion = distortion2;
         best_rd = this_rd;
-        vpx_memcpy(&best_mbmode, mbmi, sizeof(MB_MODE_INFO));
-        vpx_memcpy(&best_partition, x->partition_info, sizeof(PARTITION_INFO));
+        best_mbmode = *mbmi;
+        best_partition = *x->partition_info;
 
-        if (this_mode == I4X4_PRED || this_mode == SPLITMV) {
-          for (i = 0; i < 4; i++) {
+        if (this_mode == I4X4_PRED || this_mode == SPLITMV)
+          for (i = 0; i < 4; i++)
             best_bmodes[i] = xd->mode_info_context->bmi[i];
-          }
-        }
       }
 #if 0
       // Testing this mode gave rise to an improvement in best error score.
@@ -3167,12 +3161,11 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
   }
 
   // macroblock modes
-  vpx_memcpy(mbmi, &best_mbmode, sizeof(MB_MODE_INFO));
+  *mbmi = best_mbmode;
   if (best_mbmode.ref_frame == INTRA_FRAME &&
       best_mbmode.sb_type < BLOCK_SIZE_SB8X8) {
-    for (i = 0; i < 4; i++) {
+    for (i = 0; i < 4; i++)
       xd->mode_info_context->bmi[i].as_mode = best_bmodes[i].as_mode;
-    }
   }
 
   if (best_mbmode.ref_frame != INTRA_FRAME &&
@@ -3180,12 +3173,13 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
     for (i = 0; i < 4; i++)
       xd->mode_info_context->bmi[i].as_mv[0].as_int =
           best_bmodes[i].as_mv[0].as_int;
+
     if (mbmi->second_ref_frame > 0)
       for (i = 0; i < 4; i++)
         xd->mode_info_context->bmi[i].as_mv[1].as_int =
             best_bmodes[i].as_mv[1].as_int;
 
-    vpx_memcpy(x->partition_info, &best_partition, sizeof(PARTITION_INFO));
+    *x->partition_info = best_partition;
 
     mbmi->mv[0].as_int = x->partition_info->bmi[3].mv.as_int;
     mbmi->mv[1].as_int = x->partition_info->bmi[3].second_mv.as_int;