diff --git a/webrtc/common_audio/resampler/include/resampler.h b/webrtc/common_audio/resampler/include/resampler.h
index ee0065e..4f57031 100644
--- a/webrtc/common_audio/resampler/include/resampler.h
+++ b/webrtc/common_audio/resampler/include/resampler.h
@@ -111,6 +111,6 @@
     Resampler* slave_right_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_RESAMPLER_RESAMPLER_H_
diff --git a/webrtc/common_audio/resampler/resampler.cc b/webrtc/common_audio/resampler/resampler.cc
index df2a547..071e551 100644
--- a/webrtc/common_audio/resampler/resampler.cc
+++ b/webrtc/common_audio/resampler/resampler.cc
@@ -1081,4 +1081,4 @@
     }
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/common_video/interface/video_image.h b/webrtc/common_video/interface/video_image.h
index 2a7c445..a7b65fd 100644
--- a/webrtc/common_video/interface/video_image.h
+++ b/webrtc/common_video/interface/video_image.h
@@ -64,6 +64,6 @@
     bool                        _completeFrame;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // COMMON_VIDEO_INTERFACE_VIDEO_IMAGE_H
diff --git a/webrtc/common_video/jpeg/data_manager.cc b/webrtc/common_video/jpeg/data_manager.cc
index 72380e7..80971f9 100644
--- a/webrtc/common_video/jpeg/data_manager.cc
+++ b/webrtc/common_video/jpeg/data_manager.cc
@@ -83,4 +83,4 @@
   //
 }
 
-} // end of namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/common_video/jpeg/data_manager.h b/webrtc/common_video/jpeg/data_manager.h
index 61609ec..8c56978 100644
--- a/webrtc/common_video/jpeg/data_manager.h
+++ b/webrtc/common_video/jpeg/data_manager.h
@@ -62,7 +62,7 @@
 void
 termSource (j_decompress_ptr cinfo);
 
-} // end of namespace webrtc
+}  // namespace webrtc
 
 
 #endif /* WEBRTC_COMMON_VIDEO_JPEG_DATA_MANAGER */
diff --git a/webrtc/modules/audio_coding/main/source/acm_dtmf_detection.h b/webrtc/modules/audio_coding/main/source/acm_dtmf_detection.h
index cd265fe..43a9047 100644
--- a/webrtc/modules/audio_coding/main/source/acm_dtmf_detection.h
+++ b/webrtc/modules/audio_coding/main/source/acm_dtmf_detection.h
@@ -33,6 +33,6 @@
   ACMResampler resampler_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_AUDIO_CODING_MAIN_SOURCE_ACM_DTMF_DETECTION_H_
diff --git a/webrtc/modules/audio_coding/main/source/acm_isac_macros.h b/webrtc/modules/audio_coding/main/source/acm_isac_macros.h
index 99d7084..6ae4526 100644
--- a/webrtc/modules/audio_coding/main/source/acm_isac_macros.h
+++ b/webrtc/modules/audio_coding/main/source/acm_isac_macros.h
@@ -67,7 +67,7 @@
 #define ACM_ISAC_GETDECSAMPRATE    ACMISACFixGetDecSampRate  // local Impl
 #endif
 
-}  //namespace
+}  // namespace
 
 #endif  // WEBRTC_MODULES_AUDIO_CODING_MAIN_SOURCE_ACM_ISAC_MACROS_H_
 
diff --git a/webrtc/modules/audio_coding/neteq/test/NetEqRTPplay.cc b/webrtc/modules/audio_coding/neteq/test/NetEqRTPplay.cc
index 3ad8e05..b3003ed 100644
--- a/webrtc/modules/audio_coding/neteq/test/NetEqRTPplay.cc
+++ b/webrtc/modules/audio_coding/neteq/test/NetEqRTPplay.cc
@@ -1269,7 +1269,7 @@
         }
 
         n = fscanf(ptypeFile, "%s %i\n", codec, &pt);
-    } // end while
+    }  // end while
 
 }
 
diff --git a/webrtc/modules/audio_coding/neteq/test/RTPencode.cc b/webrtc/modules/audio_coding/neteq/test/RTPencode.cc
index 45313be..a5e65b6 100644
--- a/webrtc/modules/audio_coding/neteq/test/RTPencode.cc
+++ b/webrtc/modules/audio_coding/neteq/test/RTPencode.cc
@@ -1571,7 +1571,7 @@
         if (ok != 0) {
             return(ok);
         }
-    } // end for
+    }  // end for
 
     return(0);
 }			
@@ -1974,7 +1974,7 @@
         encoded += cdlen;
         totalLen += cdlen;
 
-    } // end for
+    }  // end for
 
 	first_cng=1;
 	return(totalLen);
diff --git a/webrtc/modules/audio_coding/neteq4/test/RTPencode.cc b/webrtc/modules/audio_coding/neteq4/test/RTPencode.cc
index 2c38556..370fc05 100644
--- a/webrtc/modules/audio_coding/neteq4/test/RTPencode.cc
+++ b/webrtc/modules/audio_coding/neteq4/test/RTPencode.cc
@@ -1383,7 +1383,7 @@
         if (ok != 0) {
             return(ok);
         }
-    } // end for
+    }  // end for
 
     return(0);
 }			
@@ -1669,7 +1669,7 @@
         encoded += cdlen;
         totalLen += cdlen;
 
-    } // end for
+    }  // end for
 
 	first_cng=1;
 	return(totalLen);
diff --git a/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer.h b/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer.h
index 711dd51..352537d 100644
--- a/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer.h
+++ b/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer.h
@@ -80,6 +80,6 @@
 protected:
     AudioConferenceMixer() {}
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_INTERFACE_AUDIO_CONFERENCE_MIXER_H_
diff --git a/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer_defines.h b/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer_defines.h
index fac071f..ba04b5a 100644
--- a/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer_defines.h
+++ b/webrtc/modules/audio_conference_mixer/interface/audio_conference_mixer_defines.h
@@ -100,6 +100,6 @@
     AudioRelayReceiver() {}
     virtual ~AudioRelayReceiver() {}
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_INTERFACE_AUDIO_CONFERENCE_MIXER_DEFINES_H_
diff --git a/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc b/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc
index 107949b..ab9d803 100644
--- a/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc
+++ b/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc
@@ -1217,4 +1217,4 @@
     }
     return true;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h b/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h
index 46a9a8b..261cd88 100644
--- a/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h
+++ b/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h
@@ -203,6 +203,6 @@
     // Used for inhibiting saturation in mixing.
     scoped_ptr<AudioProcessing> _limiter;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_AUDIO_CONFERENCE_MIXER_IMPL_H_
diff --git a/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.cc b/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.cc
index 6c1106d..679d608 100644
--- a/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.cc
+++ b/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.cc
@@ -36,7 +36,7 @@
                            0.9114f, 0.9241f, 0.9367f, 0.9494f,
                            0.9620f, 0.9747f, 0.9873f, 1.0000f};
 const int rampSize = sizeof(rampArray)/sizeof(rampArray[0]);
-} // namespace
+}  // namespace
 
 namespace webrtc {
 void CalculateEnergy(AudioFrame& audioFrame)
@@ -78,4 +78,4 @@
            (audioFrame.samples_per_channel_ - rampSize) *
            sizeof(audioFrame.data_[0]));
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.h b/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.h
index fdf5d33..2da3a4d 100644
--- a/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.h
+++ b/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.h
@@ -21,6 +21,6 @@
 void RampIn(AudioFrame& audioFrame);
 void RampOut(AudioFrame& audioFrame);
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_AUDIO_FRAME_MANIPULATOR_H_
diff --git a/webrtc/modules/audio_conference_mixer/source/level_indicator.cc b/webrtc/modules/audio_conference_mixer/source/level_indicator.cc
index 2bac42c..3c573d4 100644
--- a/webrtc/modules/audio_conference_mixer/source/level_indicator.cc
+++ b/webrtc/modules/audio_conference_mixer/source/level_indicator.cc
@@ -73,4 +73,4 @@
     return _currentLevel;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_conference_mixer/source/level_indicator.h b/webrtc/modules/audio_conference_mixer/source/level_indicator.h
index fdf7837..b0e87ff 100644
--- a/webrtc/modules/audio_conference_mixer/source/level_indicator.h
+++ b/webrtc/modules/audio_conference_mixer/source/level_indicator.h
@@ -32,6 +32,6 @@
     uint32_t _count;
     uint32_t _currentLevel;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_LEVEL_INDICATOR_H_
diff --git a/webrtc/modules/audio_conference_mixer/source/memory_pool.h b/webrtc/modules/audio_conference_mixer/source/memory_pool.h
index 36f2248..3c7e1b7 100644
--- a/webrtc/modules/audio_conference_mixer/source/memory_pool.h
+++ b/webrtc/modules/audio_conference_mixer/source/memory_pool.h
@@ -117,6 +117,6 @@
     }
     return _ptrImpl->PushMemory(memory);
 }
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_MEMORY_POOL_H_
diff --git a/webrtc/modules/audio_conference_mixer/source/memory_pool_posix.h b/webrtc/modules/audio_conference_mixer/source/memory_pool_posix.h
index 3dd4e0e..6d4dccf 100644
--- a/webrtc/modules/audio_conference_mixer/source/memory_pool_posix.h
+++ b/webrtc/modules/audio_conference_mixer/source/memory_pool_posix.h
@@ -163,6 +163,6 @@
     }
     return 0;
 }
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_MEMORY_POOL_GENERIC_H_
diff --git a/webrtc/modules/audio_conference_mixer/source/memory_pool_win.h b/webrtc/modules/audio_conference_mixer/source/memory_pool_win.h
index 571b978..772a123 100644
--- a/webrtc/modules/audio_conference_mixer/source/memory_pool_win.h
+++ b/webrtc/modules/audio_conference_mixer/source/memory_pool_win.h
@@ -194,6 +194,6 @@
     ++_createdMemory;
     return returnValue;
 }
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_MEMORY_POOL_WINDOWS_H_
diff --git a/webrtc/modules/audio_conference_mixer/source/time_scheduler.cc b/webrtc/modules/audio_conference_mixer/source/time_scheduler.cc
index bfb7f01..738f826 100644
--- a/webrtc/modules/audio_conference_mixer/source/time_scheduler.cc
+++ b/webrtc/modules/audio_conference_mixer/source/time_scheduler.cc
@@ -99,4 +99,4 @@
     updateTimeInMS =  (updateTimeInMS < 0) ? 0 : updateTimeInMS;
     return 0;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_conference_mixer/source/time_scheduler.h b/webrtc/modules/audio_conference_mixer/source/time_scheduler.h
index 83d3a97..5a77006 100644
--- a/webrtc/modules/audio_conference_mixer/source/time_scheduler.h
+++ b/webrtc/modules/audio_conference_mixer/source/time_scheduler.h
@@ -42,6 +42,6 @@
     int64_t  _periodicityInTicks;
     uint32_t _missedPeriods;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_AUDIO_CONFERENCE_MIXER_SOURCE_TIME_SCHEDULER_H_
diff --git a/webrtc/modules/audio_device/android/audio_device_jni_android.cc b/webrtc/modules/audio_device/android/audio_device_jni_android.cc
index 8afdc50..d637538 100644
--- a/webrtc/modules/audio_device/android/audio_device_jni_android.cc
+++ b/webrtc/modules/audio_device/android/audio_device_jni_android.cc
@@ -2730,7 +2730,7 @@
 
         Lock();
 
-    } // _playing
+    }  // _playing
 
     if (_shutdownPlayThread)
     {
@@ -2867,7 +2867,7 @@
             Lock();
         }
 
-    } // _recording
+    }  // _recording
 
     if (_shutdownRecThread)
     {
@@ -2898,4 +2898,4 @@
     return true;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_device/android/audio_device_jni_android.h b/webrtc/modules/audio_device/android/audio_device_jni_android.h
index 33aa952..dee9eac5 100644
--- a/webrtc/modules/audio_device/android/audio_device_jni_android.h
+++ b/webrtc/modules/audio_device/android/audio_device_jni_android.h
@@ -264,6 +264,6 @@
   static jclass globalScClass;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_JNI_ANDROID_H
diff --git a/webrtc/modules/audio_device/android/audio_device_utility_android.cc b/webrtc/modules/audio_device/android/audio_device_utility_android.cc
index c21972f..b3dadf4 100644
--- a/webrtc/modules/audio_device/android/audio_device_utility_android.cc
+++ b/webrtc/modules/audio_device/android/audio_device_utility_android.cc
@@ -47,4 +47,4 @@
     return 0;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_device/android/audio_device_utility_android.h b/webrtc/modules/audio_device/android/audio_device_utility_android.h
index 24644b8..ae66e42 100644
--- a/webrtc/modules/audio_device/android/audio_device_utility_android.h
+++ b/webrtc/modules/audio_device/android/audio_device_utility_android.h
@@ -35,6 +35,6 @@
     int32_t _id;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_UTILITY_ANDROID_H
diff --git a/webrtc/modules/audio_device/dummy/audio_device_utility_dummy.h b/webrtc/modules/audio_device/dummy/audio_device_utility_dummy.h
index c8bb180..5cc49d3 100644
--- a/webrtc/modules/audio_device/dummy/audio_device_utility_dummy.h
+++ b/webrtc/modules/audio_device/dummy/audio_device_utility_dummy.h
@@ -27,6 +27,6 @@
     virtual int32_t Init() { return 0; }
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // MODULES_AUDIO_DEVICE_MAIN_SOURCE_LINUX_AUDIO_DEVICE_UTILITY_DUMMY_H_
diff --git a/webrtc/modules/audio_device/ios/audio_device_utility_ios.cc b/webrtc/modules/audio_device/ios/audio_device_utility_ios.cc
index bb4a1c1..b8cf218 100644
--- a/webrtc/modules/audio_device/ios/audio_device_utility_ios.cc
+++ b/webrtc/modules/audio_device/ios/audio_device_utility_ios.cc
@@ -42,4 +42,4 @@
     return 0;
 }
 
-}  //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_device/ios/audio_device_utility_ios.h b/webrtc/modules/audio_device/ios/audio_device_utility_ios.h
index 2892a7d..e9f8c54 100644
--- a/webrtc/modules/audio_device/ios/audio_device_utility_ios.h
+++ b/webrtc/modules/audio_device/ios/audio_device_utility_ios.h
@@ -31,6 +31,6 @@
     AudioDeviceModule::ErrorCode _lastError;
 };
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_UTILITY_IPHONE_H
diff --git a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc
index 56329a3..bc3e621 100644
--- a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc
+++ b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.cc
@@ -2954,7 +2954,7 @@
         EnableWriteCallback();
         PaUnLock();
 
-    } // _playing
+    }  // _playing
 
     UnLock();
     return true;
@@ -3103,7 +3103,7 @@
         EnableReadCallback();
         PaUnLock();
 
-    } // _recording
+    }  // _recording
 
     UnLock();
     return true;
diff --git a/webrtc/modules/audio_device/linux/audio_device_utility_linux.cc b/webrtc/modules/audio_device/linux/audio_device_utility_linux.cc
index 2de4bac..a053f5b 100644
--- a/webrtc/modules/audio_device/linux/audio_device_utility_linux.cc
+++ b/webrtc/modules/audio_device/linux/audio_device_utility_linux.cc
@@ -51,4 +51,4 @@
 }
 
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_device/linux/audio_device_utility_linux.h b/webrtc/modules/audio_device/linux/audio_device_utility_linux.h
index 22549c6..75e52b4 100644
--- a/webrtc/modules/audio_device/linux/audio_device_utility_linux.h
+++ b/webrtc/modules/audio_device/linux/audio_device_utility_linux.h
@@ -31,6 +31,6 @@
     int32_t _id;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // MODULES_AUDIO_DEVICE_MAIN_SOURCE_LINUX_AUDIO_DEVICE_UTILITY_LINUX_H_
diff --git a/webrtc/modules/audio_device/mac/audio_device_mac.cc b/webrtc/modules/audio_device/mac/audio_device_mac.cc
index a7e78ba..3cf742b 100644
--- a/webrtc/modules/audio_device/mac/audio_device_mac.cc
+++ b/webrtc/modules/audio_device/mac/audio_device_mac.cc
@@ -2271,7 +2271,7 @@
 
             free(bufferList);
             bufferList = NULL;
-        } // for
+        }  // for
     }
 
     if (!listOK)
@@ -3269,4 +3269,4 @@
   }
   return(key_down);
 }
-} //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_device/mac/audio_device_mac.h b/webrtc/modules/audio_device/mac/audio_device_mac.h
index bdcad34..19eb7c7 100644
--- a/webrtc/modules/audio_device/mac/audio_device_mac.h
+++ b/webrtc/modules/audio_device/mac/audio_device_mac.h
@@ -379,6 +379,6 @@
     int _renderBufSizeSamples;
 };
 
-} //  namespace webrtc
+}  // namespace webrtc
 
 #endif  // MODULES_AUDIO_DEVICE_MAIN_SOURCE_MAC_AUDIO_DEVICE_MAC_H_
diff --git a/webrtc/modules/audio_device/mac/audio_device_utility_mac.cc b/webrtc/modules/audio_device/mac/audio_device_utility_mac.cc
index ac8e118..0aa74c0 100644
--- a/webrtc/modules/audio_device/mac/audio_device_utility_mac.cc
+++ b/webrtc/modules/audio_device/mac/audio_device_utility_mac.cc
@@ -50,4 +50,4 @@
     return 0;
 }
 
-} //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/audio_device/mac/audio_device_utility_mac.h b/webrtc/modules/audio_device/mac/audio_device_utility_mac.h
index 6c48b38..5a96cd8 100644
--- a/webrtc/modules/audio_device/mac/audio_device_utility_mac.h
+++ b/webrtc/modules/audio_device/mac/audio_device_utility_mac.h
@@ -31,6 +31,6 @@
     int32_t _id;
 };
 
-} //  namespace webrtc
+}  // namespace webrtc
 
 #endif  // MODULES_AUDIO_DEVICE_MAIN_SOURCE_MAC_AUDIO_DEVICE_UTILITY_MAC_H_
diff --git a/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.cc b/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.cc
index db4cfab..e7a8b52 100644
--- a/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.cc
+++ b/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.cc
@@ -1163,5 +1163,5 @@
 #endif
 }
 
-} // namespace webrtc
+}  // namespace webrtc
 // EOF
diff --git a/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.h b/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.h
index 8c89e71..c5024d1 100644
--- a/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.h
+++ b/webrtc/modules/audio_device/mac/audio_mixer_manager_mac.h
@@ -75,6 +75,6 @@
 
 };
 	
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // AUDIO_MIXER_MAC_H
diff --git a/webrtc/modules/audio_device/test/func_test_manager.cc b/webrtc/modules/audio_device/test/func_test_manager.cc
index 5eccbe6..e48cd33 100644
--- a/webrtc/modules/audio_device/test/func_test_manager.cc
+++ b/webrtc/modules/audio_device/test/func_test_manager.cc
@@ -443,7 +443,7 @@
             }
             _audioList.PopFront();
         }
