diff --git a/aom_dsp/psnr.c b/aom_dsp/psnr.c
index de6d922..954e564 100644
--- a/aom_dsp/psnr.c
+++ b/aom_dsp/psnr.c
@@ -26,8 +26,8 @@
 }
 
 /* TODO(yaowu): The block_variance calls the unoptimized versions of variance()
-* and highbd_8_variance(). It should not.
-*/
+ * and highbd_8_variance(). It should not.
+ */
 static void encoder_variance(const uint8_t *a, int a_stride, const uint8_t *b,
                              int b_stride, int w, int h, unsigned int *sse,
                              int *sum) {
diff --git a/aom_dsp/psnr.h b/aom_dsp/psnr.h
index c7f6c45..8300b0a 100644
--- a/aom_dsp/psnr.h
+++ b/aom_dsp/psnr.h
@@ -27,13 +27,13 @@
 } PSNR_STATS;
 
 /*!\brief Converts SSE to PSNR
-*
-* Converts sum of squared errros (SSE) to peak signal-to-noise ratio (PNSR).
-*
-* \param[in]    samples       Number of samples
-* \param[in]    peak          Max sample value
-* \param[in]    sse           Sum of squared errors
-*/
+ *
+ * Converts sum of squared errros (SSE) to peak signal-to-noise ratio (PNSR).
+ *
+ * \param[in]    samples       Number of samples
+ * \param[in]    peak          Max sample value
+ * \param[in]    sse           Sum of squared errors
+ */
 double aom_sse_to_psnr(double samples, double peak, double sse);
 int64_t aom_get_y_sse_part(const YV12_BUFFER_CONFIG *a,
                            const YV12_BUFFER_CONFIG *b, int hstart, int width,
diff --git a/aom_scale/generic/aom_scale.c b/aom_scale/generic/aom_scale.c
index 1e4adad..3045007 100644
--- a/aom_scale/generic/aom_scale.c
+++ b/aom_scale/generic/aom_scale.c
@@ -18,8 +18,8 @@
  ***************************************************************************/
 
 /****************************************************************************
-*  Header Files
-****************************************************************************/
+ *  Header Files
+ ****************************************************************************/
 #include "./aom_scale_rtcd.h"
 #include "aom_mem/aom_mem.h"
 #include "aom_scale/aom_scale.h"
diff --git a/aom_scale/generic/gen_scalers.c b/aom_scale/generic/gen_scalers.c
index 71fa82f..e2c68e0 100644
--- a/aom_scale/generic/gen_scalers.c
+++ b/aom_scale/generic/gen_scalers.c
@@ -13,8 +13,8 @@
 #include "aom_scale/aom_scale.h"
 #include "aom_mem/aom_mem.h"
 /****************************************************************************
-*  Imports
-****************************************************************************/
+ *  Imports
+ ****************************************************************************/
 
 /****************************************************************************
  *
diff --git a/aom_scale/generic/yv12config.c b/aom_scale/generic/yv12config.c
index de9759d..4cb2125 100644
--- a/aom_scale/generic/yv12config.c
+++ b/aom_scale/generic/yv12config.c
@@ -16,8 +16,8 @@
 #include "aom_scale/yv12config.h"
 
 /****************************************************************************
-*  Exports
-****************************************************************************/
+ *  Exports
+ ****************************************************************************/
 
 /****************************************************************************
  *
diff --git a/av1/av1_iface_common.h b/av1/av1_iface_common.h
index eb0ab65..a08f925 100644
--- a/av1/av1_iface_common.h
+++ b/av1/av1_iface_common.h
@@ -15,10 +15,11 @@
 
 static void yuvconfig2image(aom_image_t *img, const YV12_BUFFER_CONFIG *yv12,
                             void *user_priv) {
-  /** aom_img_wrap() doesn't allow specifying independent strides for
-    * the Y, U, and V planes, nor other alignment adjustments that
-    * might be representable by a YV12_BUFFER_CONFIG, so we just
-    * initialize all the fields.*/
+  /* aom_img_wrap() doesn't allow specifying independent strides for
+   * the Y, U, and V planes, nor other alignment adjustments that
+   * might be representable by a YV12_BUFFER_CONFIG, so we just
+   * initialize all the fields.
+   */
   int bps;
   if (!yv12->subsampling_y) {
     if (!yv12->subsampling_x) {
diff --git a/av1/common/thread_common.c b/av1/common/thread_common.c
index 0f8a06e..4eb0112 100644
--- a/av1/common/thread_common.c
+++ b/av1/common/thread_common.c
@@ -314,13 +314,14 @@
   }
 
 // Set up loopfilter thread data.
-// The decoder is capping num_workers because it has been observed that using
-// more threads on the loopfilter than there are cores will hurt performance
-// on Android. This is because the system will only schedule the tile decode
-// workers on cores equal to the number of tile columns. Then if the decoder
-// tries to use more threads for the loopfilter, it will hurt performance
-// because of contention. If the multithreading code changes in the future
-// then the number of workers used by the loopfilter should be revisited.
+// The decoder is capping num_workers because it has been observed that
+// using more threads on the loopfilter than there are cores will hurt
+// performance on Android. This is because the system will only schedule the
+// tile decode workers on cores equal to the number of tile columns. Then if
+// the decoder tries to use more threads for the loopfilter, it will hurt
+// performance because of contention. If the multithreading code changes in
+// the future then the number of workers used by the loopfilter should be
+// revisited.
 
 #if CONFIG_PARALLEL_DEBLOCKING
   // Initialize cur_sb_col to -1 for all SB rows.
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 6a9cf90..298ec46 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -6071,7 +6071,7 @@
 #if CONFIG_REFERENCE_BUFFER
   if (cm->seq_params.frame_id_numbers_present_flag) {
     /* Non-normative definition of current_frame_id ("frame counter" with
-    * wraparound) */
+     * wraparound) */
     const int frame_id_length = FRAME_ID_LENGTH;
     if (cm->current_frame_id == -1) {
       int lsb, msb;
diff --git a/test/accounting_test.cc b/test/accounting_test.cc
index cc5ef3c..8b5c8af 100644
--- a/test/accounting_test.cc
+++ b/test/accounting_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/active_map_refresh_test.cc b/test/active_map_refresh_test.cc
index 184692c..954e3f2 100644
--- a/test/active_map_refresh_test.cc
+++ b/test/active_map_refresh_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <algorithm>
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
diff --git a/test/active_map_test.cc b/test/active_map_test.cc
index 318a851..a2b0546 100644
--- a/test/active_map_test.cc
+++ b/test/active_map_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <climits>
 #include <vector>
diff --git a/test/ans_codec_test.cc b/test/ans_codec_test.cc
index 59d352b..30531e6 100644
--- a/test/ans_codec_test.cc
+++ b/test/ans_codec_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/aq_segment_test.cc b/test/aq_segment_test.cc
index 57db0d0..1e4c044 100644
--- a/test/aq_segment_test.cc
+++ b/test/aq_segment_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "./aom_config.h"
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
diff --git a/test/arf_freq_test.cc b/test/arf_freq_test.cc
index f3cbceb..083f402 100644
--- a/test/arf_freq_test.cc
+++ b/test/arf_freq_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/av1_convolve_2d_test.cc b/test/av1_convolve_2d_test.cc
index aaa2320..a3eb443 100644
--- a/test/av1_convolve_2d_test.cc
+++ b/test/av1_convolve_2d_test.cc
@@ -12,11 +12,11 @@
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 #include "test/av1_convolve_2d_test_util.h"
 
-using std::tr1::tuple;
-using std::tr1::make_tuple;
 using libaom_test::ACMRandom;
 using libaom_test::AV1Convolve2D::AV1Convolve2DTest;
 using libaom_test::AV1Convolve2D::AV1Convolve2DSrTest;
+using std::tr1::make_tuple;
+using std::tr1::tuple;
 #if CONFIG_JNT_COMP
 using libaom_test::AV1Convolve2D::AV1JntConvolve2DTest;
 #endif
diff --git a/test/av1_convolve_2d_test_util.cc b/test/av1_convolve_2d_test_util.cc
index a7fbf7c..cce9922 100644
--- a/test/av1_convolve_2d_test_util.cc
+++ b/test/av1_convolve_2d_test_util.cc
@@ -15,8 +15,8 @@
 #include "av1/common/common_data.h"
 #include "av1/common/convolve.h"
 
-using std::tr1::tuple;
 using std::tr1::make_tuple;
+using std::tr1::tuple;
 
 namespace libaom_test {
 
diff --git a/test/av1_convolve_optimz_test.cc b/test/av1_convolve_optimz_test.cc
index 9e8cc0c..188fa2d 100644
--- a/test/av1_convolve_optimz_test.cc
+++ b/test/av1_convolve_optimz_test.cc
@@ -19,8 +19,8 @@
 
 namespace {
 
-using std::tr1::tuple;
 using libaom_test::ACMRandom;
+using std::tr1::tuple;
 
 typedef void (*conv_filter_t)(const uint8_t *, int, uint8_t *, int, int, int,
                               const InterpFilterParams, int, int,
diff --git a/test/av1_convolve_scale_test.cc b/test/av1_convolve_scale_test.cc
index 78ec988..f776f36 100644
--- a/test/av1_convolve_scale_test.cc
+++ b/test/av1_convolve_scale_test.cc
@@ -33,9 +33,9 @@
 const int kXStepQn = 16;
 const int kYStepQn = 20;
 
-using std::tr1::tuple;
-using std::tr1::make_tuple;
 using libaom_test::ACMRandom;
+using std::tr1::make_tuple;
+using std::tr1::tuple;
 
 enum NTaps { EIGHT_TAP, TEN_TAP, TWELVE_TAP };
 int NTapsToInt(NTaps ntaps) { return 8 + static_cast<int>(ntaps) * 2; }
diff --git a/test/av1_dct_test.cc b/test/av1_dct_test.cc
index 6432b97..c8a474f 100644
--- a/test/av1_dct_test.cc
+++ b/test/av1_dct_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/av1_fht16x16_test.cc b/test/av1_fht16x16_test.cc
index 810abba..93440f7 100644
--- a/test/av1_fht16x16_test.cc
+++ b/test/av1_fht16x16_test.cc
@@ -27,8 +27,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht16x16Param;
 
 void fht16x16_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht16x32_test.cc b/test/av1_fht16x32_test.cc
index e6b960a..871dc8b 100644
--- a/test/av1_fht16x32_test.cc
+++ b/test/av1_fht16x32_test.cc
@@ -28,8 +28,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht16x32Param;
 
 void fht16x32_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht16x8_test.cc b/test/av1_fht16x8_test.cc
index 91cb69c..b32cf8e 100644
--- a/test/av1_fht16x8_test.cc
+++ b/test/av1_fht16x8_test.cc
@@ -27,8 +27,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht16x8Param;
 
 void fht16x8_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht32x16_test.cc b/test/av1_fht32x16_test.cc
index 603f711..177ddf2 100644
--- a/test/av1_fht32x16_test.cc
+++ b/test/av1_fht32x16_test.cc
@@ -28,8 +28,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht32x16Param;
 
 void fht32x16_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht32x32_test.cc b/test/av1_fht32x32_test.cc
index 2f65495..2fc4db8 100644
--- a/test/av1_fht32x32_test.cc
+++ b/test/av1_fht32x32_test.cc
@@ -26,8 +26,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht32x32Param;
 
 void fht32x32_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht4x4_test.cc b/test/av1_fht4x4_test.cc
index 80750c9..91c9798 100644
--- a/test/av1_fht4x4_test.cc
+++ b/test/av1_fht4x4_test.cc
@@ -27,8 +27,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht4x4Param;
 
 void fht4x4_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht4x8_test.cc b/test/av1_fht4x8_test.cc
index 6adada5..00a2916 100644
--- a/test/av1_fht4x8_test.cc
+++ b/test/av1_fht4x8_test.cc
@@ -27,8 +27,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht4x8Param;
 
 void fht4x8_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht64x64_test.cc b/test/av1_fht64x64_test.cc
index 04e2686..d833324 100644
--- a/test/av1_fht64x64_test.cc
+++ b/test/av1_fht64x64_test.cc
@@ -27,8 +27,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht64x64Param;
 
 void fht64x64_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht8x16_test.cc b/test/av1_fht8x16_test.cc
index c7e6160..a706a98 100644
--- a/test/av1_fht8x16_test.cc
+++ b/test/av1_fht8x16_test.cc
@@ -26,8 +26,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht8x16Param;
 
 void fht8x16_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fht8x4_test.cc b/test/av1_fht8x4_test.cc
index b221e61..6806edb 100644
--- a/test/av1_fht8x4_test.cc
+++ b/test/av1_fht8x4_test.cc
@@ -26,8 +26,8 @@
 namespace {
 typedef void (*IhtFunc)(const tran_low_t *in, uint8_t *out, int stride,
                         const TxfmParam *txfm_param);
-using std::tr1::tuple;
 using libaom_test::FhtFunc;
+using std::tr1::tuple;
 typedef tuple<FhtFunc, IhtFunc, TX_TYPE, aom_bit_depth_t, int> Ht8x4Param;
 
 void fht8x4_ref(const int16_t *in, tran_low_t *out, int stride,
diff --git a/test/av1_fwd_txfm1d_test.cc b/test/av1_fwd_txfm1d_test.cc
index f957e71..ccd083f 100644
--- a/test/av1_fwd_txfm1d_test.cc
+++ b/test/av1_fwd_txfm1d_test.cc
@@ -13,12 +13,12 @@
 #include "test/av1_txfm_test.h"
 
 using libaom_test::ACMRandom;
+using libaom_test::TYPE_ADST;
+using libaom_test::TYPE_DCT;
+using libaom_test::TYPE_IDTX;
+using libaom_test::TYPE_TXFM;
 using libaom_test::input_base;
 using libaom_test::reference_hybrid_1d;
-using libaom_test::TYPE_TXFM;
-using libaom_test::TYPE_DCT;
-using libaom_test::TYPE_ADST;
-using libaom_test::TYPE_IDTX;
 
 namespace {
 const int txfm_type_num = 3;
diff --git a/test/av1_fwd_txfm2d_test.cc b/test/av1_fwd_txfm2d_test.cc
index 1e75736..6136b6b 100644
--- a/test/av1_fwd_txfm2d_test.cc
+++ b/test/av1_fwd_txfm2d_test.cc
@@ -21,11 +21,11 @@
 #include "./av1_rtcd.h"
 
 using libaom_test::ACMRandom;
-using libaom_test::input_base;
-using libaom_test::bd;
-using libaom_test::compute_avg_abs_error;
 using libaom_test::Fwd_Txfm2d_Func;
 using libaom_test::TYPE_TXFM;
+using libaom_test::bd;
+using libaom_test::compute_avg_abs_error;
+using libaom_test::input_base;
 
 using std::vector;
 
diff --git a/test/av1_highbd_iht_test.cc b/test/av1_highbd_iht_test.cc
index b0358a4..fd33650 100644
--- a/test/av1_highbd_iht_test.cc
+++ b/test/av1_highbd_iht_test.cc
@@ -22,8 +22,8 @@
 
 namespace {
 
-using std::tr1::tuple;
 using libaom_test::ACMRandom;
+using std::tr1::tuple;
 
 typedef void (*HbdHtFunc)(const int16_t *input, int32_t *output, int stride,
                           TX_TYPE tx_type, int bd);
diff --git a/test/av1_inv_txfm2d_test.cc b/test/av1_inv_txfm2d_test.cc
index fd7ed86..af70722 100644
--- a/test/av1_inv_txfm2d_test.cc
+++ b/test/av1_inv_txfm2d_test.cc
@@ -21,11 +21,11 @@
 #include "av1/common/av1_inv_txfm1d_cfg.h"
 
 using libaom_test::ACMRandom;
-using libaom_test::input_base;
-using libaom_test::bd;
-using libaom_test::compute_avg_abs_error;
 using libaom_test::Fwd_Txfm2d_Func;
 using libaom_test::Inv_Txfm2d_Func;
+using libaom_test::bd;
+using libaom_test::compute_avg_abs_error;
+using libaom_test::input_base;
 
 using std::vector;
 
diff --git a/test/av1_inv_txfm_test.cc b/test/av1_inv_txfm_test.cc
index f1a6afa..1d3811e 100644
--- a/test/av1_inv_txfm_test.cc
+++ b/test/av1_inv_txfm_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/avg_test.cc b/test/avg_test.cc
index e83a75c..b682428 100644
--- a/test/avg_test.cc
+++ b/test/avg_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <limits.h>
 #include <stdio.h>
diff --git a/test/binary_codes_test.cc b/test/binary_codes_test.cc
index 42610ea..7203966 100644
--- a/test/binary_codes_test.cc
+++ b/test/binary_codes_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/boolcoder_test.cc b/test/boolcoder_test.cc
index ef4ee50..1ab768d 100644
--- a/test/boolcoder_test.cc
+++ b/test/boolcoder_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/borders_test.cc b/test/borders_test.cc
index 55712f0..893237e 100644
--- a/test/borders_test.cc
+++ b/test/borders_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <climits>
 #include <vector>
diff --git a/test/cdef_test.cc b/test/cdef_test.cc
index 2453f73..ebab196 100644
--- a/test/cdef_test.cc
+++ b/test/cdef_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <cstdlib>
 #include <string>
diff --git a/test/convolve_test.cc b/test/convolve_test.cc
index 0462e13..1e0b5ad 100644
--- a/test/convolve_test.cc
+++ b/test/convolve_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string.h>
 
diff --git a/test/corner_match_test.cc b/test/corner_match_test.cc
index 2197fff..b24f140 100644
--- a/test/corner_match_test.cc
+++ b/test/corner_match_test.cc
@@ -24,8 +24,8 @@
 
 using libaom_test::ACMRandom;
 
-using std::tr1::tuple;
 using std::tr1::make_tuple;
+using std::tr1::tuple;
 typedef tuple<int> CornerMatchParam;
 
 class AV1CornerMatchTest : public ::testing::TestWithParam<CornerMatchParam> {
diff --git a/test/cpu_speed_test.cc b/test/cpu_speed_test.cc
index bde0047..8ea3e69 100644
--- a/test/cpu_speed_test.cc
+++ b/test/cpu_speed_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 #include "test/codec_factory.h"
diff --git a/test/datarate_test.cc b/test/datarate_test.cc
index d577be3..9d723c8 100644
--- a/test/datarate_test.cc
+++ b/test/datarate_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "./aom_config.h"
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
diff --git a/test/dct16x16_test.cc b/test/dct16x16_test.cc
index 3e5c4ee..5ae7d69 100644
--- a/test/dct16x16_test.cc
+++ b/test/dct16x16_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/dct32x32_test.cc b/test/dct32x32_test.cc
index 97a705c..290d069 100644
--- a/test/dct32x32_test.cc
+++ b/test/dct32x32_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/decode_api_test.cc b/test/decode_api_test.cc
index 187c8e0..9eb34b8 100644
--- a/test/decode_api_test.cc
+++ b/test/decode_api_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/decode_perf_test.cc b/test/decode_perf_test.cc
index a24d02a..0e54b88 100644
--- a/test/decode_perf_test.cc
+++ b/test/decode_perf_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string>
 #include "test/codec_factory.h"
diff --git a/test/decode_test_driver.cc b/test/decode_test_driver.cc
index 9a46532..4d5e8f7 100644
--- a/test/decode_test_driver.cc
+++ b/test/decode_test_driver.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/encode_api_test.cc b/test/encode_api_test.cc
index 80c42fe..31aedca 100644
--- a/test/encode_api_test.cc
+++ b/test/encode_api_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/encode_perf_test.cc b/test/encode_perf_test.cc
index 5a37b48..9f3d753 100644
--- a/test/encode_perf_test.cc
+++ b/test/encode_perf_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string>
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
diff --git a/test/encode_test_driver.cc b/test/encode_test_driver.cc
index 92849ba..5a23e23 100644
--- a/test/encode_test_driver.cc
+++ b/test/encode_test_driver.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string>
 
diff --git a/test/encoder_parms_get_to_decoder.cc b/test/encoder_parms_get_to_decoder.cc
index 749a667..671cf99 100644
--- a/test/encoder_parms_get_to_decoder.cc
+++ b/test/encoder_parms_get_to_decoder.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/end_to_end_test.cc b/test/end_to_end_test.cc
index 709ffa7..1e8bd31 100644
--- a/test/end_to_end_test.cc
+++ b/test/end_to_end_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/error_block_test.cc b/test/error_block_test.cc
index 3f626a1..0b1052f 100644
--- a/test/error_block_test.cc
+++ b/test/error_block_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <cmath>
 #include <cstdlib>
diff --git a/test/error_resilience_test.cc b/test/error_resilience_test.cc
index e9abdde..f3a9a22 100644
--- a/test/error_resilience_test.cc
+++ b/test/error_resilience_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 #include "test/codec_factory.h"
diff --git a/test/ethread_test.cc b/test/ethread_test.cc
index e6e011e..ed003d4 100644
--- a/test/ethread_test.cc
+++ b/test/ethread_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string>
 #include <vector>
diff --git a/test/fdct4x4_test.cc b/test/fdct4x4_test.cc
index 669c40a..8d5ce9b 100644
--- a/test/fdct4x4_test.cc
+++ b/test/fdct4x4_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/frame_size_tests.cc b/test/frame_size_tests.cc
index 442f252..eaf0b83 100644
--- a/test/frame_size_tests.cc
+++ b/test/frame_size_tests.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 #include "test/codec_factory.h"
diff --git a/test/hbd_metrics_test.cc b/test/hbd_metrics_test.cc
index 4def53b..992a2fd 100644
--- a/test/hbd_metrics_test.cc
+++ b/test/hbd_metrics_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/hiprec_convolve_test.cc b/test/hiprec_convolve_test.cc
index 177fba2..3f351b7 100644
--- a/test/hiprec_convolve_test.cc
+++ b/test/hiprec_convolve_test.cc
@@ -12,11 +12,11 @@
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 #include "test/hiprec_convolve_test_util.h"
 
-using std::tr1::tuple;
-using std::tr1::make_tuple;
 using libaom_test::ACMRandom;
-using libaom_test::AV1HiprecConvolve::AV1HiprecConvolveTest;
 using libaom_test::AV1HighbdHiprecConvolve::AV1HighbdHiprecConvolveTest;
+using libaom_test::AV1HiprecConvolve::AV1HiprecConvolveTest;
+using std::tr1::make_tuple;
+using std::tr1::tuple;
 
 namespace {
 
diff --git a/test/hiprec_convolve_test_util.cc b/test/hiprec_convolve_test_util.cc
index fe4cae0..dff14e2 100644
--- a/test/hiprec_convolve_test_util.cc
+++ b/test/hiprec_convolve_test_util.cc
@@ -13,8 +13,8 @@
 
 #include "av1/common/restoration.h"
 
-using std::tr1::tuple;
 using std::tr1::make_tuple;
+using std::tr1::tuple;
 
 namespace libaom_test {
 
diff --git a/test/idct8x8_test.cc b/test/idct8x8_test.cc
index f99a407..fc3d04b 100644
--- a/test/idct8x8_test.cc
+++ b/test/idct8x8_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/intrapred_test.cc b/test/intrapred_test.cc
index dfd7913..203cc53 100644
--- a/test/intrapred_test.cc
+++ b/test/intrapred_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string>
 
@@ -170,7 +170,7 @@
       &aom_highbd_##type##_predictor_##width##x##height##_c, width, height, \
       bd)
 
-/*
+#if 0
 #define highbd_intrapred(type, opt, bd)                                       \
   highbd_entry(type, 4, 4, opt, bd), highbd_entry(type, 4, 8, opt, bd),       \
       highbd_entry(type, 8, 4, opt, bd), highbd_entry(type, 8, 8, opt, bd),   \
@@ -178,7 +178,7 @@
       highbd_entry(type, 16, 16, opt, bd),                                    \
       highbd_entry(type, 16, 32, opt, bd),                                    \
       highbd_entry(type, 32, 16, opt, bd), highbd_entry(type, 32, 32, opt, bd)
-*/
+#endif
 
 #if HAVE_SSE2
 const IntraPredFunc<HighbdIntraPred> IntraPredTestVector8[] = {
diff --git a/test/lossless_test.cc b/test/lossless_test.cc
index f4978fe..2e1aca6 100644
--- a/test/lossless_test.cc
+++ b/test/lossless_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/lpf_test.cc b/test/lpf_test.cc
index 7da4111..7c54f93 100644
--- a/test/lpf_test.cc
+++ b/test/lpf_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <cmath>
 #include <cstdlib>
diff --git a/test/motion_vector_test.cc b/test/motion_vector_test.cc
index 5e21583..c067e92 100644
--- a/test/motion_vector_test.cc
+++ b/test/motion_vector_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/partial_idct_test.cc b/test/partial_idct_test.cc
index 13249a6..1089bab 100644
--- a/test/partial_idct_test.cc
+++ b/test/partial_idct_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <math.h>
 #include <stdlib.h>
diff --git a/test/resize_test.cc b/test/resize_test.cc
index 0b0915e..0b5586e 100644
--- a/test/resize_test.cc
+++ b/test/resize_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <climits>
 #include <vector>
diff --git a/test/sad_test.cc b/test/sad_test.cc
index 003e42a..40cb9e6 100644
--- a/test/sad_test.cc
+++ b/test/sad_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string.h>
 #include <limits.h>
diff --git a/test/selfguided_filter_test.cc b/test/selfguided_filter_test.cc
index 12aeb8e..345baac 100644
--- a/test/selfguided_filter_test.cc
+++ b/test/selfguided_filter_test.cc
@@ -25,9 +25,9 @@
 
 namespace {
 
-using std::tr1::tuple;
-using std::tr1::make_tuple;
 using libaom_test::ACMRandom;
+using std::tr1::make_tuple;
+using std::tr1::tuple;
 
 typedef void (*SgrFunc)(const uint8_t *dat8, int width, int height, int stride,
                         int eps, const int *xqd, uint8_t *dst8, int dst_stride,
diff --git a/test/simd_cmp_impl.h b/test/simd_cmp_impl.h
index a425834..94122e0 100644
--- a/test/simd_cmp_impl.h
+++ b/test/simd_cmp_impl.h
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <assert.h>
 #include <string>
diff --git a/test/simd_impl.h b/test/simd_impl.h
index c3dfbc4..55cd087 100644
--- a/test/simd_impl.h
+++ b/test/simd_impl.h
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #define SIMD_CHECK 1
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
diff --git a/test/subtract_test.cc b/test/subtract_test.cc
index de1097c..47bd259 100644
--- a/test/subtract_test.cc
+++ b/test/subtract_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 
diff --git a/test/superframe_test.cc b/test/superframe_test.cc
index 1b5bfa3..306d0f7 100644
--- a/test/superframe_test.cc
+++ b/test/superframe_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <climits>
 #include <vector>
diff --git a/test/test_intra_pred_speed.cc b/test/test_intra_pred_speed.cc
index 6bbf29b..6dd3ce7 100644
--- a/test/test_intra_pred_speed.cc
+++ b/test/test_intra_pred_speed.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 //  Test and time AOM intra-predictor functions
 
diff --git a/test/test_libaom.cc b/test/test_libaom.cc
index 534d964..5aa497c 100644
--- a/test/test_libaom.cc
+++ b/test/test_libaom.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string.h>
 
diff --git a/test/tile_independence_test.cc b/test/tile_independence_test.cc
index 260aa42..2ce5ec3 100644
--- a/test/tile_independence_test.cc
+++ b/test/tile_independence_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <cstdio>
 #include <cstdlib>
diff --git a/test/user_priv_test.cc b/test/user_priv_test.cc
index da289c9..3aeb8b1 100644
--- a/test/user_priv_test.cc
+++ b/test/user_priv_test.cc
@@ -28,8 +28,8 @@
 
 namespace {
 
-using std::string;
 using libaom_test::ACMRandom;
+using std::string;
 
 #if CONFIG_WEBM_IO
 
diff --git a/test/variance_test.cc b/test/variance_test.cc
index b614104..cf63109 100644
--- a/test/variance_test.cc
+++ b/test/variance_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <cstdlib>
 #include <new>
diff --git a/test/warp_filter_test.cc b/test/warp_filter_test.cc
index 3330162..f3a7a46 100644
--- a/test/warp_filter_test.cc
+++ b/test/warp_filter_test.cc
@@ -12,11 +12,11 @@
 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
 #include "test/warp_filter_test_util.h"
 
-using std::tr1::tuple;
-using std::tr1::make_tuple;
 using libaom_test::ACMRandom;
-using libaom_test::AV1WarpFilter::AV1WarpFilterTest;
 using libaom_test::AV1HighbdWarpFilter::AV1HighbdWarpFilterTest;
+using libaom_test::AV1WarpFilter::AV1WarpFilterTest;
+using std::tr1::make_tuple;
+using std::tr1::tuple;
 
 namespace {
 
diff --git a/test/y4m_test.cc b/test/y4m_test.cc
index fc9fff5..ad901d9 100644
--- a/test/y4m_test.cc
+++ b/test/y4m_test.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include <string>
 
diff --git a/webmdec.cc b/webmdec.cc
index 39ecef7..da44940 100644
--- a/webmdec.cc
+++ b/webmdec.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "./webmdec.h"
 
diff --git a/webmenc.cc b/webmenc.cc
index e3d209a..5e0f7a7 100644
--- a/webmenc.cc
+++ b/webmenc.cc
@@ -7,7 +7,7 @@
  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
  * Media Patent License 1.0 was not distributed with this source code in the
  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
-*/
+ */
 
 #include "./webmenc.h"
 
diff --git a/y4minput.c b/y4minput.c
index e009042..0a6c27a 100644
--- a/y4minput.c
+++ b/y4minput.c
@@ -125,8 +125,8 @@
   The number of taps is intentionally kept small to reduce computational
    overhead and limit ringing.
 
-  The taps from these filters are scaled so that their sum is 1, and the result
-   is scaled by 128 and rounded to integers to create a filter whose
+  The taps from these filters are scaled so that their sum is 1, and the
+  result is scaled by 128 and rounded to integers to create a filter whose
    intermediate values fit inside 16 bits.
   Coefficients are rounded in such a way as to ensure their sum is still 128,
    which is usually equivalent to normal rounding.
