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 7namespace media { 8namespace 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 24VideoSenderConfig::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 45VideoSenderConfig::~VideoSenderConfig() {} 46 47AudioSenderConfig::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 60AudioSenderConfig::~AudioSenderConfig() {} 61 62FrameReceiverConfig::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 73FrameReceiverConfig::~FrameReceiverConfig() {} 74 75} // namespace cast 76} // namespace media 77