-    } // if (_fullDuplex)
+    }  // if (_fullDuplex)
 
     if (_playFromFile && _playFile.Open())
     {
@@ -475,7 +475,7 @@
                 audio16++;
             }
         }
-    } // if (_playFromFile && _playFile.Open())
+    }  // if (_playFromFile && _playFile.Open())
 
     _playCount++;
 
@@ -550,7 +550,7 @@
         {
             TEST_LOG("++");
         }
-    } // if (_playCount % 100 == 0)
+    }  // if (_playCount % 100 == 0)
 
     nSamplesOut = nSamples;
 
@@ -880,7 +880,7 @@
                 TEST_LOG("\nActiveAudioLayer: kWindowsCoreAudio <=> "
                     "switch was possible\n \n");
         }
-    } // if (tryWinWave || tryWinCore)
+    }  // if (tryWinWave || tryWinCore)
 
     PRINT_TEST_RESULTS;
 
@@ -2460,7 +2460,7 @@
 
             loopCount++;
         }
-    } // loopCount
+    }  // loopCount
 
     EXPECT_EQ(0, audioDevice->Terminate());
     EXPECT_FALSE(audioDevice->Initialized());
@@ -2729,6 +2729,6 @@
     return 0;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
 
 // EOF
diff --git a/webrtc/modules/audio_device/test/func_test_manager.h b/webrtc/modules/audio_device/test/func_test_manager.h
index 0036b5c..ea39d28 100644
--- a/webrtc/modules/audio_device/test/func_test_manager.h
+++ b/webrtc/modules/audio_device/test/func_test_manager.h
@@ -218,6 +218,6 @@
     AudioTransportImpl* _audioTransport;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // #ifndef WEBRTC_AUDIO_DEVICE_FUNC_TEST_MANAGER_H
diff --git a/webrtc/modules/audio_device/win/audio_device_core_win.cc b/webrtc/modules/audio_device/win/audio_device_core_win.cc
index f732151..7811fff 100644
--- a/webrtc/modules/audio_device/win/audio_device_core_win.cc
+++ b/webrtc/modules/audio_device/win/audio_device_core_win.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#pragma warning(disable: 4995)  //  name was marked as #pragma deprecated
+#pragma warning(disable: 4995)  // name was marked as #pragma deprecated
 
 #if (_MSC_VER >= 1310) && (_MSC_VER < 1400)
 // Reports the major and minor versions of the compiler.
diff --git a/webrtc/modules/audio_processing/ns/ns_core.c b/webrtc/modules/audio_processing/ns/ns_core.c
index e7093c7..124a66d 100644
--- a/webrtc/modules/audio_processing/ns/ns_core.c
+++ b/webrtc/modules/audio_processing/ns/ns_core.c
@@ -276,7 +276,7 @@
         inst->density[offset + i] = ((float)inst->counter[s] * inst->density[offset
             + i] + (float)1.0 / ((float)2.0 * WIDTH)) / (float)(inst->counter[s] + 1);
       }
-    } // end loop over magnitude spectrum
+    }  // end loop over magnitude spectrum
 
     if (inst->counter[s] >= END_STARTUP_LONG) {
       inst->counter[s] = 0;
@@ -288,7 +288,7 @@
     }
 
     inst->counter[s]++;
-  } // end loop over simultaneous estimates
+  }  // end loop over simultaneous estimates
 
   // Sequentially update the noise during startup
   if (inst->updates < END_STARTUP_LONG) {
@@ -522,7 +522,7 @@
         inst->histSpecDiff[i] = 0;
       }
     }
-  } // end of flag == 1
+  }  // end of flag == 1
 }
 
 // Compute spectral flatness on input spectrum
@@ -855,7 +855,7 @@
           }
           outFrameHB[i] = (short)dTmp;
         }
-      } // end of H band gain computation
+      }  // end of H band gain computation
       //
       return 0;
     }
@@ -1006,14 +1006,14 @@
       snrLocPrior[i] = DD_PR_SNR * previousEstimateStsa[i] + ((float)1.0 - DD_PR_SNR)
                        * snrLocPost[i];
       // post and prior snr needed for step 2
-    } // end of loop over freqs
+    }  // end of loop over freqs
 #ifdef PROCESS_FLOW_1
     for (i = 0; i < inst->magnLen; i++) {
       // gain filter
       tmpFloat1 = inst->overdrive + snrLocPrior[i];
       tmpFloat2 = (float)snrLocPrior[i] / tmpFloat1;
       theFilter[i] = (float)tmpFloat2;
-    } // end of loop over freqs
+    }  // end of loop over freqs
 #endif
     // done with step 1: dd computation of prior and post snr
 
@@ -1085,7 +1085,7 @@
           noise[i] = noiseUpdateTmp;
         }
       }
-    } // end of freq loop
+    }  // end of freq loop
     // done with step 2: noise update
 
     //
@@ -1105,7 +1105,7 @@
       tmpFloat1 = inst->overdrive + snrPrior;
       tmpFloat2 = (float)snrPrior / tmpFloat1;
       theFilter[i] = (float)tmpFloat2;
-    } // end of loop over freqs
+    }  // end of loop over freqs
     // done with step3
 #endif
 #endif
@@ -1204,7 +1204,7 @@
         factor = (float)1.0 / gain;
       }
 #endif
-    } // out of inst->gainmap==1
+    }  // out of inst->gainmap==1
 
     // synthesis
     for (i = 0; i < inst->anaLen; i++) {
@@ -1227,7 +1227,7 @@
         inst->outBuf[i] = fout[i + inst->blockLen10ms];
       }
     }
-  } // end of if out.len==0
+  }  // end of if out.len==0
   else {
     for (i = 0; i < inst->blockLen10ms; i++) {
       fout[i] = inst->outBuf[i];
@@ -1297,7 +1297,7 @@
       }
       outFrameHB[i] = (short)dTmp;
     }
-  } // end of H band gain computation
+  }  // end of H band gain computation
   //
 
   return 0;
diff --git a/webrtc/modules/audio_processing/ns/nsx_core.c b/webrtc/modules/audio_processing/ns/nsx_core.c
index bf86c72..6076d3f 100644
--- a/webrtc/modules/audio_processing/ns/nsx_core.c
+++ b/webrtc/modules/audio_processing/ns/nsx_core.c
@@ -588,7 +588,7 @@
                      width_factor, countDiv, 15);
         inst->noiseEstDensity[offset + i] = tmp16no1 + tmp16no2;
       }
-    } // end loop over magnitude spectrum
+    }  // end loop over magnitude spectrum
 
     if (counter >= END_STARTUP_LONG) {
       inst->noiseEstCounter[s] = 0;
@@ -598,7 +598,7 @@
     }
     inst->noiseEstCounter[s]++;
 
-  } // end loop over simultaneous estimates
+  }  // end loop over simultaneous estimates
 
   // Sequentially update the noise during startup
   if (inst->blockIndex < END_STARTUP_LONG) {
@@ -1146,7 +1146,7 @@
     WebRtcSpl_ZerosArrayW16(inst->histLrt, HIST_PAR_EST);
     WebRtcSpl_ZerosArrayW16(inst->histSpecDiff, HIST_PAR_EST);
     WebRtcSpl_ZerosArrayW16(inst->histSpecFlat, HIST_PAR_EST);
-  } // end of flag == 1
+  }  // end of flag == 1
 }
 
 
@@ -1874,7 +1874,7 @@
     tmp16no2 = (int16_t)WEBRTC_SPL_MUL_16_16_RSFT(inst->priorNonSpeechProb,
                                                         gainFactor2, 14); // Q13;
     gainFactor = tmp16no1 + tmp16no2; // Q13
-  } // out of flag_gain_map==1
+  }  // out of flag_gain_map==1
 
   // Synthesis, read out fully processed segment, and update synthesis buffer.
   WebRtcNsx_SynthesisUpdate(inst, outFrame, gainFactor);
@@ -1960,7 +1960,7 @@
       for (i = 0; i < inst->blockLen10ms; i++) {
         outFrameHB[i] = inst->dataBufHBFX[i]; // Q0
       }
-    } // end of H band gain computation
+    }  // end of H band gain computation
     return 0;
   }
 
@@ -2153,7 +2153,7 @@
     priorSnr = tmpU32no1 + tmpU32no2 + 512; // Q22 (added 512 for rounding)
     // priorLocSnr = 1 + 2*priorSnr
     priorLocSnr[i] = 2048 + WEBRTC_SPL_RSHIFT_U32(priorSnr, 10); // Q11
-  } // end of loop over frequencies
+  }  // end of loop over frequencies
   // done with step 1: DD computation of prior and post SNR
 
   // STEP 2: compute speech/noise likelihood
@@ -2314,7 +2314,7 @@
       tmp32no2 += tmp32no1; // Q(qMagn)
     }
     inst->avgMagnPause[i] = tmp32no2;
-  } // end of frequency loop
+  }  // end of frequency loop
 
   norm32no1 = WebRtcSpl_NormU32(maxNoiseU32);
   qNoise = inst->prevQNoise + norm32no1 - 5;
@@ -2389,7 +2389,7 @@
       inst->noiseSupFilter[i] = (uint16_t)WebRtcSpl_DivU32U16(tmpU32no1,
                                                                     END_STARTUP_SHORT);
     }
-  } // end of loop over frequencies
+  }  // end of loop over frequencies
   //done with step3
 
   // save noise and magnitude spectrum for next frame
@@ -2484,7 +2484,7 @@
       outFrameHB[i]
         = (int16_t)WEBRTC_SPL_MUL_16_16_RSFT(gainTimeDomainHB, inst->dataBufHBFX[i], 14); // Q0
     }
-  } // end of H band gain computation
+  }  // end of H band gain computation
 
   return 0;
 }
diff --git a/webrtc/modules/audio_processing/ns/nsx_core_neon.c b/webrtc/modules/audio_processing/ns/nsx_core_neon.c
index 2cb2e4e2..1fc8a86 100644
--- a/webrtc/modules/audio_processing/ns/nsx_core_neon.c
+++ b/webrtc/modules/audio_processing/ns/nsx_core_neon.c
@@ -291,7 +291,7 @@
       __asm__("vbit %q0, %q1, %q2"::
               "w"(tmp16x8_1), "w"(tmp16x8_0), "w"(tmp16x8_4));
       vst1q_s16(&inst->noiseEstDensity[offset + i], tmp16x8_1);
-    } // End loop over magnitude spectrum
+    }  // End loop over magnitude spectrum
 
     // Last iteration over magnitude spectrum:
     // compute delta
@@ -348,7 +348,7 @@
     }
     inst->noiseEstCounter[s]++;
 
-  } // end loop over simultaneous estimates
+  }  // end loop over simultaneous estimates
 
   // Sequentially update the noise during startup
   if (inst->blockIndex < END_STARTUP_LONG) {
diff --git a/webrtc/modules/desktop_capture/mac/desktop_configuration.mm b/webrtc/modules/desktop_capture/mac/desktop_configuration.mm
index e9b9863..a917b5d 100644
--- a/webrtc/modules/desktop_capture/mac/desktop_configuration.mm
+++ b/webrtc/modules/desktop_capture/mac/desktop_configuration.mm
@@ -83,7 +83,7 @@
   return display_config;
 }
 
-} // namespace
+}  // namespace
 
 MacDisplayConfiguration::MacDisplayConfiguration()
     : id(0),
diff --git a/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.cc b/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.cc
index f83d76e..5dcbc52 100644
--- a/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.cc
+++ b/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.cc
@@ -52,4 +52,4 @@
   }
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.h b/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.h
index b4f6ad1..73d425a 100644
--- a/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.h
+++ b/webrtc/modules/desktop_capture/mac/scoped_pixel_buffer_object.h
@@ -36,6 +36,6 @@
   DISALLOW_COPY_AND_ASSIGN(ScopedPixelBufferObject);
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_DESKTOP_CAPTURE_SCOPED_PIXEL_BUFFER_OBJECT_H_
diff --git a/webrtc/modules/interface/module_common_types.h b/webrtc/modules/interface/module_common_types.h
index 7baa7e9..57a1dfb 100644
--- a/webrtc/modules/interface/module_common_types.h
+++ b/webrtc/modules/interface/module_common_types.h
@@ -1067,6 +1067,6 @@
       timestamp2;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // MODULE_COMMON_TYPES_H
diff --git a/webrtc/modules/media_file/interface/media_file.h b/webrtc/modules/media_file/interface/media_file.h
index 78dcf92..5ee40fd 100644
--- a/webrtc/modules/media_file/interface/media_file.h
+++ b/webrtc/modules/media_file/interface/media_file.h
@@ -223,5 +223,5 @@
     MediaFile() {}
     virtual ~MediaFile() {}
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_MEDIA_FILE_INTERFACE_MEDIA_FILE_H_
diff --git a/webrtc/modules/media_file/interface/media_file_defines.h b/webrtc/modules/media_file/interface/media_file_defines.h
index d309301..7cc5436 100644
--- a/webrtc/modules/media_file/interface/media_file_defines.h
+++ b/webrtc/modules/media_file/interface/media_file_defines.h
@@ -47,5 +47,5 @@
 protected:
     FileCallback() {}
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_MEDIA_FILE_INTERFACE_MEDIA_FILE_DEFINES_H_
diff --git a/webrtc/modules/media_file/source/avi_file.cc b/webrtc/modules/media_file/source/avi_file.cc
index b383073..bfc0b8a 100644
--- a/webrtc/modules/media_file/source/avi_file.cc
+++ b/webrtc/modules/media_file/source/avi_file.cc
@@ -1763,4 +1763,4 @@
     }
     PutLE32LengthFromCurrent(static_cast<long>(idxChunkSize));
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/media_file/source/avi_file.h b/webrtc/modules/media_file/source/avi_file.h
index 83a51fc..39ae326 100644
--- a/webrtc/modules/media_file/source/avi_file.h
+++ b/webrtc/modules/media_file/source/avi_file.h
@@ -271,6 +271,6 @@
 
     ListWrapper* _indexList; // Elements are of type AVIINDEXENTRY.
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_MEDIA_FILE_SOURCE_AVI_FILE_H_
diff --git a/webrtc/modules/media_file/source/media_file_impl.cc b/webrtc/modules/media_file/source/media_file_impl.cc
index fa66677..275ca20 100644
--- a/webrtc/modules/media_file/source/media_file_impl.cc
+++ b/webrtc/modules/media_file/source/media_file_impl.cc
@@ -1368,4 +1368,4 @@
                  "Frequency should be 8000, 16000 or 32000 (Hz)");
     return false;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/media_file/source/media_file_impl.h b/webrtc/modules/media_file/source/media_file_impl.h
index c739030..33c45e9 100644
--- a/webrtc/modules/media_file/source/media_file_impl.h
+++ b/webrtc/modules/media_file/source/media_file_impl.h
@@ -236,6 +236,6 @@
 
     FileCallback* _ptrCallback;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_MEDIA_FILE_SOURCE_MEDIA_FILE_IMPL_H_
diff --git a/webrtc/modules/media_file/source/media_file_utility.cc b/webrtc/modules/media_file/source/media_file_utility.cc
index 4e23899..58869aa 100644
--- a/webrtc/modules/media_file/source/media_file_utility.cc
+++ b/webrtc/modules/media_file/source/media_file_utility.cc
@@ -55,7 +55,7 @@
    int8_t  fmt_ckID[4];
    int32_t fmt_ckSize;
 };
-} // unnamed namespace
+}  // unnamed namespace
 
 namespace webrtc {
 ModuleFileUtility::ModuleFileUtility(const int32_t id)
@@ -2559,4 +2559,4 @@
         return 0;
     }
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/media_file/source/media_file_utility.h b/webrtc/modules/media_file/source/media_file_utility.h
index 049f25f..8376169 100644
--- a/webrtc/modules/media_file/source/media_file_utility.h
+++ b/webrtc/modules/media_file/source/media_file_utility.h
@@ -343,5 +343,5 @@
     VideoCodec _videoCodec;
 #endif
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_MEDIA_FILE_SOURCE_MEDIA_FILE_UTILITY_H_
diff --git a/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h b/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h
index 4fe5d91..f915a0f 100644
--- a/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h
+++ b/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h
@@ -52,6 +52,6 @@
     uint32_t      _incomingBitRate;
     double              _noiseVar;
 };
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_BWE_DEFINES_H_
diff --git a/webrtc/modules/remote_bitrate_estimator/remote_rate_control.cc b/webrtc/modules/remote_bitrate_estimator/remote_rate_control.cc
index 36ecdb2..d07b7d8 100644
--- a/webrtc/modules/remote_bitrate_estimator/remote_rate_control.cc
+++ b/webrtc/modules/remote_bitrate_estimator/remote_rate_control.cc
@@ -381,4 +381,4 @@
       assert(false);
   }
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/remote_bitrate_estimator/remote_rate_control.h b/webrtc/modules/remote_bitrate_estimator/remote_rate_control.h
index 4d16c72..87a5721 100644
--- a/webrtc/modules/remote_bitrate_estimator/remote_rate_control.h
+++ b/webrtc/modules/remote_bitrate_estimator/remote_rate_control.h
@@ -75,6 +75,6 @@
   float beta_;
   unsigned int rtt_;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_REMOTE_RATE_CONTROL_H_
diff --git a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
index 5d11448..5c25fbe 100644
--- a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
+++ b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
@@ -932,5 +932,5 @@
     */
     virtual int32_t RequestKeyFrame() = 0;
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_RTP_RTCP_INTERFACE_RTP_RTCP_H_
diff --git a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h
index d3a3366..500ab53 100644
--- a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h
+++ b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h
@@ -307,5 +307,5 @@
                                     const uint8_t volume) {}
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_RTP_RTCP_INTERFACE_RTP_RTCP_DEFINES_H_
diff --git a/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.cc b/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.cc
index 7909f88..3551782 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.cc
+++ b/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.cc
@@ -577,4 +577,4 @@
         }
     }
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.h b/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.h
index bdfa08d..bf1efaf 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.h
+++ b/webrtc/modules/rtp_rtcp/source/H264/bitstream_builder.h
@@ -47,6 +47,6 @@
     uint32_t _byteOffset;
     uint8_t  _bitOffset;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_BITSTREAM_BUILDER_H_
diff --git a/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.cc b/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.cc
index 43b1398..d6505d2 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.cc
+++ b/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.cc
@@ -214,4 +214,4 @@
     }
     return retVal;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.h b/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.h
index 4ba5560..6e3d307 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.h
+++ b/webrtc/modules/rtp_rtcp/source/H264/bitstream_parser.h
@@ -41,6 +41,6 @@
     uint32_t _byteOffset;
     uint8_t  _bitOffset;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_BITSTREAM_PARSER_H_
