C++11 in-class member initialization in Call configs.

BUG=
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1166263004.

Cr-Commit-Position: refs/heads/master@{#9416}
diff --git a/webrtc/call.h b/webrtc/call.h
index ac11794..d1a45c8 100644
--- a/webrtc/call.h
+++ b/webrtc/call.h
@@ -73,54 +73,43 @@
     kNetworkDown,
   };
   struct Config {
+    Config() = delete;
     explicit Config(newapi::Transport* send_transport)
-        : send_transport(send_transport),
-          voice_engine(NULL),
-          overuse_callback(NULL) {}
+        : send_transport(send_transport) {}
 
     static const int kDefaultStartBitrateBps;
 
     // TODO(solenberg): Need to add media type to the interface for outgoing
     // packets too.
-    newapi::Transport* send_transport;
+    newapi::Transport* send_transport = nullptr;
 
     // VoiceEngine used for audio/video synchronization for this Call.
-    VoiceEngine* voice_engine;
+    VoiceEngine* voice_engine = nullptr;
 
     // Callback for overuse and normal usage based on the jitter of incoming
-    // captured frames. 'NULL' disables the callback.
-    LoadObserver* overuse_callback;
+    // captured frames. 'nullptr' disables the callback.
+    LoadObserver* overuse_callback = nullptr;
 
     // Bitrate config used until valid bitrate estimates are calculated. Also
     // used to cap total bitrate used.
     struct BitrateConfig {
-      BitrateConfig()
-          : min_bitrate_bps(0),
-            start_bitrate_bps(kDefaultStartBitrateBps),
-            max_bitrate_bps(-1) {}
-      int min_bitrate_bps;
-      int start_bitrate_bps;
-      int max_bitrate_bps;
+      int min_bitrate_bps = 0;
+      int start_bitrate_bps = kDefaultStartBitrateBps;
+      int max_bitrate_bps = -1;
     } bitrate_config;
 
     struct AudioConfig {
-      AudioDeviceModule* audio_device_manager;
-      AudioProcessing* audio_processing;
-      VoiceEngineObserver* voice_engine_observer;
+      AudioDeviceModule* audio_device_manager = nullptr;
+      AudioProcessing* audio_processing = nullptr;
+      VoiceEngineObserver* voice_engine_observer = nullptr;
     } audio_config;
   };
 
   struct Stats {
-    Stats()
-        : send_bandwidth_bps(0),
-          recv_bandwidth_bps(0),
-          pacer_delay_ms(0),
-          rtt_ms(-1) {}
-
-    int send_bandwidth_bps;
-    int recv_bandwidth_bps;
-    int64_t pacer_delay_ms;
-    int64_t rtt_ms;
+    int send_bandwidth_bps = 0;
+    int recv_bandwidth_bps = 0;
+    int64_t pacer_delay_ms = 0;
+    int64_t rtt_ms = -1;
   };
 
   static Call* Create(const Call::Config& config);
