Home | History | Annotate | Download | only in cast
      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     : ssrc(0),
     26       incoming_feedback_ssrc(0),
     27       rtcp_interval(kDefaultRtcpIntervalMs),
     28       max_playout_delay(
     29           base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs)),
     30       rtp_payload_type(0),
     31       use_external_encoder(false),
     32       width(0),
     33       height(0),
     34       congestion_control_back_off(kDefaultCongestionControlBackOff),
     35       max_bitrate(5000000),
     36       min_bitrate(1000000),
     37       start_bitrate(5000000),
     38       max_qp(kDefaultMaxQp),
     39       min_qp(kDefaultMinQp),
     40       max_frame_rate(kDefaultMaxFrameRate),
     41       max_number_of_video_buffers_used(kDefaultNumberOfVideoBuffers),
     42       codec(CODEC_VIDEO_VP8),
     43       number_of_encode_threads(1) {}
     44 
     45 VideoSenderConfig::~VideoSenderConfig() {}
     46 
     47 AudioSenderConfig::AudioSenderConfig()
     48     : ssrc(0),
     49       incoming_feedback_ssrc(0),
     50       rtcp_interval(kDefaultRtcpIntervalMs),
     51       max_playout_delay(
     52           base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs)),
     53       rtp_payload_type(0),
     54       use_external_encoder(false),
     55       frequency(0),
     56       channels(0),
     57       bitrate(0),
     58       codec(CODEC_AUDIO_OPUS) {}
     59 
     60 AudioSenderConfig::~AudioSenderConfig() {}
     61 
     62 FrameReceiverConfig::FrameReceiverConfig()
     63     : feedback_ssrc(0),
     64       incoming_ssrc(0),
     65       rtcp_interval(kDefaultRtcpIntervalMs),
     66       rtp_max_delay_ms(kDefaultRtpMaxDelayMs),
     67       rtp_payload_type(0),
     68       frequency(0),
     69       channels(0),
     70       max_frame_rate(0),
     71       codec(CODEC_UNKNOWN) {}
     72 
     73 FrameReceiverConfig::~FrameReceiverConfig() {}
     74 
     75 }  // namespace cast
     76 }  // namespace media
     77