diff --git a/webrtc/modules/rtp_rtcp/source/H264/h264_information.cc b/webrtc/modules/rtp_rtcp/source/H264/h264_information.cc
index e75ddf5..ddb34eb 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/h264_information.cc
+++ b/webrtc/modules/rtp_rtcp/source/H264/h264_information.cc
@@ -815,4 +815,4 @@
 
     return 0;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/H264/h264_information.h b/webrtc/modules/rtp_rtcp/source/H264/h264_information.h
index e51b9e1..42b0b88 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/h264_information.h
+++ b/webrtc/modules/rtp_rtcp/source/H264/h264_information.h
@@ -165,6 +165,6 @@
     uint32_t          _remLength;
     H264Info          _info;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_H264_INFORMATION_H_
diff --git a/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.cc b/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.cc
index 75f2655..d62f50b 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.cc
+++ b/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.cc
@@ -466,7 +466,7 @@
         }
     }
     return 0;
-} // end STAP-A
+}  // end STAP-A
 
 // STAP-A for H.264 SVC
 int32_t
@@ -660,7 +660,7 @@
         }
     }
     return 0;
-} // end STAP-A
+}  // end STAP-A
 
 int32_t
 RTPSenderH264::SendH264_FU_A(const FrameType frameType,
@@ -1277,4 +1277,4 @@
     }
     return 0;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.h b/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.h
index 60e71b2..92a4de6 100644
--- a/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.h
+++ b/webrtc/modules/rtp_rtcp/source/H264/rtp_sender_h264.h
@@ -174,6 +174,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_RTP_SENDER_H264_H_
diff --git a/webrtc/modules/rtp_rtcp/source/forward_error_correction.h b/webrtc/modules/rtp_rtcp/source/forward_error_correction.h
index 32e8158..1e7695f 100644
--- a/webrtc/modules/rtp_rtcp/source/forward_error_correction.h
+++ b/webrtc/modules/rtp_rtcp/source/forward_error_correction.h
@@ -308,5 +308,5 @@
   FecPacketList fec_packet_list_;
   bool fec_packet_received_;
 };
-}       // namespace webrtc
+}  // namespace webrtc
 #endif  // WEBRTC_MODULES_RTP_RTCP_SOURCE_FORWARD_ERROR_CORRECTION_H_
diff --git a/webrtc/modules/rtp_rtcp/source/forward_error_correction_internal.cc b/webrtc/modules/rtp_rtcp/source/forward_error_correction_internal.cc
index 124fc65..f718f31 100644
--- a/webrtc/modules/rtp_rtcp/source/forward_error_correction_internal.cc
+++ b/webrtc/modules/rtp_rtcp/source/forward_error_correction_internal.cc
@@ -370,7 +370,7 @@
                           num_mask_bytes, packet_mask, mask_table);
 
   }  // End of UEP modification
-}    //End of GetPacketMasks
+}  //End of GetPacketMasks
 
 }  // namespace internal
 }  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc
index bb91440..10566d6 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_format_remb_unittest.cc
@@ -124,4 +124,4 @@
   EXPECT_EQ(0, rtcp_sender_->SetREMBData(1234, 2, SSRCs));
   EXPECT_EQ(0, rtcp_sender_->SendRTCP(kRtcpRemb));
 }
-} // namespace
+}  // namespace
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc
index 0dde10b..b86728a 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc
@@ -1449,4 +1449,4 @@
     }
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.h b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.h
index 51b07ab..a86eef4 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.h
@@ -243,5 +243,5 @@
   uint16_t _rtt;
 
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_H_
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
index 8d833a4..1ad734c 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
@@ -197,4 +197,4 @@
     const uint32_t minimumSize) {
   TmmbnBoundingSet.VerifyAndAllocateSet(minimumSize);
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h
index 2c2c375..a7ffab9 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h
@@ -130,7 +130,7 @@
     std::vector<int64_t> _tmmbrSetTimeouts;
 };
 
-} // end namespace RTCPHelp
-} // namespace webrtc
+}  // end namespace RTCPHelp
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_HELP_H_
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
index 83d62c2..2905737 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
@@ -2136,4 +2136,4 @@
     }
     return -1;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
index 34a0838..9be2f3f 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
@@ -269,6 +269,6 @@
     uint32_t      _pliCount;
     uint32_t      _fullIntraRequestCount;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_SENDER_H_
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc b/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc
index c1314fb..0e6a221 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_utility.cc
@@ -1524,4 +1524,4 @@
 
     return &_header;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_utility.h b/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
index f6e1b72..606384a 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
@@ -441,6 +441,6 @@
 
         RTCPCommonHeader         _header;
     };
-} // RTCPUtility
-} // namespace webrtc
+}  // RTCPUtility
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_UTILITY_H_
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc
index c2b6424..daf7e1f 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc
@@ -178,4 +178,4 @@
     it++;
   }
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_receiver.cc b/webrtc/modules/rtp_rtcp/source/rtp_receiver.cc
index cce3b29..4fc557f 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_receiver.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_receiver.cc
@@ -822,7 +822,7 @@
       rtp_media_receiver_->GetLastMediaSpecificPayload(specific_payload);
       is_red = false;
     }
-  }   // End critsect.
+  }  // End critsect.
 
   if (re_initialize_decoder) {
     if (-1 == rtp_media_receiver_->InvokeOnInitializeDecoder(
@@ -1137,4 +1137,4 @@
                     "RTPReceiverPacketRate", ssrc_, PacketRate());
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_receiver.h b/webrtc/modules/rtp_rtcp/source/rtp_receiver.h
index 33ce939..ce7e0a2 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_receiver.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_receiver.h
@@ -237,6 +237,6 @@
   int payload_type_rtx_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_H_
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_config.h b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_config.h
index 4083540..7d124b1 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_config.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_config.h
@@ -47,7 +47,7 @@
 enum { RTP_MAX_BURST_SLEEP_TIME = 500 };
 enum { RTP_AUDIO_LEVEL_UNIQUE_ID = 0xbede };
 enum { RTP_MAX_PACKETS_PER_FRAME= 512 }; // must be multiple of 32
-} // namespace webrtc
+}  // namespace webrtc
 
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RTCP_CONFIG_H_
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
index b5684aa..0a45d3c 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
@@ -474,7 +474,7 @@
       }
     }
     _lastPayloadType = payloadType;
-  }   // end critical section
+  }  // end critical section
   TRACE_EVENT_INSTANT2("webrtc_rtp", "Audio::Send",
                        "timestamp", captureTimeStamp,
                        "seqnum", _rtpSender->SequenceNumber());
@@ -631,4 +631,4 @@
 
     return retVal;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h b/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h
index 6e4ffc0..7074e7b 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_audio.h
@@ -121,6 +121,6 @@
     uint8_t     _audioLevelIndicationID;
     uint8_t     _audioLevel_dBov;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_SENDER_AUDIO_H_
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
index 07ab310..1db4377 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
@@ -507,4 +507,4 @@
   return 0;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.h b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.h
index 7b9b34f..4c406d7 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.h
@@ -137,6 +137,6 @@
     // Bitrate used for video payload and RTP headers
     Bitrate                   _videoBitrate;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_SENDER_VIDEO_H_
diff --git a/webrtc/modules/rtp_rtcp/source/ssrc_database.cc b/webrtc/modules/rtp_rtcp/source/ssrc_database.cc
index 0da29c0..1e57970 100644
--- a/webrtc/modules/rtp_rtcp/source/ssrc_database.cc
+++ b/webrtc/modules/rtp_rtcp/source/ssrc_database.cc
@@ -214,4 +214,4 @@
 
     return ssrc;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/ssrc_database.h b/webrtc/modules/rtp_rtcp/source/ssrc_database.h
index e21b111..e1f90e7 100644
--- a/webrtc/modules/rtp_rtcp/source/ssrc_database.h
+++ b/webrtc/modules/rtp_rtcp/source/ssrc_database.h
@@ -57,6 +57,6 @@
 
     CriticalSectionWrapper* _critSect;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_SSRC_DATABASE_H_
diff --git a/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc b/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc
index 8d86543..ecdf6b8 100644
--- a/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc
+++ b/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc
@@ -479,4 +479,4 @@
   }
   return true;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/tmmbr_help.h b/webrtc/modules/rtp_rtcp/source/tmmbr_help.h
index 29bc70c..a6d1f47 100644
--- a/webrtc/modules/rtp_rtcp/source/tmmbr_help.h
+++ b/webrtc/modules/rtp_rtcp/source/tmmbr_help.h
@@ -110,6 +110,6 @@
     float*                  _ptrIntersectionBoundingSet;
     float*                  _ptrMaxPRBoundingSet;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_TMMBR_HELP_H_
diff --git a/webrtc/modules/rtp_rtcp/source/video_codec_information.h b/webrtc/modules/rtp_rtcp/source/video_codec_information.h
index b5cc063..456b3bb 100644
--- a/webrtc/modules/rtp_rtcp/source/video_codec_information.h
+++ b/webrtc/modules/rtp_rtcp/source/video_codec_information.h
@@ -23,6 +23,6 @@
     virtual RtpVideoCodecTypes Type() = 0;
     virtual ~VideoCodecInformation(){};
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_VIDEO_CODEC_INFORMATION_H_
diff --git a/webrtc/modules/rtp_rtcp/test/testFec/average_residual_loss_xor_codes.h b/webrtc/modules/rtp_rtcp/test/testFec/average_residual_loss_xor_codes.h
index 2d4d568..2e8d676 100644
--- a/webrtc/modules/rtp_rtcp/test/testFec/average_residual_loss_xor_codes.h
+++ b/webrtc/modules/rtp_rtcp/test/testFec/average_residual_loss_xor_codes.h
@@ -185,4 +185,4 @@
   0.009657f
 };
 
-}   // namespace
+}  // namespace
diff --git a/webrtc/modules/rtp_rtcp/test/testFec/test_fec.cc b/webrtc/modules/rtp_rtcp/test/testFec/test_fec.cc
index 1c7b106..336d183 100644
--- a/webrtc/modules/rtp_rtcp/test/testFec/test_fec.cc
+++ b/webrtc/modules/rtp_rtcp/test/testFec/test_fec.cc
@@ -473,11 +473,11 @@
             }
             timeStamp += 90000 / 30;
           }  // loop over numImpPackets
-        }    // loop over FecPackets
-      }      // loop over numMediaPackets
+        }  // loop over FecPackets
+      }  // loop over numMediaPackets
       delete[] packetMask;
     }  // loop over loss rates
-  }    // loop over mask types
+  }  // loop over mask types
 
   // Have DecodeFEC free allocated memory.
   fec.ResetState(&recoveredPacketList);
diff --git a/webrtc/modules/utility/interface/audio_frame_operations.h b/webrtc/modules/utility/interface/audio_frame_operations.h
index 4705cee..4154e5e 100644
--- a/webrtc/modules/utility/interface/audio_frame_operations.h
+++ b/webrtc/modules/utility/interface/audio_frame_operations.h
@@ -53,6 +53,6 @@
   static int ScaleWithSat(float scale, AudioFrame& frame);
 };
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
 #endif  // #ifndef WEBRTC_VOICE_ENGINE_AUDIO_FRAME_OPERATIONS_H_
diff --git a/webrtc/modules/utility/interface/file_player.h b/webrtc/modules/utility/interface/file_player.h
index 43ab500..7f5ecb4 100644
--- a/webrtc/modules/utility/interface/file_player.h
+++ b/webrtc/modules/utility/interface/file_player.h
@@ -107,5 +107,5 @@
     virtual ~FilePlayer() {}
 
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_UTILITY_INTERFACE_FILE_PLAYER_H_
diff --git a/webrtc/modules/utility/interface/file_recorder.h b/webrtc/modules/utility/interface/file_recorder.h
index 2c3268d..f813933 100644
--- a/webrtc/modules/utility/interface/file_recorder.h
+++ b/webrtc/modules/utility/interface/file_recorder.h
@@ -86,5 +86,5 @@
     virtual ~FileRecorder() {}
 
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_UTILITY_INTERFACE_FILE_RECORDER_H_
diff --git a/webrtc/modules/utility/interface/process_thread.h b/webrtc/modules/utility/interface/process_thread.h
index 3e25bd0..75c9b18 100644
--- a/webrtc/modules/utility/interface/process_thread.h
+++ b/webrtc/modules/utility/interface/process_thread.h
@@ -30,5 +30,5 @@
 protected:
     virtual ~ProcessThread();
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_UTILITY_INTERFACE_PROCESS_THREAD_H_
diff --git a/webrtc/modules/utility/interface/rtp_dump.h b/webrtc/modules/utility/interface/rtp_dump.h
index 9a852d0..62b8bf5 100644
--- a/webrtc/modules/utility/interface/rtp_dump.h
+++ b/webrtc/modules/utility/interface/rtp_dump.h
@@ -48,5 +48,5 @@
 protected:
     virtual ~RtpDump();
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_UTILITY_INTERFACE_RTP_DUMP_H_
diff --git a/webrtc/modules/utility/source/audio_frame_operations.cc b/webrtc/modules/utility/source/audio_frame_operations.cc
index 2e13de4..b21216d 100644
--- a/webrtc/modules/utility/source/audio_frame_operations.cc
+++ b/webrtc/modules/utility/source/audio_frame_operations.cc
@@ -107,5 +107,5 @@
   return 0;
 }
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
diff --git a/webrtc/modules/utility/source/coder.cc b/webrtc/modules/utility/source/coder.cc
index 85fb698..3cef5e5 100644
--- a/webrtc/modules/utility/source/coder.cc
+++ b/webrtc/modules/utility/source/coder.cc
@@ -124,4 +124,4 @@
     _encodedLengthInBytes = payloadSize;
     return 0;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/utility/source/coder.h b/webrtc/modules/utility/source/coder.h
index 9dd2566..a831c55 100644
--- a/webrtc/modules/utility/source/coder.h
+++ b/webrtc/modules/utility/source/coder.h
@@ -59,6 +59,6 @@
 
     uint32_t _decodeTimestamp;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_UTILITY_SOURCE_CODER_H_
diff --git a/webrtc/modules/utility/source/file_player_impl.cc b/webrtc/modules/utility/source/file_player_impl.cc
index 52ebe32..3a06c72 100644
--- a/webrtc/modules/utility/source/file_player_impl.cc
+++ b/webrtc/modules/utility/source/file_player_impl.cc
@@ -728,4 +728,4 @@
     return 0;
 }
 #endif // WEBRTC_MODULE_UTILITY_VIDEO
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/utility/source/file_player_impl.h b/webrtc/modules/utility/source/file_player_impl.h
index ebf0da1..c6d6b5c 100644
--- a/webrtc/modules/utility/source/file_player_impl.h
+++ b/webrtc/modules/utility/source/file_player_impl.h
@@ -118,5 +118,5 @@
 };
 #endif //WEBRTC_MODULE_UTILITY_VIDEO
 
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_UTILITY_SOURCE_FILE_PLAYER_IMPL_H_
diff --git a/webrtc/modules/utility/source/file_recorder_impl.cc b/webrtc/modules/utility/source/file_recorder_impl.cc
index fefa4dc..9e5db72 100644
--- a/webrtc/modules/utility/source/file_recorder_impl.cc
+++ b/webrtc/modules/utility/source/file_recorder_impl.cc
@@ -793,4 +793,4 @@
 }
 
 #endif // WEBRTC_MODULE_UTILITY_VIDEO
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/utility/source/file_recorder_impl.h b/webrtc/modules/utility/source/file_recorder_impl.h
index f8921d0..a55b73e 100644
--- a/webrtc/modules/utility/source/file_recorder_impl.h
+++ b/webrtc/modules/utility/source/file_recorder_impl.h
@@ -159,5 +159,5 @@
     int64_t _writtenVideoMS;
 };
 #endif // WEBRTC_MODULE_UTILITY_VIDEO
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_UTILITY_SOURCE_FILE_RECORDER_IMPL_H_
diff --git a/webrtc/modules/utility/source/process_thread_impl.cc b/webrtc/modules/utility/source/process_thread_impl.cc
index 61b3e33..2cd2a77 100644
--- a/webrtc/modules/utility/source/process_thread_impl.cc
+++ b/webrtc/modules/utility/source/process_thread_impl.cc
@@ -186,4 +186,4 @@
     }
     return true;
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/utility/source/process_thread_impl.h b/webrtc/modules/utility/source/process_thread_impl.h
index 7edb565..99cd2b2 100644
--- a/webrtc/modules/utility/source/process_thread_impl.h
+++ b/webrtc/modules/utility/source/process_thread_impl.h
@@ -42,6 +42,6 @@
     ListWrapper             _modules;
     ThreadWrapper*          _thread;
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_UTILITY_SOURCE_PROCESS_THREAD_IMPL_H_
diff --git a/webrtc/modules/utility/source/rtp_dump_impl.cc b/webrtc/modules/utility/source/rtp_dump_impl.cc
index 74de4ac..9cc35c3 100644
--- a/webrtc/modules/utility/source/rtp_dump_impl.cc
+++ b/webrtc/modules/utility/source/rtp_dump_impl.cc
@@ -278,4 +278,4 @@
     return 0;
 #endif
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/utility/source/rtp_dump_impl.h b/webrtc/modules/utility/source/rtp_dump_impl.h
index bb72dff..b14c597 100644
--- a/webrtc/modules/utility/source/rtp_dump_impl.h
+++ b/webrtc/modules/utility/source/rtp_dump_impl.h
@@ -44,5 +44,5 @@
     FileWrapper& _file;
     uint32_t _startTime;
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_UTILITY_SOURCE_RTP_DUMP_IMPL_H_
diff --git a/webrtc/modules/utility/source/video_coder.cc b/webrtc/modules/utility/source/video_coder.cc
index 01e4ae0..cff2bdd 100644
--- a/webrtc/modules/utility/source/video_coder.cc
+++ b/webrtc/modules/utility/source/video_coder.cc
@@ -148,5 +148,5 @@
     _videoEncodedData->payloadSize = payloadSize;
     return 0;
 }
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULE_UTILITY_VIDEO
diff --git a/webrtc/modules/utility/source/video_coder.h b/webrtc/modules/utility/source/video_coder.h
index c69c3e4..e1460ef 100644
--- a/webrtc/modules/utility/source/video_coder.h
+++ b/webrtc/modules/utility/source/video_coder.h
@@ -63,6 +63,6 @@
     I420VideoFrame* _decodedVideo;
     EncodedVideoData* _videoEncodedData;
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULE_UTILITY_VIDEO
 #endif // WEBRTC_MODULES_UTILITY_SOURCE_VIDEO_CODER_H_