diff --git a/webrtc/video_receive_stream.h b/webrtc/video_receive_stream.h
index 5e5ece5..a8003c1 100644
--- a/webrtc/video_receive_stream.h
+++ b/webrtc/video_receive_stream.h
@@ -36,32 +36,27 @@
   // TODO(mflodman) Move all these settings to VideoDecoder and move the
   // declaration to common_types.h.
   struct Decoder {
-    Decoder()
-        : decoder(NULL),
-          payload_type(0),
-          is_renderer(false),
-          expected_delay_ms(0) {}
     std::string ToString() const;
 
     // The actual decoder instance.
-    VideoDecoder* decoder;
+    VideoDecoder* decoder = nullptr;
 
     // Received RTP packets with this payload type will be sent to this decoder
     // instance.
-    int payload_type;
+    int payload_type = 0;
 
     // Name of the decoded payload (such as VP8). Maps back to the depacketizer
     // used to unpack incoming packets.
     std::string payload_name;
 
     // 'true' if the decoder handles rendering as well.
-    bool is_renderer;
+    bool is_renderer = false;
 
     // The expected delay for decoding and rendering, i.e. the frame will be
     // delivered this many milliseconds, if possible, earlier than the ideal
     // render time.
     // Note: Ignored if 'renderer' is false.
-    int expected_delay_ms;
+    int expected_delay_ms = 0;
   };
 
   struct Stats {
@@ -90,13 +85,6 @@
   };
 
   struct Config {
-    Config()
-        : renderer(NULL),
-          render_delay_ms(10),
-          audio_channel_id(-1),
-          pre_decode_callback(NULL),
-          pre_render_callback(NULL),
-          target_delay_ms(0) {}
     std::string ToString() const;
 
     // Decoders for every payload that we can receive.
@@ -104,32 +92,25 @@
 
     // Receive-stream specific RTP settings.
     struct Rtp {
-      Rtp()
-          : remote_ssrc(0),
-            local_ssrc(0),
-            rtcp_mode(newapi::kRtcpCompound),
-            remb(false) {}
       std::string ToString() const;
 
       // Synchronization source (stream identifier) to be received.
-      uint32_t remote_ssrc;
+      uint32_t remote_ssrc = 0;
       // Sender SSRC used for sending RTCP (such as receiver reports).
-      uint32_t local_ssrc;
+      uint32_t local_ssrc = 0;
 
       // See RtcpMode for description.
-      newapi::RtcpMode rtcp_mode;
+      newapi::RtcpMode rtcp_mode = newapi::kRtcpCompound;
 
       // Extended RTCP settings.
       struct RtcpXr {
-        RtcpXr() : receiver_reference_time_report(false) {}
-
         // True if RTCP Receiver Reference Time Report Block extension
         // (RFC 3611) should be enabled.
-        bool receiver_reference_time_report;
+        bool receiver_reference_time_report = false;
       } rtcp_xr;
 
       // See draft-alvestrand-rmcat-remb for information.
-      bool remb;
+      bool remb = false;
 
       // See NackConfig for description.
       NackConfig nack;
@@ -140,13 +121,11 @@
       // RTX settings for incoming video payloads that may be received. RTX is
       // disabled if there's no config present.
       struct Rtx {
-        Rtx() : ssrc(0), payload_type(0) {}
-
         // SSRCs to use for the RTX streams.
-        uint32_t ssrc;
+        uint32_t ssrc = 0;
 
         // Payload type to use for the RTX stream.
-        int payload_type;
+        int payload_type = 0;
       };
 
       // Map from video RTP payload type -> RTX config.
@@ -157,33 +136,33 @@
       std::vector<RtpExtension> extensions;
     } rtp;
 
-    // VideoRenderer will be called for each decoded frame. 'NULL' disables
+    // VideoRenderer will be called for each decoded frame. 'nullptr' disables
     // rendering of this stream.
-    VideoRenderer* renderer;
+    VideoRenderer* renderer = nullptr;
 
     // Expected delay needed by the renderer, i.e. the frame will be delivered
     // this many milliseconds, if possible, earlier than the ideal render time.
     // Only valid if 'renderer' is set.
-    int render_delay_ms;
+    int render_delay_ms = 10;
 
     // Audio channel corresponding to this video stream, used for audio/video
     // synchronization. 'audio_channel_id' is ignored if no VoiceEngine is set
     // when creating the VideoEngine instance. '-1' disables a/v sync.
-    int audio_channel_id;
+    int audio_channel_id = -1;
 
     // Called for each incoming video frame, i.e. in encoded state. E.g. used
     // when
-    // saving the stream to a file. 'NULL' disables the callback.
-    EncodedFrameObserver* pre_decode_callback;
+    // saving the stream to a file. 'nullptr' disables the callback.
+    EncodedFrameObserver* pre_decode_callback = nullptr;
 
     // Called for each decoded frame. E.g. used when adding effects to the
     // decoded
-    // stream. 'NULL' disables the callback.
-    I420FrameCallback* pre_render_callback;
+    // stream. 'nullptr' disables the callback.
+    I420FrameCallback* pre_render_callback = nullptr;
 
     // Target delay in milliseconds. A positive value indicates this stream is
     // used for streaming instead of a real-time call.
-    int target_delay_ms;
+    int target_delay_ms = 0;
   };
 
   virtual void Start() = 0;
