1// Copyright 2014 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/test/utility/default_config.h"
6
7#include "base/bind.h"
8#include "media/cast/net/cast_transport_config.h"
9
10namespace {
11
12void CreateVideoEncodeAccelerator(
13    const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback) {
14  // Do nothing.
15}
16
17void CreateVideoEncodeMemory(
18    size_t size,
19    const media::cast::ReceiveVideoEncodeMemoryCallback& callback) {
20  // Do nothing.
21}
22
23}  // namespace
24
25namespace media {
26namespace cast {
27
28FrameReceiverConfig GetDefaultAudioReceiverConfig() {
29  FrameReceiverConfig config;
30  config.feedback_ssrc = 2;
31  config.incoming_ssrc = 1;
32  config.rtp_max_delay_ms = kDefaultRtpMaxDelayMs;
33  config.rtp_payload_type = 127;
34  config.frequency = 48000;
35  config.channels = 2;
36  config.max_frame_rate = 100;  // 10ms of signal per frame
37  config.codec = media::cast::CODEC_AUDIO_OPUS;
38  return config;
39}
40
41FrameReceiverConfig GetDefaultVideoReceiverConfig() {
42  FrameReceiverConfig config;
43  config.feedback_ssrc = 12;
44  config.incoming_ssrc = 11;
45  config.rtp_max_delay_ms = kDefaultRtpMaxDelayMs;
46  config.rtp_payload_type = 96;
47  config.frequency = kVideoFrequency;
48  config.channels = 1;
49  config.max_frame_rate = kDefaultMaxFrameRate;
50  config.codec = media::cast::CODEC_VIDEO_VP8;
51  return config;
52}
53
54AudioSenderConfig GetDefaultAudioSenderConfig() {
55  FrameReceiverConfig recv_config = GetDefaultAudioReceiverConfig();
56  AudioSenderConfig config;
57  config.ssrc = recv_config.incoming_ssrc;
58  config.incoming_feedback_ssrc = recv_config.feedback_ssrc;
59  config.rtp_payload_type = recv_config.rtp_payload_type;
60  config.use_external_encoder = false;
61  config.frequency = recv_config.frequency;
62  config.channels = recv_config.channels;
63  config.bitrate = kDefaultAudioEncoderBitrate;
64  config.codec = recv_config.codec;
65  config.max_playout_delay =
66      base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs);
67  return config;
68}
69
70VideoSenderConfig GetDefaultVideoSenderConfig() {
71  FrameReceiverConfig recv_config = GetDefaultVideoReceiverConfig();
72  VideoSenderConfig config;
73  config.ssrc = recv_config.incoming_ssrc;
74  config.incoming_feedback_ssrc = recv_config.feedback_ssrc;
75  config.rtp_payload_type = recv_config.rtp_payload_type;
76  config.use_external_encoder = false;
77  config.width = 1280;
78  config.height = 720;
79  config.max_bitrate = 4000000;
80  config.min_bitrate = 2000000;
81  config.start_bitrate = 4000000;
82  config.max_frame_rate = recv_config.max_frame_rate;
83  config.max_number_of_video_buffers_used = 1;
84  config.codec = recv_config.codec;
85  config.number_of_encode_threads = 2;
86  config.max_playout_delay =
87      base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs);
88  return config;
89}
90
91CreateVideoEncodeAcceleratorCallback
92CreateDefaultVideoEncodeAcceleratorCallback() {
93  return base::Bind(&CreateVideoEncodeAccelerator);
94}
95
96CreateVideoEncodeMemoryCallback CreateDefaultVideoEncodeMemoryCallback() {
97  return base::Bind(&CreateVideoEncodeMemory);
98}
99
100}  // namespace cast
101}  // namespace media
102