diff --git a/webrtc/modules/utility/source/video_frames_queue.cc b/webrtc/modules/utility/source/video_frames_queue.cc
index 039c9e8..85f8517 100644
--- a/webrtc/modules/utility/source/video_frames_queue.cc
+++ b/webrtc/modules/utility/source/video_frames_queue.cc
@@ -126,5 +126,5 @@
   _renderDelayMs = renderDelay;
   return 0;
 }
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULE_UTILITY_VIDEO
diff --git a/webrtc/modules/utility/source/video_frames_queue.h b/webrtc/modules/utility/source/video_frames_queue.h
index af6821e..18c4375 100644
--- a/webrtc/modules/utility/source/video_frames_queue.h
+++ b/webrtc/modules/utility/source/video_frames_queue.h
@@ -56,6 +56,6 @@
   // Estimated render delay.
   uint32_t _renderDelayMs;
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULE_UTILITY_VIDEO
 #endif  // WEBRTC_MODULES_UTILITY_SOURCE_VIDEO_FRAMES_QUEUE_H_
diff --git a/webrtc/modules/video_capture/device_info_impl.cc b/webrtc/modules/video_capture/device_info_impl.cc
index a174934..7f4913f 100644
--- a/webrtc/modules/video_capture/device_info_impl.cc
+++ b/webrtc/modules/video_capture/device_info_impl.cc
@@ -394,7 +394,7 @@
     orientation = kCameraRotate0;
     return -1;
 }
-} //namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 
 
diff --git a/webrtc/modules/video_capture/device_info_impl.h b/webrtc/modules/video_capture/device_info_impl.h
index 1634c61..b8772db 100644
--- a/webrtc/modules/video_capture/device_info_impl.h
+++ b/webrtc/modules/video_capture/device_info_impl.h
@@ -63,6 +63,6 @@
     char* _lastUsedDeviceName;
     uint32_t _lastUsedDeviceNameLength;
 };
-} //namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_DEVICE_INFO_IMPL_H_
diff --git a/webrtc/modules/video_capture/include/video_capture.h b/webrtc/modules/video_capture/include/video_capture.h
index ca04fb7..e3d674b 100644
--- a/webrtc/modules/video_capture/include/video_capture.h
+++ b/webrtc/modules/video_capture/include/video_capture.h
@@ -152,5 +152,5 @@
   virtual ~VideoCaptureModule() {};
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 #endif  // WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_VIDEO_CAPTURE_H_
diff --git a/webrtc/modules/video_capture/include/video_capture_factory.h b/webrtc/modules/video_capture/include/video_capture_factory.h
index 06219e3..ec92d31 100644
--- a/webrtc/modules/video_capture/include/video_capture_factory.h
+++ b/webrtc/modules/video_capture/include/video_capture_factory.h
@@ -44,6 +44,6 @@
   ~VideoCaptureFactory();
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_VIDEO_CAPTURE_FACTORY_H_
diff --git a/webrtc/modules/video_capture/linux/device_info_linux.cc b/webrtc/modules/video_capture/linux/device_info_linux.cc
index 186fdea..add9b98 100644
--- a/webrtc/modules/video_capture/linux/device_info_linux.cc
+++ b/webrtc/modules/video_capture/linux/device_info_linux.cc
@@ -326,5 +326,5 @@
     return _captureCapabilities.Size();
 }
 
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/linux/device_info_linux.h b/webrtc/modules/video_capture/linux/device_info_linux.h
index 6aa53b8..a3e53cf 100644
--- a/webrtc/modules/video_capture/linux/device_info_linux.h
+++ b/webrtc/modules/video_capture/linux/device_info_linux.h
@@ -48,6 +48,6 @@
 
     bool IsDeviceNameMatches(const char* name, const char* deviceUniqueIdUTF8);
 };
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_DEVICE_INFO_LINUX_H_
diff --git a/webrtc/modules/video_capture/linux/video_capture_linux.cc b/webrtc/modules/video_capture/linux/video_capture_linux.cc
index 0e7b597..4cbebb3 100644
--- a/webrtc/modules/video_capture/linux/video_capture_linux.cc
+++ b/webrtc/modules/video_capture/linux/video_capture_linux.cc
@@ -496,5 +496,5 @@
 
     return 0;
 }
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/linux/video_capture_linux.h b/webrtc/modules/video_capture/linux/video_capture_linux.h
index e4b6dc6..896b89d 100644
--- a/webrtc/modules/video_capture/linux/video_capture_linux.h
+++ b/webrtc/modules/video_capture/linux/video_capture_linux.h
@@ -58,7 +58,7 @@
     };
     Buffer *_pool;
 };
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_VIDEO_CAPTURE_LINUX_H_
diff --git a/webrtc/modules/video_capture/video_capture_delay.h b/webrtc/modules/video_capture/video_capture_delay.h
index 4352644..f8924e2 100644
--- a/webrtc/modules/video_capture/video_capture_delay.h
+++ b/webrtc/modules/video_capture/video_capture_delay.h
@@ -31,6 +31,6 @@
     DelayValue delayValues[NoOfDelayValues];
 };
 
-} //namespace videocapturemodule
-} //namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_VIDEO_CAPTURE_DELAY_H_
diff --git a/webrtc/modules/video_capture/video_capture_factory.cc b/webrtc/modules/video_capture/video_capture_factory.cc
index 6a6b598..99a0708 100644
--- a/webrtc/modules/video_capture/video_capture_factory.cc
+++ b/webrtc/modules/video_capture/video_capture_factory.cc
@@ -29,4 +29,4 @@
   return videocapturemodule::VideoCaptureImpl::CreateDeviceInfo(id);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/video_capture_impl.cc b/webrtc/modules/video_capture/video_capture_impl.cc
index 9192dd6..357abc3 100644
--- a/webrtc/modules/video_capture/video_capture_impl.cc
+++ b/webrtc/modules/video_capture/video_capture_impl.cc
@@ -433,5 +433,5 @@
 
     return nrOfFrames;
 }
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/video_capture_impl.h b/webrtc/modules/video_capture/video_capture_impl.h
index 6133f75..f0d4965 100644
--- a/webrtc/modules/video_capture/video_capture_impl.h
+++ b/webrtc/modules/video_capture/video_capture_impl.h
@@ -136,6 +136,6 @@
     // Delta used for translating between NTP and internal timestamps.
     const int64_t delta_ntp_internal_ms_;
 };
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif  // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_VIDEO_CAPTURE_IMPL_H_
diff --git a/webrtc/modules/video_capture/windows/device_info_ds.cc b/webrtc/modules/video_capture/windows/device_info_ds.cc
index 14606b7..bd4523a 100644
--- a/webrtc/modules/video_capture/windows/device_info_ds.cc
+++ b/webrtc/modules/video_capture/windows/device_info_ds.cc
@@ -809,5 +809,5 @@
     filter->Release();
     return 0;
 }
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/windows/device_info_ds.h b/webrtc/modules/video_capture/windows/device_info_ds.h
index 7dc3e6c..f8e7376 100644
--- a/webrtc/modules/video_capture/windows/device_info_ds.h
+++ b/webrtc/modules/video_capture/windows/device_info_ds.h
@@ -103,6 +103,6 @@
     bool _CoUninitializeIsRequired;
 
 };
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_WINDOWS_DEVICE_INFO_DS_H_
diff --git a/webrtc/modules/video_capture/windows/help_functions_ds.cc b/webrtc/modules/video_capture/windows/help_functions_ds.cc
index 5c78e6b..f7ed957 100644
--- a/webrtc/modules/video_capture/windows/help_functions_ds.cc
+++ b/webrtc/modules/video_capture/windows/help_functions_ds.cc
@@ -115,6 +115,6 @@
     }
     return bFound;
 }
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 
diff --git a/webrtc/modules/video_capture/windows/help_functions_ds.h b/webrtc/modules/video_capture/windows/help_functions_ds.h
index 9765796..d675f92 100644
--- a/webrtc/modules/video_capture/windows/help_functions_ds.h
+++ b/webrtc/modules/video_capture/windows/help_functions_ds.h
@@ -30,6 +30,6 @@
 IPin* GetOutputPin(IBaseFilter* filter, REFGUID Category);
 BOOL PinMatchesCategory(IPin *pPin, REFGUID Category);
 
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_WINDOWS_HELP_FUNCTIONS_DS_H_
diff --git a/webrtc/modules/video_capture/windows/sink_filter_ds.cc b/webrtc/modules/video_capture/windows/sink_filter_ds.cc
index b0f9b44..0c78917 100644
--- a/webrtc/modules/video_capture/windows/sink_filter_ds.cc
+++ b/webrtc/modules/video_capture/windows/sink_filter_ds.cc
@@ -526,5 +526,5 @@
     return S_OK;
 }
 
-} // namespace videocapturemodule
-} //namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/windows/sink_filter_ds.h b/webrtc/modules/video_capture/windows/sink_filter_ds.h
index 010bc7e..4966a26 100644
--- a/webrtc/modules/video_capture/windows/sink_filter_ds.h
+++ b/webrtc/modules/video_capture/windows/sink_filter_ds.h
@@ -95,6 +95,6 @@
     VideoCaptureExternal& _captureObserver;
     int32_t _moduleId;
 };
-} // namespace videocapturemodule
-} // namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_WINDOWS_SINK_FILTER_DS_H_
diff --git a/webrtc/modules/video_capture/windows/video_capture_ds.cc b/webrtc/modules/video_capture/windows/video_capture_ds.cc
index 9aa03a8..085967b 100644
--- a/webrtc/modules/video_capture/windows/video_capture_ds.cc
+++ b/webrtc/modules/video_capture/windows/video_capture_ds.cc
@@ -409,5 +409,5 @@
     }
     return hr;
 }
-} // namespace videocapturemodule
-} //namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
diff --git a/webrtc/modules/video_capture/windows/video_capture_ds.h b/webrtc/modules/video_capture/windows/video_capture_ds.h
index dd4afbc..4404039 100644
--- a/webrtc/modules/video_capture/windows/video_capture_ds.h
+++ b/webrtc/modules/video_capture/windows/video_capture_ds.h
@@ -76,6 +76,6 @@
     IPin* _outputDvPin;
 
 };
-} // namespace videocapturemodule
-} //namespace webrtc
+}  // namespace videocapturemodule
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_WINDOWS_VIDEO_CAPTURE_DS_H_
diff --git a/webrtc/modules/video_coding/codecs/interface/video_codec_interface.h b/webrtc/modules/video_coding/codecs/interface/video_codec_interface.h
index 8f3c5ef..f80d21e 100644
--- a/webrtc/modules/video_coding/codecs/interface/video_codec_interface.h
+++ b/webrtc/modules/video_coding/codecs/interface/video_codec_interface.h
@@ -247,6 +247,6 @@
     virtual VideoDecoder* Copy() { return NULL; }
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_INTERFACE_VIDEO_CODEC_INTERFACE_H
diff --git a/webrtc/modules/video_coding/main/interface/video_coding.h b/webrtc/modules/video_coding/main/interface/video_coding.h
index 0198ca5..53c92f6 100644
--- a/webrtc/modules/video_coding/main/interface/video_coding.h
+++ b/webrtc/modules/video_coding/main/interface/video_coding.h
@@ -589,6 +589,6 @@
     virtual int StopDebugRecording() = 0;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_INTERFACE_VIDEO_CODING_H_
diff --git a/webrtc/modules/video_coding/main/source/codec_timer.h b/webrtc/modules/video_coding/main/source/codec_timer.h
index f3a1863..3acc0d3 100644
--- a/webrtc/modules/video_coding/main/source/codec_timer.h
+++ b/webrtc/modules/video_coding/main/source/codec_timer.h
@@ -56,6 +56,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_CODEC_TIMER_H_
diff --git a/webrtc/modules/video_coding/main/source/content_metrics_processing.cc b/webrtc/modules/video_coding/main/source/content_metrics_processing.cc
index 99160c9..504bdcc 100644
--- a/webrtc/modules/video_coding/main/source/content_metrics_processing.cc
+++ b/webrtc/modules/video_coding/main/source/content_metrics_processing.cc
@@ -122,4 +122,4 @@
       recursive_avg_->motion_magnitude +
       recursive_avg_factor_ * contentMetrics->motion_magnitude;
 }
-}  // end of namespace
+}  // namespace
diff --git a/webrtc/modules/video_coding/main/source/encoded_frame.h b/webrtc/modules/video_coding/main/source/encoded_frame.h
index a36da0c..90cc481 100644
--- a/webrtc/modules/video_coding/main/source/encoded_frame.h
+++ b/webrtc/modules/video_coding/main/source/encoded_frame.h
@@ -120,6 +120,6 @@
     RTPFragmentationHeader        _fragmentation;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_ENCODED_FRAME_H_
diff --git a/webrtc/modules/video_coding/main/source/er_tables_xor.h b/webrtc/modules/video_coding/main/source/er_tables_xor.h
index 99163ba..3068d7a 100644
--- a/webrtc/modules/video_coding/main/source/er_tables_xor.h
+++ b/webrtc/modules/video_coding/main/source/er_tables_xor.h
@@ -38737,6 +38737,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_SOURCE_ER_TABLES_XOR_H_
diff --git a/webrtc/modules/video_coding/main/source/fec_tables_xor.h b/webrtc/modules/video_coding/main/source/fec_tables_xor.h
index 27db9a4..28c67b4 100644
--- a/webrtc/modules/video_coding/main/source/fec_tables_xor.h
+++ b/webrtc/modules/video_coding/main/source/fec_tables_xor.h
@@ -6476,6 +6476,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_SOURCE_FEC_TABLES_XOR_H_
diff --git a/webrtc/modules/video_coding/main/source/frame_buffer.h b/webrtc/modules/video_coding/main/source/frame_buffer.h
index 245302d..7a98688 100644
--- a/webrtc/modules/video_coding/main/source/frame_buffer.h
+++ b/webrtc/modules/video_coding/main/source/frame_buffer.h
@@ -93,6 +93,6 @@
     int64_t              _latestPacketTimeMs;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER_H_
diff --git a/webrtc/modules/video_coding/main/source/generic_decoder.cc b/webrtc/modules/video_coding/main/source/generic_decoder.cc
index f90d7f9..fdb97b5 100644
--- a/webrtc/modules/video_coding/main/source/generic_decoder.cc
+++ b/webrtc/modules/video_coding/main/source/generic_decoder.cc
@@ -223,4 +223,4 @@
     return _isExternal;
 }
 
-} // namespace
+}  // namespace
diff --git a/webrtc/modules/video_coding/main/source/generic_decoder.h b/webrtc/modules/video_coding/main/source/generic_decoder.h
index 21cb4c1..f65f30f 100644
--- a/webrtc/modules/video_coding/main/source/generic_decoder.h
+++ b/webrtc/modules/video_coding/main/source/generic_decoder.h
@@ -119,6 +119,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_GENERIC_DECODER_H_
diff --git a/webrtc/modules/video_coding/main/source/generic_encoder.cc b/webrtc/modules/video_coding/main/source/generic_encoder.cc
index e10bccd..7831b3d 100644
--- a/webrtc/modules/video_coding/main/source/generic_encoder.cc
+++ b/webrtc/modules/video_coding/main/source/generic_encoder.cc
@@ -272,4 +272,4 @@
         }
     }
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/video_coding/main/source/generic_encoder.h b/webrtc/modules/video_coding/main/source/generic_encoder.h
index e7bd835..8547661 100644
--- a/webrtc/modules/video_coding/main/source/generic_encoder.h
+++ b/webrtc/modules/video_coding/main/source/generic_encoder.h
@@ -144,6 +144,6 @@
     bool                        _internalSource;
 }; // end of VCMGenericEncoder class
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_GENERIC_ENCODER_H_
diff --git a/webrtc/modules/video_coding/main/source/inter_frame_delay.h b/webrtc/modules/video_coding/main/source/inter_frame_delay.h
index 5b16dbb..64f4c7b 100644
--- a/webrtc/modules/video_coding/main/source/inter_frame_delay.h
+++ b/webrtc/modules/video_coding/main/source/inter_frame_delay.h
@@ -61,6 +61,6 @@
     int64_t         _dTS;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_INTER_FRAME_DELAY_H_
diff --git a/webrtc/modules/video_coding/main/source/internal_defines.h b/webrtc/modules/video_coding/main/source/internal_defines.h
index 0ea163c..ed2c2a3 100644
--- a/webrtc/modules/video_coding/main/source/internal_defines.h
+++ b/webrtc/modules/video_coding/main/source/internal_defines.h
@@ -53,6 +53,6 @@
     return static_cast<int32_t>((vcmId << 16) + receiverId);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_SOURCE_INTERNAL_DEFINES_H_
diff --git a/webrtc/modules/video_coding/main/source/jitter_estimator.h b/webrtc/modules/video_coding/main/source/jitter_estimator.h
index 2c81d41..3a24c74 100644
--- a/webrtc/modules/video_coding/main/source/jitter_estimator.h
+++ b/webrtc/modules/video_coding/main/source/jitter_estimator.h
@@ -149,6 +149,6 @@
     enum { kFsAccuStartupSamples = 5 };
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_JITTER_ESTIMATOR_H_
diff --git a/webrtc/modules/video_coding/main/source/media_opt_util.h b/webrtc/modules/video_coding/main/source/media_opt_util.h
index 1934269..7460688 100644
--- a/webrtc/modules/video_coding/main/source/media_opt_util.h
+++ b/webrtc/modules/video_coding/main/source/media_opt_util.h
@@ -390,7 +390,7 @@
     int                       _numLayers;
 };
 
-} // namespace media_optimization
-} // namespace webrtc
+}  // namespace media_optimization
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_MEDIA_OPT_UTIL_H_
diff --git a/webrtc/modules/video_coding/main/source/nack_fec_tables.h b/webrtc/modules/video_coding/main/source/nack_fec_tables.h
index 3769d94..acf62bf 100644
--- a/webrtc/modules/video_coding/main/source/nack_fec_tables.h
+++ b/webrtc/modules/video_coding/main/source/nack_fec_tables.h
@@ -122,6 +122,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_SOURCE_NACK_FEC_TABLES_H_
diff --git a/webrtc/modules/video_coding/main/source/packet.h b/webrtc/modules/video_coding/main/source/packet.h
index 54cd00f..43c0586 100644
--- a/webrtc/modules/video_coding/main/source/packet.h
+++ b/webrtc/modules/video_coding/main/source/packet.h
@@ -53,5 +53,5 @@
     void CopyCodecSpecifics(const RTPVideoHeader& videoHeader);
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CODING_PACKET_H_
diff --git a/webrtc/modules/video_coding/main/source/qm_select.cc b/webrtc/modules/video_coding/main/source/qm_select.cc
index fdaaa84..aaf5d7f 100644
--- a/webrtc/modules/video_coding/main/source/qm_select.cc
+++ b/webrtc/modules/video_coding/main/source/qm_select.cc
@@ -956,4 +956,4 @@
   // Default.
   return false;
 }
