1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file. 4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "media/cast/test/utility/default_config.h" 6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "base/bind.h" 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "media/cast/net/cast_transport_config.h" 9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace { 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid CreateVideoEncodeAccelerator( 13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch const media::cast::ReceiveVideoEncodeAcceleratorCallback& callback) { 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // Do nothing. 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid CreateVideoEncodeMemory( 18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch size_t size, 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch const media::cast::ReceiveVideoEncodeMemoryCallback& callback) { 20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // Do nothing. 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace 24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace media { 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace cast { 27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)FrameReceiverConfig GetDefaultAudioReceiverConfig() { 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FrameReceiverConfig config; 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) config.feedback_ssrc = 2; 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) config.incoming_ssrc = 1; 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.rtp_max_delay_ms = kDefaultRtpMaxDelayMs; 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.rtp_payload_type = 127; 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) config.frequency = 48000; 35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) config.channels = 2; 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.max_frame_rate = 100; // 10ms of signal per frame 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.codec = media::cast::CODEC_AUDIO_OPUS; 38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return config; 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)FrameReceiverConfig GetDefaultVideoReceiverConfig() { 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FrameReceiverConfig config; 43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) config.feedback_ssrc = 12; 44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) config.incoming_ssrc = 11; 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.rtp_max_delay_ms = kDefaultRtpMaxDelayMs; 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.rtp_payload_type = 96; 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.frequency = kVideoFrequency; 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.channels = 1; 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) config.max_frame_rate = kDefaultMaxFrameRate; 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.codec = media::cast::CODEC_VIDEO_VP8; 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return config; 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 54116680a4aac90f2aa7413d9095a592090648e557Ben MurdochAudioSenderConfig GetDefaultAudioSenderConfig() { 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch FrameReceiverConfig recv_config = GetDefaultAudioReceiverConfig(); 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch AudioSenderConfig config; 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.ssrc = recv_config.incoming_ssrc; 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.incoming_feedback_ssrc = recv_config.feedback_ssrc; 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.rtp_payload_type = recv_config.rtp_payload_type; 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.use_external_encoder = false; 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.frequency = recv_config.frequency; 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.channels = recv_config.channels; 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.bitrate = kDefaultAudioEncoderBitrate; 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.codec = recv_config.codec; 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci config.max_playout_delay = 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs); 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return config; 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 70116680a4aac90f2aa7413d9095a592090648e557Ben MurdochVideoSenderConfig GetDefaultVideoSenderConfig() { 71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch FrameReceiverConfig recv_config = GetDefaultVideoReceiverConfig(); 72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch VideoSenderConfig config; 73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.ssrc = recv_config.incoming_ssrc; 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.incoming_feedback_ssrc = recv_config.feedback_ssrc; 75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.rtp_payload_type = recv_config.rtp_payload_type; 76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.use_external_encoder = false; 77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.width = 1280; 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.height = 720; 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.max_bitrate = 4000000; 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.min_bitrate = 2000000; 81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.start_bitrate = 4000000; 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.max_frame_rate = recv_config.max_frame_rate; 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.max_number_of_video_buffers_used = 1; 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.codec = recv_config.codec; 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch config.number_of_encode_threads = 2; 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci config.max_playout_delay = 87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch base::TimeDelta::FromMilliseconds(kDefaultRtpMaxDelayMs); 88a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return config; 89a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 90a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 91effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochCreateVideoEncodeAcceleratorCallback 92effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochCreateDefaultVideoEncodeAcceleratorCallback() { 93effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return base::Bind(&CreateVideoEncodeAccelerator); 94effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 95effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 96effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochCreateVideoEncodeMemoryCallback CreateDefaultVideoEncodeMemoryCallback() { 97effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return base::Bind(&CreateVideoEncodeMemory); 98effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 99effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 100a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} // namespace cast 101a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} // namespace media 102