diff --git a/av1/encoder/aq_complexity.c b/av1/encoder/aq_complexity.c
index 83a1b59..054b0e0 100644
--- a/av1/encoder/aq_complexity.c
+++ b/av1/encoder/aq_complexity.c
@@ -139,7 +139,7 @@
                                                     MIN_DEFAULT_LV_THRESH)
                                            : DEFAULT_LV_THRESH;
 
-    av1_setup_src_planes(mb, cpi->Source, mi_row, mi_col);
+    av1_setup_src_planes(mb, cpi->source, mi_row, mi_col);
     logvar = av1_log_block_var(cpi, mb, bs);
 
     segment = AQ_C_SEGMENTS - 1;  // Just in case no break out below.
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 23beab2..1017f2e 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -307,7 +307,7 @@
 #endif
 
   // Set up source buffers.
-  av1_setup_src_planes(x, cpi->Source, mi_row, mi_col);
+  av1_setup_src_planes(x, cpi->source, mi_row, mi_col);
 
   // R/D setup.
   x->rddiv = cpi->rd.RDDIV;
@@ -4778,7 +4778,7 @@
   MACROBLOCKD *const xd = &x->e_mbd;
 
   // Copy data over into macro block data structures.
-  av1_setup_src_planes(x, cpi->Source, 0, 0);
+  av1_setup_src_planes(x, cpi->source, 0, 0);
 
   av1_setup_block_planes(xd, cm->subsampling_x, cm->subsampling_y);
 }
@@ -5168,7 +5168,7 @@
 
 #if CONFIG_GLOBAL_MOTION
   av1_zero(cpi->global_motion_used);