-}  // end of namespace
+}  // namespace
diff --git a/webrtc/modules/video_coding/main/source/qm_select.h b/webrtc/modules/video_coding/main/source/qm_select.h
index 4a74fa5..0d8ca293 100644
--- a/webrtc/modules/video_coding/main/source/qm_select.h
+++ b/webrtc/modules/video_coding/main/source/qm_select.h
@@ -370,6 +370,6 @@
   uint8_t prev_packet_loss_;
   uint8_t prev_code_rate_delta_;
 };
-}   // namespace webrtc
+}  // namespace webrtc
 #endif  // WEBRTC_MODULES_VIDEO_CODING_QM_SELECT_H_
 
diff --git a/webrtc/modules/video_coding/main/source/qm_select_data.h b/webrtc/modules/video_coding/main/source/qm_select_data.h
index 4d4f339..742bd72 100644
--- a/webrtc/modules/video_coding/main/source/qm_select_data.h
+++ b/webrtc/modules/video_coding/main/source/qm_select_data.h
@@ -222,7 +222,7 @@
 const float kSpatialErr2X2VsVert = 0.1f;    // percentage to favor 2x2 over V
 const float kSpatialErrVertVsHoriz = 0.1f;  // percentage to favor H over V
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_CODING_SOURCE_QM_SELECT_DATA_H_
 
diff --git a/webrtc/modules/video_coding/main/source/rtt_filter.h b/webrtc/modules/video_coding/main/source/rtt_filter.h
index 7479841..da7bb7b 100644
--- a/webrtc/modules/video_coding/main/source/rtt_filter.h
+++ b/webrtc/modules/video_coding/main/source/rtt_filter.h
@@ -65,6 +65,6 @@
     uint32_t        _driftBuf[kMaxDriftJumpCount];
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_RTT_FILTER_H_
diff --git a/webrtc/modules/video_coding/main/source/timestamp_extrapolator.h b/webrtc/modules/video_coding/main/source/timestamp_extrapolator.h
index 5991516..13ca37d 100644
--- a/webrtc/modules/video_coding/main/source/timestamp_extrapolator.h
+++ b/webrtc/modules/video_coding/main/source/timestamp_extrapolator.h
@@ -58,6 +58,6 @@
     const double        _P11;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_TIMESTAMP_EXTRAPOLATOR_H_
diff --git a/webrtc/modules/video_coding/main/source/timestamp_map.h b/webrtc/modules/video_coding/main/source/timestamp_map.h
index 083df77..069feeb 100644
--- a/webrtc/modules/video_coding/main/source/timestamp_map.h
+++ b/webrtc/modules/video_coding/main/source/timestamp_map.h
@@ -47,6 +47,6 @@
     int32_t                   _length;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_TIMESTAMP_MAP_H_
diff --git a/webrtc/modules/video_coding/main/source/video_coding_impl.cc b/webrtc/modules/video_coding/main/source/video_coding_impl.cc
index 55e4288..c996b85 100644
--- a/webrtc/modules/video_coding/main/source/video_coding_impl.cc
+++ b/webrtc/modules/video_coding/main/source/video_coding_impl.cc
@@ -482,7 +482,7 @@
         else
         {
             return VCM_UNINITIALIZED;
-        } // encoder
+        }  // encoder
     }// send side
     return VCM_OK;
 }
diff --git a/webrtc/modules/video_coding/main/source/video_coding_impl.h b/webrtc/modules/video_coding/main/source/video_coding_impl.h
index 0ffc14f..632db50 100644
--- a/webrtc/modules/video_coding/main/source/video_coding_impl.h
+++ b/webrtc/modules/video_coding/main/source/video_coding_impl.h
@@ -327,5 +327,5 @@
     bool                                owns_event_factory_;
     bool                                frame_dropper_enabled_;
 };
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_MODULES_VIDEO_CODING_VIDEO_CODING_IMPL_H_
diff --git a/webrtc/modules/video_coding/main/test/codec_database_test.cc b/webrtc/modules/video_coding/main/test/codec_database_test.cc
index 23daf38..b62995c 100644
--- a/webrtc/modules/video_coding/main/test/codec_database_test.cc
+++ b/webrtc/modules/video_coding/main/test/codec_database_test.cc
@@ -359,7 +359,7 @@
                 {
                     printf("frame number:%d\n",frameCnt);
                 }
-            } // end for:encode-decode
+            }  // end for:encode-decode
            // byte count for codec specific
 
             printf("Total bytes encoded: %f \n\n",(8.0/1000)*(encodeCallCDT->EncodedBytes()/((int)10/VideoCodingModule::NumberOfCodecs())));
@@ -375,14 +375,14 @@
                 printf("PSNR from encoder-decoder send-receive control test"
                        "is %f\n\n", psnr.average);
             }
-        } // end: iterate codecs
+        }  // end: iterate codecs
         rewind(_sourceFile);
         delete [] tmpBuffer;
         delete decodeCallCDT;
         delete encodeCallCDT;
         // closing and calculating PSNR for prior encoder-decoder test
         TearDown(); // closing open files
-    } // end of #codecs >1
+    }  // end of #codecs >1
 
     delete waitEvent;
     Print();
diff --git a/webrtc/modules/video_coding/main/test/generic_codec_test.cc b/webrtc/modules/video_coding/main/test/generic_codec_test.cc
index c03d896..1a9ca39 100644
--- a/webrtc/modules/video_coding/main/test/generic_codec_test.cc
+++ b/webrtc/modules/video_coding/main/test/generic_codec_test.cc
@@ -343,7 +343,7 @@
                     totalBytesOneSec =  _encodeCompleteCallback->EncodedBytes();//totalBytes;
                 }
                 TEST(_vcm->TimeUntilNextProcess() >= 0);
-            } // video seq. encode done
+            }  // video seq. encode done
             TEST(_vcm->TimeUntilNextProcess() == 0);
             _vcm->Process(); // Let the module calculate its send bit rate estimate
             // estimating rates
@@ -368,7 +368,7 @@
             printf("frame count: %d delta, %d key\n", frameCount.numDeltaFrames, frameCount.numKeyFrames);
         }// end per codec
 
-    } // end rate control test
+    }  // end rate control test
     /********************************/
     /* Encoder Pipeline Delay Test */
     /******************************/
@@ -399,10 +399,10 @@
             sourceFrame.set_timestamp(_timeStamp);
             _vcm->AddVideoFrame(sourceFrame);
             encodeComplete = _encodeCompleteCallback->EncodeComplete();
-        } // first frame encoded
+        }  // first frame encoded
         printf ("\n Codec type = %s \n", _sendCodec.plName);
         printf(" Encoder pipeline delay = %d frames\n", _frameCnt - 1);
-    } // end for all codecs
+    }  // end for all codecs
 
     /********************************/
     /* Encoder Packet Size Test     */
@@ -457,7 +457,7 @@
             _vcm->Process();
         }
         IncrementDebugClock(_frameRate);
-    } // first frame encoded
+    }  // first frame encoded
 
     delete &rtpModule;
     Print();
diff --git a/webrtc/modules/video_coding/main/test/video_rtp_play.cc b/webrtc/modules/video_coding/main/test/video_rtp_play.cc
index 6591a82..2da6a82 100644
--- a/webrtc/modules/video_coding/main/test/video_rtp_play.cc
+++ b/webrtc/modules/video_coding/main/test/video_rtp_play.cc
@@ -25,7 +25,7 @@
 const uint32_t kConfigMinPlayoutDelayMs = 0;
 const int64_t kConfigMaxRuntimeMs = -1;
 
-} // namespace
+}  // namespace
 
 int RtpPlay(const CmdArgs& args) {
   std::string trace_file = webrtc::test::OutputPath() + "receiverTestTrace.txt";
diff --git a/webrtc/modules/video_coding/main/test/video_rtp_play_mt.cc b/webrtc/modules/video_coding/main/test/video_rtp_play_mt.cc
index 1ff05dd..34f3206 100644
--- a/webrtc/modules/video_coding/main/test/video_rtp_play_mt.cc
+++ b/webrtc/modules/video_coding/main/test/video_rtp_play_mt.cc
@@ -32,7 +32,7 @@
 const uint32_t kConfigMinPlayoutDelayMs = 0;
 const int64_t kConfigMaxRuntimeMs = 10000;
 
-} // namespace
+}  // namespace
 
 bool PlayerThread(void* obj) {
   assert(obj);
diff --git a/webrtc/modules/video_coding/utility/include/exp_filter.h b/webrtc/modules/video_coding/utility/include/exp_filter.h
index 42fbe3f..d8c37a3 100644
--- a/webrtc/modules/video_coding/utility/include/exp_filter.h
+++ b/webrtc/modules/video_coding/utility/include/exp_filter.h
@@ -53,6 +53,6 @@
     const float    _max;
 }; // end of ExpFilter class
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_UTILITY_INCLUDE_EXP_FILTER_H_
diff --git a/webrtc/modules/video_coding/utility/include/frame_dropper.h b/webrtc/modules/video_coding/utility/include/frame_dropper.h
index 09ac94a..4c1c168 100644
--- a/webrtc/modules/video_coding/utility/include/frame_dropper.h
+++ b/webrtc/modules/video_coding/utility/include/frame_dropper.h
@@ -91,6 +91,6 @@
     float           _max_time_drops;
 }; // end of VCMFrameDropper class
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_CODING_UTILITY_INCLUDE_FRAME_DROPPER_H_
diff --git a/webrtc/modules/video_processing/main/interface/video_processing.h b/webrtc/modules/video_processing/main/interface/video_processing.h
index 09a4b2e..094900d 100644
--- a/webrtc/modules/video_processing/main/interface/video_processing.h
+++ b/webrtc/modules/video_processing/main/interface/video_processing.h
@@ -299,6 +299,6 @@
 
 };
 
-} //namespace
+}  // namespace
 
 #endif
diff --git a/webrtc/modules/video_processing/main/interface/video_processing_defines.h b/webrtc/modules/video_processing/main/interface/video_processing_defines.h
index fd47979..7a3536c 100644
--- a/webrtc/modules/video_processing/main/interface/video_processing_defines.h
+++ b/webrtc/modules/video_processing/main/interface/video_processing_defines.h
@@ -38,6 +38,6 @@
     kBox,                 // Box inteprolation
 };
 
-} //namespace
+}  // namespace
 
 #endif
diff --git a/webrtc/modules/video_processing/main/source/brightness_detection.cc b/webrtc/modules/video_processing/main/source/brightness_detection.cc
index 5f44f09..1e7e939d 100644
--- a/webrtc/modules/video_processing/main/source/brightness_detection.cc
+++ b/webrtc/modules/video_processing/main/source/brightness_detection.cc
@@ -193,4 +193,4 @@
     }
 }
 
-} //namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/brightness_detection.h b/webrtc/modules/video_processing/main/source/brightness_detection.h
index 506e26d..22248d6 100644
--- a/webrtc/modules/video_processing/main/source/brightness_detection.h
+++ b/webrtc/modules/video_processing/main/source/brightness_detection.h
@@ -39,6 +39,6 @@
     uint32_t _frameCntDark;
 };
 
-} //namespace
+}  // namespace
 
 #endif // VPM_BRIGHTNESS_DETECTION_H
diff --git a/webrtc/modules/video_processing/main/source/color_enhancement.cc b/webrtc/modules/video_processing/main/source/color_enhancement.cc
index ed568fa..b524767 100644
--- a/webrtc/modules/video_processing/main/source/color_enhancement.cc
+++ b/webrtc/modules/video_processing/main/source/color_enhancement.cc
@@ -59,6 +59,6 @@
         return VPM_OK;
     }
 
-} //namespace
+}  // namespace
 
-} //namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/video_processing/main/source/color_enhancement.h b/webrtc/modules/video_processing/main/source/color_enhancement.h
index f720da2..f8baaa7 100644
--- a/webrtc/modules/video_processing/main/source/color_enhancement.h
+++ b/webrtc/modules/video_processing/main/source/color_enhancement.h
@@ -24,6 +24,6 @@
     int32_t ColorEnhancement(I420VideoFrame* frame);
 }
 
-} //namespace
+}  // namespace
 
 #endif // VPM_COLOR_ENHANCEMENT_H
diff --git a/webrtc/modules/video_processing/main/source/color_enhancement_private.h b/webrtc/modules/video_processing/main/source/color_enhancement_private.h
index 863135c..d4aadfc 100644
--- a/webrtc/modules/video_processing/main/source/color_enhancement_private.h
+++ b/webrtc/modules/video_processing/main/source/color_enhancement_private.h
@@ -268,6 +268,6 @@
     {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}
 };
 
-} //namespace
+}  // namespace
 
 #endif // VPM_COLOR_ENHANCEMENT_PRIVATE_H
diff --git a/webrtc/modules/video_processing/main/source/content_analysis.cc b/webrtc/modules/video_processing/main/source/content_analysis.cc
index a5b75af..a500991 100644
--- a/webrtc/modules/video_processing/main/source/content_analysis.cc
+++ b/webrtc/modules/video_processing/main/source/content_analysis.cc
@@ -333,4 +333,4 @@
 
 }
 
-} // namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/content_analysis.h b/webrtc/modules/video_processing/main/source/content_analysis.h
index 4cdd185..a1e485f 100644
--- a/webrtc/modules/video_processing/main/source/content_analysis.h
+++ b/webrtc/modules/video_processing/main/source/content_analysis.h
@@ -87,6 +87,6 @@
 
 }; // end of VPMContentAnalysis class definition
 
-} // namespace
+}  // namespace
 
 #endif
diff --git a/webrtc/modules/video_processing/main/source/deflickering.cc b/webrtc/modules/video_processing/main/source/deflickering.cc
index 74d0e12..a4b55c1 100644
--- a/webrtc/modules/video_processing/main/source/deflickering.cc
+++ b/webrtc/modules/video_processing/main/source/deflickering.cc
@@ -447,4 +447,4 @@
     return retVal;
 }
 
-} //namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/deflickering.h b/webrtc/modules/video_processing/main/source/deflickering.h
index ae02bfe..94b0836 100644
--- a/webrtc/modules/video_processing/main/source/deflickering.h
+++ b/webrtc/modules/video_processing/main/source/deflickering.h
@@ -60,6 +60,6 @@
     uint8_t _quantHistUW8[kFrameHistorySize][kNumQuants];
 };
 
-} //namespace
+}  // namespace
 
 #endif // VPM_DEFLICKERING_H
diff --git a/webrtc/modules/video_processing/main/source/denoising.cc b/webrtc/modules/video_processing/main/source/denoising.cc
index c0ea0fb..42ea268 100644
--- a/webrtc/modules/video_processing/main/source/denoising.cc
+++ b/webrtc/modules/video_processing/main/source/denoising.cc
@@ -177,4 +177,4 @@
     return numPixelsChanged;
 }
 
-} //namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/denoising.h b/webrtc/modules/video_processing/main/source/denoising.h
index 4b2cb87..b9d09c0 100644
--- a/webrtc/modules/video_processing/main/source/denoising.h
+++ b/webrtc/modules/video_processing/main/source/denoising.h
@@ -40,7 +40,7 @@
     int               _denoiseFrameCnt;   // Counter for subsampling in time
 };
 
-} //namespace
+}  // namespace
 
 #endif // VPM_DENOISING_H
   
diff --git a/webrtc/modules/video_processing/main/source/frame_preprocessor.cc b/webrtc/modules/video_processing/main/source/frame_preprocessor.cc
index 54eeef2..fc952c0 100644
--- a/webrtc/modules/video_processing/main/source/frame_preprocessor.cc
+++ b/webrtc/modules/video_processing/main/source/frame_preprocessor.cc
@@ -186,4 +186,4 @@
     return _contentMetrics;
 }
 
-} //namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/frame_preprocessor.h b/webrtc/modules/video_processing/main/source/frame_preprocessor.h
index e3edfc8..f2d94a2 100644
--- a/webrtc/modules/video_processing/main/source/frame_preprocessor.h
+++ b/webrtc/modules/video_processing/main/source/frame_preprocessor.h
@@ -81,6 +81,6 @@
     
 }; // end of VPMFramePreprocessor class definition
 
-} //namespace
+}  // namespace
 
 #endif // VPM_FRAME_PREPROCESS_H
diff --git a/webrtc/modules/video_processing/main/source/spatial_resampler.cc b/webrtc/modules/video_processing/main/source/spatial_resampler.cc
index 89a449a..f66153d 100644
--- a/webrtc/modules/video_processing/main/source/spatial_resampler.cc
+++ b/webrtc/modules/video_processing/main/source/spatial_resampler.cc
@@ -119,4 +119,4 @@
     return true;
 }
 
-} //namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/spatial_resampler.h b/webrtc/modules/video_processing/main/source/spatial_resampler.h
index 43368d1..69d5cf8 100644
--- a/webrtc/modules/video_processing/main/source/spatial_resampler.h
+++ b/webrtc/modules/video_processing/main/source/spatial_resampler.h
@@ -62,6 +62,6 @@
   Scaler                      _scaler;
 };
 
-} //namespace
+}  // namespace
 
 #endif
diff --git a/webrtc/modules/video_processing/main/source/video_decimator.cc b/webrtc/modules/video_processing/main/source/video_decimator.cc
index e2d09e3..84a6cad 100644
--- a/webrtc/modules/video_processing/main/source/video_decimator.cc
+++ b/webrtc/modules/video_processing/main/source/video_decimator.cc
@@ -232,4 +232,4 @@
     }
 }
 
-} //namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/video_decimator.h b/webrtc/modules/video_processing/main/source/video_decimator.h
index 0ea0019..0a6a140 100644
--- a/webrtc/modules/video_processing/main/source/video_decimator.h
+++ b/webrtc/modules/video_processing/main/source/video_decimator.h
@@ -60,6 +60,6 @@
 
 };
 
-} //namespace
+}  // namespace
 
 #endif
diff --git a/webrtc/modules/video_processing/main/source/video_processing_impl.cc b/webrtc/modules/video_processing/main/source/video_processing_impl.cc
index 7fd4f6e..4546f91 100644
--- a/webrtc/modules/video_processing/main/source/video_processing_impl.cc
+++ b/webrtc/modules/video_processing/main/source/video_processing_impl.cc
@@ -290,4 +290,4 @@
     _framePreProcessor.EnableContentAnalysis(enable);
 }
 
-} //namespace
+}  // namespace
diff --git a/webrtc/modules/video_processing/main/source/video_processing_impl.h b/webrtc/modules/video_processing/main/source/video_processing_impl.h
index 57556ec..278aa7b 100644
--- a/webrtc/modules/video_processing/main/source/video_processing_impl.h
+++ b/webrtc/modules/video_processing/main/source/video_processing_impl.h
@@ -85,6 +85,6 @@
     VPMFramePreprocessor       _framePreProcessor;
 };
 
-} // namespace
+}  // namespace
 
 #endif
