1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "media/cast/cast_config.h" 6 7 namespace media { 8 namespace cast { 9 10 // TODO(miu): Revisit code factoring of these structs. There are a number of 11 // common elements between them all, so it might be reasonable to only have one 12 // or two structs; or, at least a common base class. 13 14 // TODO(miu): Make sure all POD members are initialized by ctors. Policy 15 // decision: Reasonable defaults or use invalid placeholder values to expose 16 // unset members? 17 18 // TODO(miu): Provide IsValidConfig() functions? 19 20 // TODO(miu): Throughout the code, there is a lot of copy-and-paste of the same 21 // calculations based on these config values. So, why don't we add methods to 22 // these classes to centralize the logic? 23 24 VideoSenderConfig::VideoSenderConfig() 25 : incoming_feedback_ssrc(0), 26 rtcp_interval(kDefaultRtcpIntervalMs), 27 rtcp_mode(kRtcpReducedSize), 28 use_external_encoder(false), 29 width(0), 30 height(0), 31 congestion_control_back_off(kDefaultCongestionControlBackOff), 32 max_bitrate(5000000), 33 min_bitrate(1000000), 34 start_bitrate(5000000), 35 max_qp(kDefaultMaxQp), 36 min_qp(kDefaultMinQp), 37 max_frame_rate(kDefaultMaxFrameRate), 38 max_number_of_video_buffers_used(kDefaultNumberOfVideoBuffers), 39 codec(transport::kVp8), 40 number_of_encode_threads(1) {} 41 42 AudioSenderConfig::AudioSenderConfig() 43 : incoming_feedback_ssrc(0), 44 rtcp_interval(kDefaultRtcpIntervalMs), 45 rtcp_mode(kRtcpReducedSize), 46 use_external_encoder(false), 47 frequency(0), 48 channels(0), 49 bitrate(0) {} 50 51 FrameReceiverConfig::FrameReceiverConfig() 52 : feedback_ssrc(0), 53 incoming_ssrc(0), 54 rtcp_interval(kDefaultRtcpIntervalMs), 55 rtcp_mode(kRtcpReducedSize), 56 rtp_max_delay_ms(kDefaultRtpMaxDelayMs), 57 rtp_payload_type(0), 58 frequency(0), 59 channels(0), 60 max_frame_rate(0) {} 61 62 FrameReceiverConfig::~FrameReceiverConfig() {} 63 64 } // namespace cast 65 } // namespace media 66