Make type conversions explicit

This fixes a number of MSVC compiler warnings.

Change-Id: I046afb92f9350a534e66220846bd32e1701f4e87
diff --git a/aom_dsp/noise_model.c b/aom_dsp/noise_model.c
index 6c0cf62..a1287f7 100644
--- a/aom_dsp/noise_model.c
+++ b/aom_dsp/noise_model.c
@@ -1341,7 +1341,7 @@
   int init_success = 1;
   aom_flat_block_finder_t block_finder_full;
   aom_flat_block_finder_t block_finder_chroma;
-  const float kBlockNormalization = (1 << bit_depth) - 1;
+  const float kBlockNormalization = (float)((1 << bit_depth) - 1);
   if (chroma_sub[0] != chroma_sub[1]) {
     fprintf(stderr,
             "aom_wiener_denoise_2d doesn't handle different chroma "
diff --git a/av1/common/av1_txfm.c b/av1/common/av1_txfm.c
index 9b2f5f9..1e66541 100644
--- a/av1/common/av1_txfm.c
+++ b/av1/common/av1_txfm.c
@@ -78,7 +78,7 @@
       }
     } else {
       for (i = 0; i < size; i++) {
-        arr[i] = (int32_t)clamp64((int64_t)arr[i] * (1 << (-bit)), INT32_MIN,
+        arr[i] = (int32_t)clamp64(((int64_t)1 << (-bit)) * arr[i], INT32_MIN,
                                   INT32_MAX);
       }
     }
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 37f2c2b..33ee8c6 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -604,8 +604,8 @@
     double dist_mean = 0;
     const int train_num = data_num;
     for (int i = 0; i < train_num; ++i) {
-      const double sse = inter_mode_data_sse[block_idx][i];
-      const double dist = inter_mode_data_dist[block_idx][i];
+      const double sse = (double)inter_mode_data_sse[block_idx][i];
+      const double dist = (double)inter_mode_data_dist[block_idx][i];
       const double residue_cost = inter_mode_data_residue_cost[block_idx][i];
       const double ld = (sse - dist) / residue_cost;
       dist_mean += dist;
diff --git a/examples/lightfield_bitstream_parsing.c b/examples/lightfield_bitstream_parsing.c
index d8ece41..5a6c5ba 100644
--- a/examples/lightfield_bitstream_parsing.c
+++ b/examples/lightfield_bitstream_parsing.c
@@ -183,8 +183,8 @@
     size_t obu_size_offset =
         (uint8_t *)frame_header_info.coded_tile_data - frame;
     size_t length_field_size = frame_header_info.coded_tile_data_size;
-    uint32_t frame_header_size =
-        frame_header_info.extra_size - 1;  // Remove ext-tile tile info.
+    // Remove ext-tile tile info.
+    uint32_t frame_header_size = (uint32_t)frame_header_info.extra_size - 1;
     size_t bytes_to_copy =
         obu_size_offset + length_field_size + frame_header_size;
 
diff --git a/test/noise_model_test.cc b/test/noise_model_test.cc
index 26c4aa6..9b7fff8 100644
--- a/test/noise_model_test.cc
+++ b/test/noise_model_test.cc
@@ -1296,8 +1296,9 @@
     std::vector<double> measured_noise(kWidth * kHeight);
 
     double var = 0;
-    for (int x = 0; x<kWidth>> (c > 0); ++x) {
-      for (int y = 0; y<kHeight>> (c > 0); ++y) {
+    const int shift = (c > 0);
+    for (int x = 0; x < (kWidth >> shift); ++x) {
+      for (int y = 0; y < (kHeight >> shift); ++y) {
         const double diff = this->denoised_[c][y * this->stride_[c] + x] -
                             x * this->kScaleNoise;
         var += diff * diff;
@@ -1316,9 +1317,10 @@
                 measured_psd_d.begin());
       std::copy(this->noise_psd_[0].begin(), this->noise_psd_[0].end(),
                 noise_psd_d.begin());
-      EXPECT_LT(aom_normalized_cross_correlation(
-                    &measured_psd_d[0], &noise_psd_d[0], noise_psd_d.size()),
-                0.35);
+      EXPECT_LT(
+          aom_normalized_cross_correlation(&measured_psd_d[0], &noise_psd_d[0],
+                                           (int)(noise_psd_d.size())),
+          0.35);
     }
   }
 }