diff --git a/webrtc/modules/video_render/android/video_render_android_impl.h b/webrtc/modules/video_render/android/video_render_android_impl.h
index d8c8fe7..61f079b 100644
--- a/webrtc/modules/video_render/android/video_render_android_impl.h
+++ b/webrtc/modules/video_render/android/video_render_android_impl.h
@@ -146,6 +146,6 @@
   ThreadWrapper* _javaRenderThread;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_ANDROID_VIDEO_RENDER_ANDROID_IMPL_H_
diff --git a/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc b/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc
index a50ca897..99d7f89 100644
--- a/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc
+++ b/webrtc/modules/video_render/android/video_render_android_native_opengl2.cc
@@ -447,4 +447,4 @@
   return _openGLRenderer.Setup(width, height);
 }
 
-}  //namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/video_render/android/video_render_android_native_opengl2.h b/webrtc/modules/video_render/android/video_render_android_native_opengl2.h
index 16a5c62..57b5eda 100644
--- a/webrtc/modules/video_render/android/video_render_android_native_opengl2.h
+++ b/webrtc/modules/video_render/android/video_render_android_native_opengl2.h
@@ -91,6 +91,6 @@
   jclass _javaRenderClass;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_ANDROID_VIDEO_RENDER_ANDROID_NATIVE_OPENGL2_H_
diff --git a/webrtc/modules/video_render/external/video_render_external_impl.cc b/webrtc/modules/video_render/external/video_render_external_impl.cc
index a0ef3f4..6f37bae 100644
--- a/webrtc/modules/video_render/external/video_render_external_impl.cc
+++ b/webrtc/modules/video_render/external/video_render_external_impl.cc
@@ -201,5 +201,5 @@
 {
     return 0;
 }
-} //namespace webrtc
+}  // namespace webrtc
 
diff --git a/webrtc/modules/video_render/external/video_render_external_impl.h b/webrtc/modules/video_render/external/video_render_external_impl.h
index 3a5472b..11791ea 100644
--- a/webrtc/modules/video_render/external/video_render_external_impl.h
+++ b/webrtc/modules/video_render/external/video_render_external_impl.h
@@ -125,7 +125,7 @@
     bool _fullscreen;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_EXTERNAL_VIDEO_RENDER_EXTERNAL_IMPL_H_
diff --git a/webrtc/modules/video_render/i_video_render.h b/webrtc/modules/video_render/i_video_render.h
index da3ade5..76ad8e6 100644
--- a/webrtc/modules/video_render/i_video_render.h
+++ b/webrtc/modules/video_render/i_video_render.h
@@ -128,6 +128,6 @@
                               const float bottom) = 0;
 
 };
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_I_VIDEO_RENDER_H_
diff --git a/webrtc/modules/video_render/include/video_render.h b/webrtc/modules/video_render/include/video_render.h
index 725cbba..de00120 100644
--- a/webrtc/modules/video_render/include/video_render.h
+++ b/webrtc/modules/video_render/include/video_render.h
@@ -288,5 +288,5 @@
                                        const bool mirrorXAxis,
                                        const bool mirrorYAxis) = 0;
 };
-} //namespace webrtc
+}  // namespace webrtc
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_H_
diff --git a/webrtc/modules/video_render/include/video_render_defines.h b/webrtc/modules/video_render/include/video_render_defines.h
index 992b821..135deae 100644
--- a/webrtc/modules/video_render/include/video_render_defines.h
+++ b/webrtc/modules/video_render/include/video_render_defines.h
@@ -88,6 +88,6 @@
     kRotation270 = 3
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_DEFINES_H_
diff --git a/webrtc/modules/video_render/linux/video_render_linux_impl.cc b/webrtc/modules/video_render/linux/video_render_linux_impl.cc
index b50c1bd..76dc204 100644
--- a/webrtc/modules/video_render/linux/video_render_linux_impl.cc
+++ b/webrtc/modules/video_render/linux/video_render_linux_impl.cc
@@ -266,5 +266,5 @@
     return -1;
 }
 
-} //namespace webrtc
+}  // namespace webrtc
 
diff --git a/webrtc/modules/video_render/linux/video_render_linux_impl.h b/webrtc/modules/video_render/linux/video_render_linux_impl.h
index 3318ddf..0ee0d57 100644
--- a/webrtc/modules/video_render/linux/video_render_linux_impl.h
+++ b/webrtc/modules/video_render/linux/video_render_linux_impl.h
@@ -126,5 +126,5 @@
     VideoX11Render* _ptrX11Render;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_LINUX_VIDEO_RENDER_LINUX_IMPL_H_
diff --git a/webrtc/modules/video_render/linux/video_x11_channel.cc b/webrtc/modules/video_render/linux/video_x11_channel.cc
index da10a97..fb55002 100644
--- a/webrtc/modules/video_render/linux/video_x11_channel.cc
+++ b/webrtc/modules/video_render/linux/video_x11_channel.cc
@@ -312,6 +312,6 @@
 }
 
 
-} //namespace webrtc
+}  // namespace webrtc
 
 
diff --git a/webrtc/modules/video_render/linux/video_x11_channel.h b/webrtc/modules/video_render/linux/video_x11_channel.h
index 30d27e8..9571311 100644
--- a/webrtc/modules/video_render/linux/video_x11_channel.h
+++ b/webrtc/modules/video_render/linux/video_x11_channel.h
@@ -91,6 +91,6 @@
 };
 
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_LINUX_VIDEO_X11_CHANNEL_H_
diff --git a/webrtc/modules/video_render/linux/video_x11_render.cc b/webrtc/modules/video_render/linux/video_x11_render.cc
index 570883c..14e2a0d 100644
--- a/webrtc/modules/video_render/linux/video_x11_render.cc
+++ b/webrtc/modules/video_render/linux/video_x11_render.cc
@@ -150,5 +150,5 @@
     return -1;
 }
 
-} //namespace webrtc
+}  // namespace webrtc
 
diff --git a/webrtc/modules/video_render/linux/video_x11_render.h b/webrtc/modules/video_render/linux/video_x11_render.h
index 5c15a0d..978388c 100644
--- a/webrtc/modules/video_render/linux/video_x11_render.h
+++ b/webrtc/modules/video_render/linux/video_x11_render.h
@@ -53,6 +53,6 @@
 };
 
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_LINUX_VIDEO_X11_RENDER_H_
diff --git a/webrtc/modules/video_render/mac/video_render_agl.cc b/webrtc/modules/video_render/mac/video_render_agl.cc
index e9b5f38..125bc4d 100644
--- a/webrtc/modules/video_render/mac/video_render_agl.cc
+++ b/webrtc/modules/video_render/mac/video_render_agl.cc
@@ -1784,7 +1784,7 @@
                             continue;
                         }
 
-                    } // next child control
+                    }  // next child control
                 }
                 lastControl = tempControl;
                 GetSuperControl(tempControl, &subControl);
@@ -1996,7 +1996,7 @@
     _renderCritSec.Leave();
 }
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif   // CARBON_RENDERING
 
diff --git a/webrtc/modules/video_render/mac/video_render_agl.h b/webrtc/modules/video_render/mac/video_render_agl.h
index e446fb1..3da1af8 100644
--- a/webrtc/modules/video_render/mac/video_render_agl.h
+++ b/webrtc/modules/video_render/mac/video_render_agl.h
@@ -173,7 +173,7 @@
 
 };
 
-}  //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_AGL_H_
 
diff --git a/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.cc b/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.cc
index f3fb2de..1d2110d 100644
--- a/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.cc
+++ b/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.cc
@@ -292,6 +292,6 @@
 }
 
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // CARBON_RENDERING
diff --git a/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.h b/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.h
index b0cb0fc..e41f6b5 100644
--- a/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.h
+++ b/webrtc/modules/video_render/mac/video_render_mac_carbon_impl.h
@@ -142,7 +142,7 @@
 };
 
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_MAC_CARBON_IMPL_H_
 #endif // CARBON_RENDERING
diff --git a/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.h b/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.h
index 5507f06..edfa286 100644
--- a/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.h
+++ b/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.h
@@ -137,7 +137,7 @@
 
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_MAC_COCOA_IMPL_H_
 #endif	// COCOA_RENDERING
diff --git a/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.mm b/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.mm
index c518c1f..41c7049 100644
--- a/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.mm
+++ b/webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.mm
@@ -264,6 +264,6 @@
     return -1;
 }
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // COCOA_RENDERING
diff --git a/webrtc/modules/video_render/mac/video_render_nsopengl.h b/webrtc/modules/video_render/mac/video_render_nsopengl.h
index 3e5af3a..30d5e25 100644
--- a/webrtc/modules/video_render/mac/video_render_nsopengl.h
+++ b/webrtc/modules/video_render/mac/video_render_nsopengl.h
@@ -184,7 +184,7 @@
     NSRect _windowRefSuperViewFrame;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif   // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_NSOPENGL_H_
 #endif	 // COCOA_RENDERING
diff --git a/webrtc/modules/video_render/mac/video_render_nsopengl.mm b/webrtc/modules/video_render/mac/video_render_nsopengl.mm
index 5b80bdd..c83ba23 100644
--- a/webrtc/modules/video_render/mac/video_render_nsopengl.mm
+++ b/webrtc/modules/video_render/mac/video_render_nsopengl.mm
@@ -1260,6 +1260,6 @@
  */
 
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // COCOA_RENDERING
diff --git a/webrtc/modules/video_render/video_render_impl.cc b/webrtc/modules/video_render/video_render_impl.cc
index a6cff87..d0ad7c3 100644
--- a/webrtc/modules/video_render/video_render_impl.cc
+++ b/webrtc/modules/video_render/video_render_impl.cc
@@ -998,4 +998,4 @@
     return incomingStream->EnableMirroring(enable, mirrorXAxis, mirrorYAxis);
 }
 
-} //namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/modules/video_render/video_render_impl.h b/webrtc/modules/video_render/video_render_impl.h
index 49bd77b..2f62083 100644
--- a/webrtc/modules/video_render/video_render_impl.h
+++ b/webrtc/modules/video_render/video_render_impl.h
@@ -222,6 +222,6 @@
     MapWrapper& _streamRenderMap;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_VIDEO_RENDER_IMPL_H_
diff --git a/webrtc/modules/video_render/windows/i_video_render_win.h b/webrtc/modules/video_render/windows/i_video_render_win.h
index f9680ba..6d5e91f 100644
--- a/webrtc/modules/video_render/windows/i_video_render_win.h
+++ b/webrtc/modules/video_render/windows/i_video_render_win.h
@@ -106,5 +106,5 @@
 
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_
diff --git a/webrtc/modules/video_render/windows/video_render_direct3d9.cc b/webrtc/modules/video_render/windows/video_render_direct3d9.cc
index 87a23c3..5e9d122 100644
--- a/webrtc/modules/video_render/windows/video_render_direct3d9.cc
+++ b/webrtc/modules/video_render/windows/video_render_direct3d9.cc
@@ -1174,5 +1174,5 @@
     return 0;
 }
 
-} //namespace webrtc
+}  // namespace webrtc
 
diff --git a/webrtc/modules/video_render/windows/video_render_direct3d9.h b/webrtc/modules/video_render/windows/video_render_direct3d9.h
index 9688f77..4d4fe9a 100644
--- a/webrtc/modules/video_render/windows/video_render_direct3d9.h
+++ b/webrtc/modules/video_render/windows/video_render_direct3d9.h
@@ -250,6 +250,6 @@
     DWORD _availableMemory;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_VIDEO_RENDER_DIRECT3D9_H_
diff --git a/webrtc/modules/video_render/windows/video_render_windows_impl.cc b/webrtc/modules/video_render/windows/video_render_windows_impl.cc
index 686f778..093b1f3 100644
--- a/webrtc/modules/video_render/windows/video_render_windows_impl.cc
+++ b/webrtc/modules/video_render/windows/video_render_windows_impl.cc
@@ -342,5 +342,5 @@
     return error;
 }
 
-} //namespace webrtc
+}  // namespace webrtc
 
diff --git a/webrtc/modules/video_render/windows/video_render_windows_impl.h b/webrtc/modules/video_render/windows/video_render_windows_impl.h
index ec730fe..64f59c0 100644
--- a/webrtc/modules/video_render/windows/video_render_windows_impl.h
+++ b/webrtc/modules/video_render/windows/video_render_windows_impl.h
@@ -135,6 +135,6 @@
     IVideoRenderWin* _ptrRendererWin;
 };
 
-} //namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_VIDEO_RENDER_WINDOWS_IMPL_H_
diff --git a/webrtc/system_wrappers/interface/condition_variable_wrapper.h b/webrtc/system_wrappers/interface/condition_variable_wrapper.h
index 29d2dfe..151f00e 100644
--- a/webrtc/system_wrappers/interface/condition_variable_wrapper.h
+++ b/webrtc/system_wrappers/interface/condition_variable_wrapper.h
@@ -37,6 +37,6 @@
   virtual void WakeAll() = 0;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_CONDITION_VARIABLE_WRAPPER_H_
diff --git a/webrtc/system_wrappers/interface/cpu_features_wrapper.h b/webrtc/system_wrappers/interface/cpu_features_wrapper.h
index eacfe40..85152ba 100644
--- a/webrtc/system_wrappers/interface/cpu_features_wrapper.h
+++ b/webrtc/system_wrappers/interface/cpu_features_wrapper.h
@@ -45,7 +45,7 @@
 extern uint64_t WebRtc_GetCPUFeaturesARM(void);
 
 #if defined(__cplusplus) || defined(c_plusplus)
-}    // extern "C"
+}  // extern "C"
 #endif
 
 #endif // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_CPU_FEATURES_WRAPPER_H_
diff --git a/webrtc/system_wrappers/interface/cpu_info.h b/webrtc/system_wrappers/interface/cpu_info.h
index 7086427..fa8c388 100644
--- a/webrtc/system_wrappers/interface/cpu_info.h
+++ b/webrtc/system_wrappers/interface/cpu_info.h
@@ -24,6 +24,6 @@
   static uint32_t number_of_cores_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_CPU_INFO_H_
diff --git a/webrtc/system_wrappers/interface/critical_section_wrapper.h b/webrtc/system_wrappers/interface/critical_section_wrapper.h
index 167951d..0253a28 100644
--- a/webrtc/system_wrappers/interface/critical_section_wrapper.h
+++ b/webrtc/system_wrappers/interface/critical_section_wrapper.h
@@ -56,6 +56,6 @@
   CriticalSectionWrapper* ptr_crit_sec_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_CRITICAL_SECTION_WRAPPER_H_
diff --git a/webrtc/system_wrappers/interface/event_wrapper.h b/webrtc/system_wrappers/interface/event_wrapper.h
index 4ee18a6..7a18232 100644
--- a/webrtc/system_wrappers/interface/event_wrapper.h
+++ b/webrtc/system_wrappers/interface/event_wrapper.h
@@ -55,6 +55,6 @@
   virtual bool StopTimer() = 0;
 
 };
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_EVENT_WRAPPER_H_
diff --git a/webrtc/system_wrappers/interface/file_wrapper.h b/webrtc/system_wrappers/interface/file_wrapper.h
index 2ab6875..5de6774 100644
--- a/webrtc/system_wrappers/interface/file_wrapper.h
+++ b/webrtc/system_wrappers/interface/file_wrapper.h
@@ -73,6 +73,6 @@
   virtual int Rewind() = 0;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_FILE_WRAPPER_H_
diff --git a/webrtc/system_wrappers/interface/map_wrapper.h b/webrtc/system_wrappers/interface/map_wrapper.h
index c0c332e..86643e5 100644
--- a/webrtc/system_wrappers/interface/map_wrapper.h
+++ b/webrtc/system_wrappers/interface/map_wrapper.h
@@ -70,6 +70,6 @@
   std::map<int, MapItem*>    map_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_MAP_WRAPPER_H_
diff --git a/webrtc/system_wrappers/interface/rw_lock_wrapper.h b/webrtc/system_wrappers/interface/rw_lock_wrapper.h
index 91305c1..80eb5da 100644
--- a/webrtc/system_wrappers/interface/rw_lock_wrapper.h
+++ b/webrtc/system_wrappers/interface/rw_lock_wrapper.h
@@ -63,6 +63,6 @@
   RWLockWrapper& rw_lock_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_RW_LOCK_WRAPPER_H_
diff --git a/webrtc/system_wrappers/interface/scoped_ptr.h b/webrtc/system_wrappers/interface/scoped_ptr.h
index 74b6ad3..84113d8 100644
--- a/webrtc/system_wrappers/interface/scoped_ptr.h
+++ b/webrtc/system_wrappers/interface/scoped_ptr.h
@@ -253,6 +253,6 @@
   a.swap(b);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // #ifndef WEBRTC_SYSTEM_WRAPPERS_INTERFACE_SCOPED_PTR_H_
diff --git a/webrtc/system_wrappers/interface/thread_wrapper.h b/webrtc/system_wrappers/interface/thread_wrapper.h
index e832363..d9e7d8a 100644
--- a/webrtc/system_wrappers/interface/thread_wrapper.h
+++ b/webrtc/system_wrappers/interface/thread_wrapper.h
@@ -89,6 +89,6 @@
   virtual bool Stop() = 0;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_THREAD_WRAPPER_H_
diff --git a/webrtc/system_wrappers/source/atomic32_posix.cc b/webrtc/system_wrappers/source/atomic32_posix.cc
index 38f36e0..614f333 100644
--- a/webrtc/system_wrappers/source/atomic32_posix.cc
+++ b/webrtc/system_wrappers/source/atomic32_posix.cc
@@ -54,4 +54,4 @@
   return value_;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/condition_variable.cc b/webrtc/system_wrappers/source/condition_variable.cc
index f36f7e2..577949d 100644
--- a/webrtc/system_wrappers/source/condition_variable.cc
+++ b/webrtc/system_wrappers/source/condition_variable.cc
@@ -38,4 +38,4 @@
 #endif
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/condition_variable_posix.cc b/webrtc/system_wrappers/source/condition_variable_posix.cc
index 41e8023..846cd63 100644
--- a/webrtc/system_wrappers/source/condition_variable_posix.cc
+++ b/webrtc/system_wrappers/source/condition_variable_posix.cc
@@ -129,4 +129,4 @@
   pthread_cond_broadcast(&cond_);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/condition_variable_posix.h b/webrtc/system_wrappers/source/condition_variable_posix.h
index 53adcdb..6e69746 100644
--- a/webrtc/system_wrappers/source/condition_variable_posix.h
+++ b/webrtc/system_wrappers/source/condition_variable_posix.h
@@ -35,6 +35,6 @@
   pthread_cond_t cond_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_CONDITION_VARIABLE_POSIX_H_