-  if (cpi->common.frame_type == INTER_FRAME && cpi->Source &&
+  if (cpi->common.frame_type == INTER_FRAME && cpi->source &&
       !cpi->global_motion_search_done) {
     YV12_BUFFER_CONFIG *ref_buf;
     int frame;
@@ -5196,7 +5196,7 @@
           }
 
           compute_global_motion_feature_based(
-              model, cpi->Source, ref_buf,
+              model, cpi->source, ref_buf,
 #if CONFIG_HIGHBITDEPTH
               cpi->common.bit_depth,
 #endif  // CONFIG_HIGHBITDEPTH
@@ -5215,9 +5215,9 @@
                   xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH, xd->bd,
 #endif  // CONFIG_HIGHBITDEPTH
                   ref_buf->y_buffer, ref_buf->y_width, ref_buf->y_height,
-                  ref_buf->y_stride, cpi->Source->y_buffer,
-                  cpi->Source->y_width, cpi->Source->y_height,
-                  cpi->Source->y_stride, 3);
+                  ref_buf->y_stride, cpi->source->y_buffer,
+                  cpi->source->y_width, cpi->source->y_height,
+                  cpi->source->y_stride, 3);
               if (erroradv_this_motion < best_erroradvantage) {
                 best_erroradvantage = erroradv_this_motion;
                 // Save the wm_params modified by refine_integerized_param()
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index da363ab..2739adb 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -2717,10 +2717,10 @@
   int i;
   PSNR_STATS psnr;
 #if CONFIG_HIGHBITDEPTH
-  aom_calc_highbd_psnr(cpi->Source, cpi->common.frame_to_show, &psnr,
+  aom_calc_highbd_psnr(cpi->source, cpi->common.frame_to_show, &psnr,
                        cpi->td.mb.e_mbd.bd, cpi->oxcf.input_bit_depth);
 #else
-  aom_calc_psnr(cpi->Source, cpi->common.frame_to_show, &psnr);
+  aom_calc_psnr(cpi->source, cpi->common.frame_to_show, &psnr);
 #endif
 
   for (i = 0; i < 4; ++i) {
@@ -3507,7 +3507,7 @@
 
     aom_usec_timer_start(&timer);
 
-    av1_pick_filter_level(cpi->Source, cpi, cpi->sf.lpf_pick);
+    av1_pick_filter_level(cpi->source, cpi, cpi->sf.lpf_pick);
 
     aom_usec_timer_mark(&timer);
     cpi->time_pick_lpf += aom_usec_timer_elapsed(&timer);
@@ -3532,14 +3532,14 @@
     cm->nb_cdef_strengths = 1;
   } else {
     // Find cm->dering_level, cm->clpf_strength_u and cm->clpf_strength_v
-    av1_cdef_search(cm->frame_to_show, cpi->Source, cm, xd);
+    av1_cdef_search(cm->frame_to_show, cpi->source, cm, xd);
 
     // Apply the filter
     av1_cdef_frame(cm->frame_to_show, cm, xd);
   }
 #endif
 #if CONFIG_LOOP_RESTORATION
-  av1_pick_filter_restoration(cpi->Source, cpi, cpi->sf.lpf_pick);
+  av1_pick_filter_restoration(cpi->source, cpi, cpi->sf.lpf_pick);
   if (cm->rst_info[0].frame_restoration_type != RESTORE_NONE ||
       cm->rst_info[1].frame_restoration_type != RESTORE_NONE ||
       cm->rst_info[2].frame_restoration_type != RESTORE_NONE) {
@@ -3749,7 +3749,7 @@
 
   aom_clear_system_state();
 
-  recon_err = aom_get_y_sse(cpi->Source, get_frame_new_buffer(cm));
+  recon_err = aom_get_y_sse(cpi->source, get_frame_new_buffer(cm));
 
   if (cpi->twopass.total_left_stats.coded_error != 0.0)
     fprintf(f, "%10u %dx%d %d %d %10d %10d %10d %10d"
@@ -4031,16 +4031,16 @@
       cpi->oxcf.resize_mode == RESIZE_DYNAMIC &&
       cpi->un_scaled_source->y_width == (cm->width << 1) &&
       cpi->un_scaled_source->y_height == (cm->height << 1)) {
-    cpi->Source = av1_scale_if_required_fast(cm, cpi->un_scaled_source,
+    cpi->source = av1_scale_if_required_fast(cm, cpi->un_scaled_source,
                                              &cpi->scaled_source);
     if (cpi->unscaled_last_source != NULL)
-      cpi->Last_Source = av1_scale_if_required_fast(
+      cpi->last_source = av1_scale_if_required_fast(
           cm, cpi->unscaled_last_source, &cpi->scaled_last_source);
   } else {
-    cpi->Source =
+    cpi->source =
         av1_scale_if_required(cm, cpi->un_scaled_source, &cpi->scaled_source);
     if (cpi->unscaled_last_source != NULL)
-      cpi->Last_Source = av1_scale_if_required(cm, cpi->unscaled_last_source,
+      cpi->last_source = av1_scale_if_required(cm, cpi->unscaled_last_source,
                                                &cpi->scaled_last_source);
   }
 
@@ -4159,11 +4159,11 @@
                                        &frame_over_shoot_limit);
     }
 
-    cpi->Source =
+    cpi->source =
         av1_scale_if_required(cm, cpi->un_scaled_source, &cpi->scaled_source);
 
     if (cpi->unscaled_last_source != NULL)
-      cpi->Last_Source = av1_scale_if_required(cm, cpi->unscaled_last_source,
+      cpi->last_source = av1_scale_if_required(cm, cpi->unscaled_last_source,
                                                &cpi->scaled_last_source);
 
     if (frame_is_intra_only(cm) == 0) {
@@ -4256,12 +4256,12 @@
 
 #if CONFIG_HIGHBITDEPTH
         if (cm->use_highbitdepth) {
-          kf_err = aom_highbd_get_y_sse(cpi->Source, get_frame_new_buffer(cm));
+          kf_err = aom_highbd_get_y_sse(cpi->source, get_frame_new_buffer(cm));
         } else {
-          kf_err = aom_get_y_sse(cpi->Source, get_frame_new_buffer(cm));
+          kf_err = aom_get_y_sse(cpi->source, get_frame_new_buffer(cm));
         }
 #else
-        kf_err = aom_get_y_sse(cpi->Source, get_frame_new_buffer(cm));
+        kf_err = aom_get_y_sse(cpi->source, get_frame_new_buffer(cm));
 #endif  // CONFIG_HIGHBITDEPTH
 
         // Prevent possible divide by zero error below for perfect KF
@@ -4871,13 +4871,13 @@
       int lsb, msb;
 /* quasi-random initialization of current_frame_id for a key frame */
 #if CONFIG_HIGHBITDEPTH
-      if (cpi->Source->flags & YV12_FLAG_HIGHBITDEPTH) {
-        lsb = CONVERT_TO_SHORTPTR(cpi->Source->y_buffer)[0] & 0xff;
-        msb = CONVERT_TO_SHORTPTR(cpi->Source->y_buffer)[1] & 0xff;
+      if (cpi->source->flags & YV12_FLAG_HIGHBITDEPTH) {
+        lsb = CONVERT_TO_SHORTPTR(cpi->source->y_buffer)[0] & 0xff;
+        msb = CONVERT_TO_SHORTPTR(cpi->source->y_buffer)[1] & 0xff;
       } else {
 #endif
-        lsb = cpi->Source->y_buffer[0] & 0xff;
-        msb = cpi->Source->y_buffer[1] & 0xff;
+        lsb = cpi->source->y_buffer[0] & 0xff;
+        msb = cpi->source->y_buffer[1] & 0xff;
 #if CONFIG_HIGHBITDEPTH
       }
 #endif
@@ -4909,12 +4909,12 @@
 #if CONFIG_HIGHBITDEPTH
     if (cm->use_highbitdepth) {
       cpi->ambient_err =
-          aom_highbd_get_y_sse(cpi->Source, get_frame_new_buffer(cm));
+          aom_highbd_get_y_sse(cpi->source, get_frame_new_buffer(cm));
     } else {
-      cpi->ambient_err = aom_get_y_sse(cpi->Source, get_frame_new_buffer(cm));
+      cpi->ambient_err = aom_get_y_sse(cpi->source, get_frame_new_buffer(cm));
     }
 #else
-    cpi->ambient_err = aom_get_y_sse(cpi->Source, get_frame_new_buffer(cm));
+    cpi->ambient_err = aom_get_y_sse(cpi->source, get_frame_new_buffer(cm));
 #endif  // CONFIG_HIGHBITDEPTH
   }
 
@@ -5391,7 +5391,7 @@
   }
 #endif
   if (cm->show_frame) {
-    const YV12_BUFFER_CONFIG *orig = cpi->Source;
+    const YV12_BUFFER_CONFIG *orig = cpi->source;
     const YV12_BUFFER_CONFIG *recon = cpi->common.frame_to_show;
     double y, u, v, frame_all;
 
@@ -5539,7 +5539,7 @@
       *size = 0;
       return -1;
     }
-    cpi->Source = &source->img;
+    cpi->source = &source->img;
     // TODO(zoeliu): To track down to determine whether it's needed to adjust
     // the frame rate.
     *time_stamp = source->ts_start;
@@ -5661,7 +5661,7 @@
   }
 
   if (source) {
-    cpi->un_scaled_source = cpi->Source =
+    cpi->un_scaled_source = cpi->source =
         force_src_buffer ? force_src_buffer : &source->img;
 
     cpi->unscaled_last_source = last_source != NULL ? &last_source->img : NULL;
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 76edaa7..1a58149 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -363,8 +363,8 @@
   struct lookahead_ctx *lookahead;
   struct lookahead_entry *alt_ref_source;
 
-  YV12_BUFFER_CONFIG *Source;
-  YV12_BUFFER_CONFIG *Last_Source;  // NULL for first frame and alt_ref frames
+  YV12_BUFFER_CONFIG *source;
+  YV12_BUFFER_CONFIG *last_source;  // NULL for first frame and alt_ref frames
   YV12_BUFFER_CONFIG *un_scaled_source;
   YV12_BUFFER_CONFIG scaled_source;
   YV12_BUFFER_CONFIG *unscaled_last_source;
diff --git a/av1/encoder/firstpass.c b/av1/encoder/firstpass.c
index 1fe4e53..270a42d 100644
--- a/av1/encoder/firstpass.c
+++ b/av1/encoder/firstpass.c
@@ -527,7 +527,7 @@
 
   av1_setup_block_planes(&x->e_mbd, cm->subsampling_x, cm->subsampling_y);
 
-  av1_setup_src_planes(x, cpi->Source, 0, 0);
+  av1_setup_src_planes(x, cpi->source, 0, 0);
   av1_setup_dst_planes(xd->plane, new_yv12, 0, 0);
 
   if (!frame_is_intra_only(cm)) {
diff --git a/av1/encoder/mbgraph.c b/av1/encoder/mbgraph.c
index cfef9c0..3e3dfe6 100644
--- a/av1/encoder/mbgraph.c
+++ b/av1/encoder/mbgraph.c
@@ -395,7 +395,7 @@
     assert(q_cur != NULL);
 
     update_mbgraph_frame_stats(cpi, frame_stats, &q_cur->img, golden_ref,
-                               cpi->Source);
+                               cpi->source);
   }
 
   aom_clear_system_state();