diff --git a/webrtc/video_send_stream.h b/webrtc/video_send_stream.h
index 4dc9a6b..4c4960a 100644
--- a/webrtc/video_send_stream.h
+++ b/webrtc/video_send_stream.h
@@ -52,56 +52,38 @@
   };
 
   struct Stats {
-    Stats()
-        : input_frame_rate(0),
-          encode_frame_rate(0),
-          avg_encode_time_ms(0),
-          encode_usage_percent(0),
-          target_media_bitrate_bps(0),
-          media_bitrate_bps(0),
-          suspended(false) {}
-    int input_frame_rate;
-    int encode_frame_rate;
-    int avg_encode_time_ms;
-    int encode_usage_percent;
-    int target_media_bitrate_bps;
-    int media_bitrate_bps;
-    bool suspended;
+    int input_frame_rate = 0;
+    int encode_frame_rate = 0;
+    int avg_encode_time_ms = 0;
+    int encode_usage_percent = 0;
+    int target_media_bitrate_bps = 0;
+    int media_bitrate_bps = 0;
+    bool suspended = false;
     std::map<uint32_t, StreamStats> substreams;
   };
 
   struct Config {
-    Config()
-        : pre_encode_callback(NULL),
-          post_encode_callback(NULL),
-          local_renderer(NULL),
-          render_delay_ms(0),
-          target_delay_ms(0),
-          suspend_below_min_bitrate(false) {}
     std::string ToString() const;
 
     struct EncoderSettings {
-      EncoderSettings() : payload_type(-1), encoder(NULL) {}
-
       std::string ToString() const;
 
       std::string payload_name;
-      int payload_type;
+      int payload_type = -1;
 
       // Uninitialized VideoEncoder instance to be used for encoding. Will be
       // initialized from inside the VideoSendStream.
-      VideoEncoder* encoder;
+      VideoEncoder* encoder = nullptr;
     } encoder_settings;
 
     static const size_t kDefaultMaxPacketSize = 1500 - 40;  // TCP over IPv4.
     struct Rtp {
-      Rtp() : max_packet_size(kDefaultMaxPacketSize) {}
       std::string ToString() const;
 
       std::vector<uint32_t> ssrcs;
 
       // Max RTP packet size delivered to send transport from VideoEngine.
-      size_t max_packet_size;
+      size_t max_packet_size = kDefaultMaxPacketSize;
 
       // RTP header extensions to use for this send stream.
       std::vector<RtpExtension> extensions;
@@ -115,13 +97,12 @@
       // Settings for RTP retransmission payload format, see RFC 4588 for
       // details.
       struct Rtx {
-        Rtx() : payload_type(-1) {}
         std::string ToString() const;
         // SSRCs to use for the RTX streams.
         std::vector<uint32_t> ssrcs;
 
         // Payload type to use for the RTX stream.
-        int payload_type;
+        int payload_type = -1;
       } rtx;
 
       // RTCP CNAME, see RFC 3550.
@@ -129,30 +110,30 @@
     } rtp;
 
     // Called for each I420 frame before encoding the frame. Can be used for
-    // effects, snapshots etc. 'NULL' disables the callback.
-    I420FrameCallback* pre_encode_callback;
+    // effects, snapshots etc. 'nullptr' disables the callback.
+    I420FrameCallback* pre_encode_callback = nullptr;
 
-    // Called for each encoded frame, e.g. used for file storage. 'NULL'
+    // Called for each encoded frame, e.g. used for file storage. 'nullptr'
     // disables the callback.
-    EncodedFrameObserver* post_encode_callback;
+    EncodedFrameObserver* post_encode_callback = nullptr;
 
     // Renderer for local preview. The local renderer will be called even if
-    // sending hasn't started. 'NULL' disables local rendering.
-    VideoRenderer* local_renderer;
+    // sending hasn't started. 'nullptr' disables local rendering.
+    VideoRenderer* local_renderer = nullptr;
 
     // Expected delay needed by the renderer, i.e. the frame will be delivered
     // this many milliseconds, if possible, earlier than expected render time.
     // Only valid if |local_renderer| is set.
-    int render_delay_ms;
+    int render_delay_ms = 0;
 
     // Target delay in milliseconds. A positive value indicates this stream is
     // used for streaming instead of a real-time call.
-    int target_delay_ms;
+    int target_delay_ms = 0;
 
     // True if the stream should be suspended when the available bitrate fall
     // below the minimum configured bitrate. If this variable is false, the
     // stream may send at a rate higher than the estimated available bitrate.
-    bool suspend_below_min_bitrate;
+    bool suspend_below_min_bitrate = false;
   };
 
   // Gets interface used to insert captured frames. Valid as long as the