diff --git a/webrtc/system_wrappers/source/cpu_info.cc b/webrtc/system_wrappers/source/cpu_info.cc
index 9e2628a..c482d87 100644
--- a/webrtc/system_wrappers/source/cpu_info.cc
+++ b/webrtc/system_wrappers/source/cpu_info.cc
@@ -61,4 +61,4 @@
   return number_of_cores_;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/critical_section.cc b/webrtc/system_wrappers/source/critical_section.cc
index 1b4511d..c586588 100644
--- a/webrtc/system_wrappers/source/critical_section.cc
+++ b/webrtc/system_wrappers/source/critical_section.cc
@@ -25,4 +25,4 @@
 #endif
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/critical_section_posix.cc b/webrtc/system_wrappers/source/critical_section_posix.cc
index ac65940..36b9f13 100644
--- a/webrtc/system_wrappers/source/critical_section_posix.cc
+++ b/webrtc/system_wrappers/source/critical_section_posix.cc
@@ -39,4 +39,4 @@
   (void) pthread_mutex_unlock(&mutex_);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/critical_section_posix.h b/webrtc/system_wrappers/source/critical_section_posix.h
index f09aba0..6a0426c 100644
--- a/webrtc/system_wrappers/source/critical_section_posix.h
+++ b/webrtc/system_wrappers/source/critical_section_posix.h
@@ -31,6 +31,6 @@
   friend class ConditionVariablePosix;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_CRITICAL_SECTION_POSIX_H_
diff --git a/webrtc/system_wrappers/source/critical_section_win.cc b/webrtc/system_wrappers/source/critical_section_win.cc
index 7acb007..b5149d1 100644
--- a/webrtc/system_wrappers/source/critical_section_win.cc
+++ b/webrtc/system_wrappers/source/critical_section_win.cc
@@ -30,4 +30,4 @@
   LeaveCriticalSection(&crit);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/critical_section_win.h b/webrtc/system_wrappers/source/critical_section_win.h
index be4dd74..be237ac 100644
--- a/webrtc/system_wrappers/source/critical_section_win.h
+++ b/webrtc/system_wrappers/source/critical_section_win.h
@@ -33,6 +33,6 @@
   friend class ConditionVariableNativeWin;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_CRITICAL_SECTION_WIN_H_
diff --git a/webrtc/system_wrappers/source/event.cc b/webrtc/system_wrappers/source/event.cc
index 18ac4f0..75571b5 100644
--- a/webrtc/system_wrappers/source/event.cc
+++ b/webrtc/system_wrappers/source/event.cc
@@ -30,4 +30,4 @@
   return EventPosix::Create();
 #endif
 }
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/event_posix.cc b/webrtc/system_wrappers/source/event_posix.cc
index c329189..1188bc8 100644
--- a/webrtc/system_wrappers/source/event_posix.cc
+++ b/webrtc/system_wrappers/source/event_posix.cc
@@ -280,4 +280,4 @@
   return true;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/file_impl.cc b/webrtc/system_wrappers/source/file_impl.cc
index c9bd825..190f399 100644
--- a/webrtc/system_wrappers/source/file_impl.cc
+++ b/webrtc/system_wrappers/source/file_impl.cc
@@ -248,4 +248,4 @@
   return -1;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/file_impl.h b/webrtc/system_wrappers/source/file_impl.h
index c810b04..5dbbcfb 100644
--- a/webrtc/system_wrappers/source/file_impl.h
+++ b/webrtc/system_wrappers/source/file_impl.h
@@ -59,6 +59,6 @@
   char file_name_utf8_[kMaxFileNameSize];
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_FILE_IMPL_H_
diff --git a/webrtc/system_wrappers/source/list_no_stl.cc b/webrtc/system_wrappers/source/list_no_stl.cc
index b5f6137..5c9f5af0 100644
--- a/webrtc/system_wrappers/source/list_no_stl.cc
+++ b/webrtc/system_wrappers/source/list_no_stl.cc
@@ -238,4 +238,4 @@
   size_++;
 }
 
-} //namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/list_stl.cc b/webrtc/system_wrappers/source/list_stl.cc
index 1dac0c9..81b6f0c 100644
--- a/webrtc/system_wrappers/source/list_stl.cc
+++ b/webrtc/system_wrappers/source/list_stl.cc
@@ -204,4 +204,4 @@
   return 0;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/map.cc b/webrtc/system_wrappers/source/map.cc
index aad6f5c..63ec54f 100644
--- a/webrtc/system_wrappers/source/map.cc
+++ b/webrtc/system_wrappers/source/map.cc
@@ -138,4 +138,4 @@
   return -1;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/map_no_stl.cc b/webrtc/system_wrappers/source/map_no_stl.cc
index 572925b..171483e 100644
--- a/webrtc/system_wrappers/source/map_no_stl.cc
+++ b/webrtc/system_wrappers/source/map_no_stl.cc
@@ -177,4 +177,4 @@
   return 0;
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/map_no_stl.h b/webrtc/system_wrappers/source/map_no_stl.h
index 9d8f5d8..23c559d 100644
--- a/webrtc/system_wrappers/source/map_no_stl.h
+++ b/webrtc/system_wrappers/source/map_no_stl.h
@@ -65,6 +65,6 @@
   DISALLOW_COPY_AND_ASSIGN(MapNoStl);
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_MAP_NO_STL_H_
diff --git a/webrtc/system_wrappers/source/set_thread_name_win.h b/webrtc/system_wrappers/source/set_thread_name_win.h
index 76d18bf..cca126f 100644
--- a/webrtc/system_wrappers/source/set_thread_name_win.h
+++ b/webrtc/system_wrappers/source/set_thread_name_win.h
@@ -104,5 +104,5 @@
     {
     }
 }
-} // namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_WINDOWS_SET_NAME_H_
diff --git a/webrtc/system_wrappers/source/sort.cc b/webrtc/system_wrappers/source/sort.cc
index 8c774bb..c3b61e0 100644
--- a/webrtc/system_wrappers/source/sort.cc
+++ b/webrtc/system_wrappers/source/sort.cc
@@ -483,4 +483,4 @@
 #endif
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/thread.cc b/webrtc/system_wrappers/source/thread.cc
index 2fe6a61..6f023f8 100644
--- a/webrtc/system_wrappers/source/thread.cc
+++ b/webrtc/system_wrappers/source/thread.cc
@@ -28,4 +28,4 @@
 #endif
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/thread_posix.cc b/webrtc/system_wrappers/source/thread_posix.cc
index b1b445f..8a24ae5 100644
--- a/webrtc/system_wrappers/source/thread_posix.cc
+++ b/webrtc/system_wrappers/source/thread_posix.cc
@@ -355,4 +355,4 @@
   }
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/thread_posix.h b/webrtc/system_wrappers/source/thread_posix.h
index 67db496..bacf908 100644
--- a/webrtc/system_wrappers/source/thread_posix.h
+++ b/webrtc/system_wrappers/source/thread_posix.h
@@ -68,6 +68,6 @@
   pthread_t               thread_;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_POSIX_H_
diff --git a/webrtc/system_wrappers/source/thread_win.cc b/webrtc/system_wrappers/source/thread_win.cc
index 2e029e7..c68ee1a 100644
--- a/webrtc/system_wrappers/source/thread_win.cc
+++ b/webrtc/system_wrappers/source/thread_win.cc
@@ -195,4 +195,4 @@
   critsect_stop_->Leave();
 };
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/system_wrappers/source/thread_win.h b/webrtc/system_wrappers/source/thread_win.h
index 2705f77..1122676 100644
--- a/webrtc/system_wrappers/source/thread_win.h
+++ b/webrtc/system_wrappers/source/thread_win.h
@@ -60,6 +60,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_SYSTEM_WRAPPERS_SOURCE_THREAD_WIN_H_
diff --git a/webrtc/test/channel_transport/udp_socket2_win.cc b/webrtc/test/channel_transport/udp_socket2_win.cc
index b244f72..97cd5e1 100644
--- a/webrtc/test/channel_transport/udp_socket2_win.cc
+++ b/webrtc/test/channel_transport/udp_socket2_win.cc
@@ -508,7 +508,7 @@
             OutstandingCallCompleted();
             return;
         }
-    } // if (pIOContext == NULL || error == ERROR_OPERATION_ABORTED)
+    }  // if (pIOContext == NULL || error == ERROR_OPERATION_ABORTED)
 
     if(pIOContext->ioOperation == OP_WRITE)
     {
diff --git a/webrtc/video_engine/test/auto_test/automated/vie_api_integration_test.cc b/webrtc/video_engine/test/auto_test/automated/vie_api_integration_test.cc
index a39ef0f..5ba17f2 100644
--- a/webrtc/video_engine/test/auto_test/automated/vie_api_integration_test.cc
+++ b/webrtc/video_engine/test/auto_test/automated/vie_api_integration_test.cc
@@ -52,4 +52,4 @@
   tests_->ViERtpRtcpAPITest();
 }
 
-} // namespace
+}  // namespace
diff --git a/webrtc/video_engine/test/auto_test/automated/vie_standard_integration_test.cc b/webrtc/video_engine/test/auto_test/automated/vie_standard_integration_test.cc
index f517bcc..0990fa2 100644
--- a/webrtc/video_engine/test/auto_test/automated/vie_standard_integration_test.cc
+++ b/webrtc/video_engine/test/auto_test/automated/vie_standard_integration_test.cc
@@ -65,4 +65,4 @@
   tests_->ViERtpRtcpStandardTest();
 }
 
-} // namespace
+}  // namespace
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc
index 6bfb259..dbcccf1 100644
--- a/webrtc/voice_engine/channel.cc
+++ b/webrtc/voice_engine/channel.cc
@@ -5324,5 +5324,5 @@
   return 0;
 }
 
-} // namespace voe
-} // namespace webrtc
+}  // namespace voe
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/channel.h b/webrtc/voice_engine/channel.h
index d05cd21..a1e16fe 100644
--- a/webrtc/voice_engine/channel.h
+++ b/webrtc/voice_engine/channel.h
@@ -551,8 +551,8 @@
     bool _rxNsIsEnabled;
 };
 
-} // namespace voe
+}  // namespace voe
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_CHANNEL_H
diff --git a/webrtc/voice_engine/channel_manager.cc b/webrtc/voice_engine/channel_manager.cc
index 5adfcbe..4b20317 100644
--- a/webrtc/voice_engine/channel_manager.cc
+++ b/webrtc/voice_engine/channel_manager.cc
@@ -156,6 +156,6 @@
     return static_cast<Channel*> (it->GetItem());
 }
 
-} // namespace voe
+}  // namespace voe
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/channel_manager.h b/webrtc/voice_engine/channel_manager.h
index 49e7bf7..723ff04 100644
--- a/webrtc/voice_engine/channel_manager.h
+++ b/webrtc/voice_engine/channel_manager.h
@@ -82,8 +82,8 @@
     MapWrapper _channels;
 };
 
-} // namespace voe
+}  // namespace voe
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_CHANNEL_MANAGER_H
diff --git a/webrtc/voice_engine/channel_manager_base.cc b/webrtc/voice_engine/channel_manager_base.cc
index 25d4058..440a0ea 100644
--- a/webrtc/voice_engine/channel_manager_base.cc
+++ b/webrtc/voice_engine/channel_manager_base.cc
@@ -222,6 +222,6 @@
     }
 }
 
-} // namespace voe
+}  // namespace voe
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/channel_manager_base.h b/webrtc/voice_engine/channel_manager_base.h
index a61bf5a..1db1903 100644
--- a/webrtc/voice_engine/channel_manager_base.h
+++ b/webrtc/voice_engine/channel_manager_base.h
@@ -80,8 +80,8 @@
     RWLockWrapper* _itemsRWLockPtr;
 };
 
-} // namespace voe
+}  // namespace voe
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_CHANNEL_MANAGER_BASE_H
diff --git a/webrtc/voice_engine/dtmf_inband.h b/webrtc/voice_engine/dtmf_inband.h
index c867143..eb045c9 100644
--- a/webrtc/voice_engine/dtmf_inband.h
+++ b/webrtc/voice_engine/dtmf_inband.h
@@ -82,6 +82,6 @@
     uint32_t _delaySinceLastToneMS; // time since last generated tone [ms]
 };
 
-}   // namespace webrtc
+}  // namespace webrtc
 
 #endif // #ifndef WEBRTC_VOICE_ENGINE_DTMF_INBAND_H_
diff --git a/webrtc/voice_engine/dtmf_inband_queue.h b/webrtc/voice_engine/dtmf_inband_queue.h
index fa4967a..5ca3f9c 100644
--- a/webrtc/voice_engine/dtmf_inband_queue.h
+++ b/webrtc/voice_engine/dtmf_inband_queue.h
@@ -45,6 +45,6 @@
     uint8_t _DtmfLevel[kDtmfInbandMax];
 };
 
-}   // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_DTMF_INBAND_QUEUE_H
diff --git a/webrtc/voice_engine/include/voe_audio_processing.h b/webrtc/voice_engine/include/voe_audio_processing.h
index 51ca952..3ba7b1a 100644
--- a/webrtc/voice_engine/include/voe_audio_processing.h
+++ b/webrtc/voice_engine/include/voe_audio_processing.h
@@ -232,6 +232,6 @@
     virtual ~VoEAudioProcessing() {}
 };
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_AUDIO_PROCESSING_H
diff --git a/webrtc/voice_engine/include/voe_base.h b/webrtc/voice_engine/include/voe_base.h
index 2958108..1a06c2e 100644
--- a/webrtc/voice_engine/include/voe_base.h
+++ b/webrtc/voice_engine/include/voe_base.h
@@ -186,6 +186,6 @@
     virtual ~VoEBase() {}
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  //  WEBRTC_VOICE_ENGINE_VOE_BASE_H
diff --git a/webrtc/voice_engine/include/voe_codec.h b/webrtc/voice_engine/include/voe_codec.h
index 4126965..e69737d 100644
--- a/webrtc/voice_engine/include/voe_codec.h
+++ b/webrtc/voice_engine/include/voe_codec.h
@@ -147,6 +147,6 @@
     virtual ~VoECodec() {}
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  //  WEBRTC_VOICE_ENGINE_VOE_CODEC_H
diff --git a/webrtc/voice_engine/include/voe_hardware.h b/webrtc/voice_engine/include/voe_hardware.h
index 8236f65..5c247d7 100644
--- a/webrtc/voice_engine/include/voe_hardware.h
+++ b/webrtc/voice_engine/include/voe_hardware.h
@@ -136,6 +136,6 @@
     virtual ~VoEHardware() {}
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  //  WEBRTC_VOICE_ENGINE_VOE_HARDWARE_H
diff --git a/webrtc/voice_engine/include/voe_neteq_stats.h b/webrtc/voice_engine/include/voe_neteq_stats.h
index 7b7c47f..f4e8f7b 100644
--- a/webrtc/voice_engine/include/voe_neteq_stats.h
+++ b/webrtc/voice_engine/include/voe_neteq_stats.h
@@ -40,6 +40,6 @@
     virtual ~VoENetEqStats() {}
 };
 
-}   // namespace webrtc
+}  // namespace webrtc
 
 #endif    // #ifndef WEBRTC_VOICE_ENGINE_VOE_NETEQ_STATS_H
diff --git a/webrtc/voice_engine/include/voe_network.h b/webrtc/voice_engine/include/voe_network.h
index 15a770b..7bcf903 100644
--- a/webrtc/voice_engine/include/voe_network.h
+++ b/webrtc/voice_engine/include/voe_network.h
@@ -119,6 +119,6 @@
     virtual ~VoENetwork() {}
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  //  WEBRTC_VOICE_ENGINE_VOE_NETWORK_H
diff --git a/webrtc/voice_engine/include/voe_video_sync.h b/webrtc/voice_engine/include/voe_video_sync.h
index a3770ea..ef811a9 100644
--- a/webrtc/voice_engine/include/voe_video_sync.h
+++ b/webrtc/voice_engine/include/voe_video_sync.h
@@ -99,6 +99,6 @@
     virtual ~VoEVideoSync() { }
 };
 
-}   // namespace webrtc
+}  // namespace webrtc
 
 #endif  // #ifndef WEBRTC_VOICE_ENGINE_VOE_VIDEO_SYNC_H
diff --git a/webrtc/voice_engine/level_indicator.cc b/webrtc/voice_engine/level_indicator.cc
index 12ca906..61dfbcd 100644
--- a/webrtc/voice_engine/level_indicator.cc
+++ b/webrtc/voice_engine/level_indicator.cc
@@ -100,4 +100,4 @@
 
 }  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/monitor_module.cc b/webrtc/voice_engine/monitor_module.cc
index ef863f9..2389a51 100644
--- a/webrtc/voice_engine/monitor_module.cc
+++ b/webrtc/voice_engine/monitor_module.cc
@@ -87,6 +87,6 @@
     return 0;
 }
 
-}  //  namespace voe
+}  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/monitor_module.h b/webrtc/voice_engine/monitor_module.h
index d55baec..ebe4acaa9 100644
--- a/webrtc/voice_engine/monitor_module.h
+++ b/webrtc/voice_engine/monitor_module.h
@@ -56,8 +56,8 @@
     int32_t _lastProcessTime;
 };
 
-}  //  namespace voe
+}  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
 #endif // VOICE_ENGINE_MONITOR_MODULE
diff --git a/webrtc/voice_engine/output_mixer.cc b/webrtc/voice_engine/output_mixer.cc
index b928455..dba96fe 100644
--- a/webrtc/voice_engine/output_mixer.cc
+++ b/webrtc/voice_engine/output_mixer.cc
@@ -655,6 +655,6 @@
     return 0;
 }
 
-}  //  namespace voe
+}  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/output_mixer.h b/webrtc/voice_engine/output_mixer.h
index 5a423c2..fc9afd8 100644
--- a/webrtc/voice_engine/output_mixer.h
+++ b/webrtc/voice_engine/output_mixer.h
@@ -147,8 +147,8 @@
     bool _outputFileRecording;
 };
 
-}  //  namespace voe
+}  // namespace voe
 
-}  //  namespace werbtc
+}  // namespace werbtc
 
 #endif  // VOICE_ENGINE_OUTPUT_MIXER_H_
diff --git a/webrtc/voice_engine/shared_data.cc b/webrtc/voice_engine/shared_data.cc
index 88f66fd..e993778 100644
--- a/webrtc/voice_engine/shared_data.cc
+++ b/webrtc/voice_engine/shared_data.cc
@@ -118,6 +118,6 @@
   _engineStatistics.SetLastError(error, level, msg);
 }
 
-}  //  namespace voe
+}  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/shared_data.h b/webrtc/voice_engine/shared_data.h
index b20225f..a841547 100644
--- a/webrtc/voice_engine/shared_data.h
+++ b/webrtc/voice_engine/shared_data.h
@@ -83,7 +83,7 @@
     virtual ~SharedData();
 };
 
-} //  namespace voe
+}  // namespace voe
 
-} //  namespace webrtc
+}  // namespace webrtc
 #endif // WEBRTC_VOICE_ENGINE_SHARED_DATA_H
diff --git a/webrtc/voice_engine/statistics.cc b/webrtc/voice_engine/statistics.cc
index 0c2b468..a1faae7 100644
--- a/webrtc/voice_engine/statistics.cc
+++ b/webrtc/voice_engine/statistics.cc
@@ -94,6 +94,6 @@
     return _lastError;
 }
 
-}  //  namespace voe
+}  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/statistics.h b/webrtc/voice_engine/statistics.h
index 7d9582e..3dab916 100644
--- a/webrtc/voice_engine/statistics.h
+++ b/webrtc/voice_engine/statistics.h
@@ -48,6 +48,6 @@
 
 }  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_VOICE_ENGINE_STATISTICS_H
diff --git a/webrtc/voice_engine/test/auto_test/voe_cpu_test.cc b/webrtc/voice_engine/test/auto_test/voe_cpu_test.cc
index 1367ddc..dddbb2c 100644
--- a/webrtc/voice_engine/test/auto_test/voe_cpu_test.cc
+++ b/webrtc/voice_engine/test/auto_test/voe_cpu_test.cc
@@ -98,4 +98,4 @@
   return 0;
 }
 
-} //  namespace voetest
+}  // namespace voetest
diff --git a/webrtc/voice_engine/test/auto_test/voe_cpu_test.h b/webrtc/voice_engine/test/auto_test/voe_cpu_test.h
index 92d30c8..74ba3e9 100644
--- a/webrtc/voice_engine/test/auto_test/voe_cpu_test.h
+++ b/webrtc/voice_engine/test/auto_test/voe_cpu_test.h
@@ -26,6 +26,6 @@
   VoETestManager& _mgr;
 };
 
-} // namespace voetest
+}  // namespace voetest
 
 #endif // WEBRTC_VOICE_ENGINE_VOE_CPU_TEST_H
diff --git a/webrtc/voice_engine/test/auto_test/voe_extended_test.cc b/webrtc/voice_engine/test/auto_test/voe_extended_test.cc
index 38b3cdc..9568e89 100644
--- a/webrtc/voice_engine/test/auto_test/voe_extended_test.cc
+++ b/webrtc/voice_engine/test/auto_test/voe_extended_test.cc
@@ -1600,7 +1600,7 @@
       }
     }
     ANL();
-  } // for (int index = 0; index < nCodecs; index++)
+  }  // for (int index = 0; index < nCodecs; index++)
 
   // restore PCMU
   const CodecInst tmp = { 0, "PCMU", 8000, 160, 1, 64000 };
@@ -5304,4 +5304,4 @@
   return 0;
 }
 
-} //  namespace voetest
+}  // namespace voetest
diff --git a/webrtc/voice_engine/test/auto_test/voe_extended_test.h b/webrtc/voice_engine/test/auto_test/voe_extended_test.h
index f0a62b5..0c5d4e1 100644
--- a/webrtc/voice_engine/test/auto_test/voe_extended_test.h
+++ b/webrtc/voice_engine/test/auto_test/voe_extended_test.h
@@ -469,5 +469,5 @@
   bool _sending[32];
 };
 
-} //  namespace voetest
+}  // namespace voetest
 #endif // WEBRTC_VOICE_ENGINE_VOE_EXTENDED_TEST_H
diff --git a/webrtc/voice_engine/test/auto_test/voe_standard_test.cc b/webrtc/voice_engine/test/auto_test/voe_standard_test.cc
index 751cd8e..fed756d 100644
--- a/webrtc/voice_engine/test/auto_test/voe_standard_test.cc
+++ b/webrtc/voice_engine/test/auto_test/voe_standard_test.cc
@@ -496,7 +496,7 @@
         xtend.TestPassed("VolumeControl");
       }
       api_manager.GetExtendedMenuSelection(ext_selection);
-    } // while (extendedSel != XSEL_None)
+    }  // while (extendedSel != XSEL_None)
   } else if (test_type == Stress) {
     VoEStressTest stressTest(test_manager);
     result = stressTest.DoTest();
@@ -524,7 +524,7 @@
 
   return 0;
 }
-} // namespace voetest
+}  // namespace voetest
 
 int RunInManualMode() {
   using namespace voetest;
diff --git a/webrtc/voice_engine/test/auto_test/voe_standard_test.h b/webrtc/voice_engine/test/auto_test/voe_standard_test.h
index 4170047..0710ce6 100644
--- a/webrtc/voice_engine/test/auto_test/voe_standard_test.h
+++ b/webrtc/voice_engine/test/auto_test/voe_standard_test.h
@@ -229,6 +229,6 @@
   ResourceManager        resource_manager_;
 };
 
-} // namespace voetest
+}  // namespace voetest
 
 #endif // WEBRTC_VOICE_ENGINE_VOE_STANDARD_TEST_H
diff --git a/webrtc/voice_engine/test/auto_test/voe_stress_test.cc b/webrtc/voice_engine/test/auto_test/voe_stress_test.cc
index b79c193..bd15404 100644
--- a/webrtc/voice_engine/test/auto_test/voe_stress_test.cc
+++ b/webrtc/voice_engine/test/auto_test/voe_stress_test.cc
@@ -79,8 +79,8 @@
         // Should not be possible
         printf("Invalid selection! (Test code error)\n");
         assert(false);
-    } // switch
-  } // while
+    }  // switch
+  }  // while
 
   return 0;
 }
@@ -409,4 +409,4 @@
   return true;
 }
 
-} //  namespace voetest
+}  // namespace voetest
diff --git a/webrtc/voice_engine/test/auto_test/voe_stress_test.h b/webrtc/voice_engine/test/auto_test/voe_stress_test.h
index ae3da2f..15653bc 100644
--- a/webrtc/voice_engine/test/auto_test/voe_stress_test.h
+++ b/webrtc/voice_engine/test/auto_test/voe_stress_test.h
@@ -44,6 +44,6 @@
   ThreadWrapper* _ptrExtraApiThread;
 };
 
-} //  namespace voetest
+}  // namespace voetest
 
 #endif // WEBRTC_VOICE_ENGINE_VOE_STRESS_TEST_H
diff --git a/webrtc/voice_engine/test/auto_test/voe_test_interface.h b/webrtc/voice_engine/test/auto_test/voe_test_interface.h
index dd109dc..d5693d9 100644
--- a/webrtc/voice_engine/test/auto_test/voe_test_interface.h
+++ b/webrtc/voice_engine/test/auto_test/voe_test_interface.h
@@ -49,5 +49,5 @@
 // Main test function
 int runAutoTest(TestType testType, ExtendedSelection extendedSel);
 
-} //  namespace voetest
+}  // namespace voetest
 #endif // WEBRTC_VOICE_ENGINE_VOE_TEST_INTERFACE_H
diff --git a/webrtc/voice_engine/test/auto_test/voe_unit_test.cc b/webrtc/voice_engine/test/auto_test/voe_unit_test.cc
index b092ae3..c67de57 100644
--- a/webrtc/voice_engine/test/auto_test/voe_unit_test.cc
+++ b/webrtc/voice_engine/test/auto_test/voe_unit_test.cc
@@ -210,8 +210,8 @@
         // Should not be possible
         printf("Invalid selection! (Test code error)\n");
         assert(false);
-    } // switch
-  } // while
+    }  // switch
+  }  // while
 
   return ret;
 }
@@ -1083,4 +1083,4 @@
   return 0;
 }
 
-} // namespace voetest
+}  // namespace voetest
diff --git a/webrtc/voice_engine/test/auto_test/voe_unit_test.h b/webrtc/voice_engine/test/auto_test/voe_unit_test.h
index 69af78c..fb80b3d 100644
--- a/webrtc/voice_engine/test/auto_test/voe_unit_test.h
+++ b/webrtc/voice_engine/test/auto_test/voe_unit_test.h
@@ -67,5 +67,5 @@
   int _extChannel;
 };
 
-} //  namespace voetest
+}  // namespace voetest
 #endif // WEBRTC_VOICE_ENGINE_VOE_UNIT_TEST_H
diff --git a/webrtc/voice_engine/transmit_mixer.cc b/webrtc/voice_engine/transmit_mixer.cc
index f594ef0..9c7e03e 100644
--- a/webrtc/voice_engine/transmit_mixer.cc
+++ b/webrtc/voice_engine/transmit_mixer.cc
@@ -1420,6 +1420,6 @@
   return swap_stereo_channels_;
 }
 
-}  //  namespace voe
+}  // namespace voe
 
-}  //  namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/transmit_mixer.h b/webrtc/voice_engine/transmit_mixer.h
index 450f125..1b575af 100644
--- a/webrtc/voice_engine/transmit_mixer.h
+++ b/webrtc/voice_engine/transmit_mixer.h
@@ -236,6 +236,6 @@
 
 #endif // WEBRTC_VOICE_ENGINE_TRANSMIT_MIXER_H
 
-}  //  namespace voe
+}  // namespace voe
 
 }  // namespace webrtc
diff --git a/webrtc/voice_engine/utility.cc b/webrtc/voice_engine/utility.cc
index 5bd87f8..5b7ee81 100644
--- a/webrtc/voice_engine/utility.cc
+++ b/webrtc/voice_engine/utility.cc
@@ -120,6 +120,6 @@
     }
 }
 
-} // namespace voe
+}  // namespace voe
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/utility.h b/webrtc/voice_engine/utility.h
index b51dc03..fcb4462 100644
--- a/webrtc/voice_engine/utility.h
+++ b/webrtc/voice_engine/utility.h
@@ -51,8 +51,8 @@
                              uint16_t len);
 };
 
-} // namespace voe
+}  // namespace voe
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_UTILITY_H
diff --git a/webrtc/voice_engine/voe_audio_processing_impl.cc b/webrtc/voice_engine/voe_audio_processing_impl.cc
index a1743ea..430f86d 100644
--- a/webrtc/voice_engine/voe_audio_processing_impl.cc
+++ b/webrtc/voice_engine/voe_audio_processing_impl.cc
@@ -1086,4 +1086,4 @@
 
 #endif  // #ifdef WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
 
-}   // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voe_audio_processing_impl.h b/webrtc/voice_engine/voe_audio_processing_impl.h
index 562e8ba..309d997 100644
--- a/webrtc/voice_engine/voe_audio_processing_impl.h
+++ b/webrtc/voice_engine/voe_audio_processing_impl.h
@@ -107,6 +107,6 @@
   voe::SharedData* _shared;
 };
 
-}  //  namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_AUDIO_PROCESSING_IMPL_H
diff --git a/webrtc/voice_engine/voe_base_impl.cc b/webrtc/voice_engine/voe_base_impl.cc
index 09f22d4..f993457 100644
--- a/webrtc/voice_engine/voe_base_impl.cc
+++ b/webrtc/voice_engine/voe_base_impl.cc
@@ -1241,4 +1241,4 @@
     return _shared->statistics().SetUnInitialized();
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voe_base_impl.h b/webrtc/voice_engine/voe_base_impl.h
index fbd9092..4665e80 100644
--- a/webrtc/voice_engine/voe_base_impl.h
+++ b/webrtc/voice_engine/voe_base_impl.h
@@ -124,6 +124,6 @@
 
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_BASE_IMPL_H
diff --git a/webrtc/voice_engine/voe_call_report_impl.cc b/webrtc/voice_engine/voe_call_report_impl.cc
index 9f3177d..cf76850 100644
--- a/webrtc/voice_engine/voe_call_report_impl.cc
+++ b/webrtc/voice_engine/voe_call_report_impl.cc
@@ -408,4 +408,4 @@
 
 #endif  // WEBRTC_VOICE_ENGINE_CALL_REPORT_API
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voe_call_report_impl.h b/webrtc/voice_engine/voe_call_report_impl.h
index e8b81f2..b9927f5 100644
--- a/webrtc/voice_engine/voe_call_report_impl.h
+++ b/webrtc/voice_engine/voe_call_report_impl.h
@@ -52,6 +52,6 @@
     voe::SharedData* _shared;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_CALL_REPORT_IMPL_H
diff --git a/webrtc/voice_engine/voe_codec_impl.cc b/webrtc/voice_engine/voe_codec_impl.cc
index 0cc4e02..6cc791a 100644
--- a/webrtc/voice_engine/voe_codec_impl.cc
+++ b/webrtc/voice_engine/voe_codec_impl.cc
@@ -764,4 +764,4 @@
 
 #endif  // WEBRTC_VOICE_ENGINE_CODEC_API
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voe_codec_impl.h b/webrtc/voice_engine/voe_codec_impl.h
index ab120f8..ec6cbd7 100644
--- a/webrtc/voice_engine/voe_codec_impl.h
+++ b/webrtc/voice_engine/voe_codec_impl.h
@@ -92,6 +92,6 @@
     voe::SharedData* _shared;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_CODEC_IMPL_H
diff --git a/webrtc/voice_engine/voe_dtmf_impl.h b/webrtc/voice_engine/voe_dtmf_impl.h
index e779b69..e879f8d 100644
--- a/webrtc/voice_engine/voe_dtmf_impl.h
+++ b/webrtc/voice_engine/voe_dtmf_impl.h
@@ -61,6 +61,6 @@
     voe::SharedData* _shared;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_DTMF_IMPL_H
diff --git a/webrtc/voice_engine/voe_encryption_impl.h b/webrtc/voice_engine/voe_encryption_impl.h
index 47e38e0..6d482ff 100644
--- a/webrtc/voice_engine/voe_encryption_impl.h
+++ b/webrtc/voice_engine/voe_encryption_impl.h
@@ -35,6 +35,6 @@
     voe::SharedData* _shared;
 };
 
-}   // namespace webrtc
+}  // namespace webrtc
 
 #endif  // #ifndef WEBRTC_VOICE_ENGINE_VOE_ENCRYPTION_IMPL_H
diff --git a/webrtc/voice_engine/voe_hardware_impl.cc b/webrtc/voice_engine/voe_hardware_impl.cc
index b2690da..5a293fc 100644
--- a/webrtc/voice_engine/voe_hardware_impl.cc
+++ b/webrtc/voice_engine/voe_hardware_impl.cc
@@ -807,4 +807,4 @@
 
 #endif  // WEBRTC_VOICE_ENGINE_HARDWARE_API
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voe_hardware_impl.h b/webrtc/voice_engine/voe_hardware_impl.h
index eddaf37..4e06f97 100644
--- a/webrtc/voice_engine/voe_hardware_impl.h
+++ b/webrtc/voice_engine/voe_hardware_impl.h
@@ -75,6 +75,6 @@
     voe::SharedData* _shared;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_HARDWARE_IMPL_H
diff --git a/webrtc/voice_engine/voe_neteq_stats_impl.cc b/webrtc/voice_engine/voe_neteq_stats_impl.cc
index aa53ceb..661c8c6 100644
--- a/webrtc/voice_engine/voe_neteq_stats_impl.cc
+++ b/webrtc/voice_engine/voe_neteq_stats_impl.cc
@@ -75,4 +75,4 @@
 
 #endif  // #ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
 
-}   // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voe_network_impl.cc b/webrtc/voice_engine/voe_network_impl.cc
index 6b4b9773..6252170 100644
--- a/webrtc/voice_engine/voe_network_impl.cc
+++ b/webrtc/voice_engine/voe_network_impl.cc
@@ -319,4 +319,4 @@
                                                     sampleTimeSeconds);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voe_network_impl.h b/webrtc/voice_engine/voe_network_impl.h
index cfa3ffc..194899b 100644
--- a/webrtc/voice_engine/voe_network_impl.h
+++ b/webrtc/voice_engine/voe_network_impl.h
@@ -62,6 +62,6 @@
     voe::SharedData* _shared;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif  // WEBRTC_VOICE_ENGINE_VOE_NETWORK_IMPL_H
diff --git a/webrtc/voice_engine/voe_video_sync_impl.h b/webrtc/voice_engine/voe_video_sync_impl.h
index 932c8cd..e0ec3f2 100644
--- a/webrtc/voice_engine/voe_video_sync_impl.h
+++ b/webrtc/voice_engine/voe_video_sync_impl.h
@@ -48,6 +48,6 @@
     voe::SharedData* _shared;
 };
 
-}   // namespace webrtc
+}  // namespace webrtc
 
 #endif    // WEBRTC_VOICE_ENGINE_VOE_VIDEO_SYNC_IMPL_H
diff --git a/webrtc/voice_engine/voe_volume_control_impl.h b/webrtc/voice_engine/voe_volume_control_impl.h
index f19d9a3..cdbc428 100644
--- a/webrtc/voice_engine/voe_volume_control_impl.h
+++ b/webrtc/voice_engine/voe_volume_control_impl.h
@@ -66,6 +66,6 @@
     voe::SharedData* _shared;
 };
 
-}   // namespace webrtc
+}  // namespace webrtc
 
 #endif    // WEBRTC_VOICE_ENGINE_VOE_VOLUME_CONTROL_IMPL_H
diff --git a/webrtc/voice_engine/voice_engine_defines.h b/webrtc/voice_engine/voice_engine_defines.h
index e1e9cdf..2d69979 100644
--- a/webrtc/voice_engine/voice_engine_defines.h
+++ b/webrtc/voice_engine/voice_engine_defines.h
@@ -123,7 +123,7 @@
 // Max 4-bit ID for RTP extension
 enum { kVoiceEngineMaxRtpExtensionId = 14 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 // TODO(ajm): we shouldn't be using the precompiler for this.
 // Use enums or bools as appropriate.
@@ -218,7 +218,7 @@
     return (int) (moduleId & 0xffff);
 }
 
-} // namespace webrtc
+}  // namespace webrtc
 
 // ----------------------------------------------------------------------------
 //  Platform settings
diff --git a/webrtc/voice_engine/voice_engine_impl.cc b/webrtc/voice_engine/voice_engine_impl.cc
index eca098e..781a66a 100644
--- a/webrtc/voice_engine/voice_engine_impl.cc
+++ b/webrtc/voice_engine/voice_engine_impl.cc
@@ -38,7 +38,7 @@
     }
     return self;
 }
-} // extern "C"
+}  // extern "C"
 
 int VoiceEngineImpl::AddRef() {
   return ++_ref_count;
@@ -155,4 +155,4 @@
 #endif
 }
 
-} //namespace webrtc
+}  // namespace webrtc
diff --git a/webrtc/voice_engine/voice_engine_impl.h b/webrtc/voice_engine/voice_engine_impl.h
index 0119074..55c4209 100644
--- a/webrtc/voice_engine/voice_engine_impl.h
+++ b/webrtc/voice_engine/voice_engine_impl.h
@@ -154,6 +154,6 @@
     Atomic32 _ref_count;
 };
 
-} // namespace webrtc
+}  // namespace webrtc
 
 #endif // WEBRTC_VOICE_ENGINE_VOICE_ENGINE_IMPL_H
