| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/renderer/media/cast_rtp_stream.h" | 5 #include "chrome/renderer/media/cast_rtp_stream.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 config->ssrc = params.payload.ssrc; | 164 config->ssrc = params.payload.ssrc; |
| 165 config->receiver_ssrc = params.payload.feedback_ssrc; | 165 config->receiver_ssrc = params.payload.feedback_ssrc; |
| 166 if (config->ssrc == config->receiver_ssrc) | 166 if (config->ssrc == config->receiver_ssrc) |
| 167 return false; | 167 return false; |
| 168 config->min_playout_delay = base::TimeDelta::FromMilliseconds( | 168 config->min_playout_delay = base::TimeDelta::FromMilliseconds( |
| 169 params.payload.min_latency_ms ? | 169 params.payload.min_latency_ms ? |
| 170 params.payload.min_latency_ms : | 170 params.payload.min_latency_ms : |
| 171 params.payload.max_latency_ms); | 171 params.payload.max_latency_ms); |
| 172 config->max_playout_delay = | 172 config->max_playout_delay = |
| 173 base::TimeDelta::FromMilliseconds(params.payload.max_latency_ms); | 173 base::TimeDelta::FromMilliseconds(params.payload.max_latency_ms); |
| 174 config->animated_playout_delay = |
| 175 base::TimeDelta::FromMilliseconds(params.payload.animated_latency_ms); |
| 174 if (config->min_playout_delay <= base::TimeDelta()) | 176 if (config->min_playout_delay <= base::TimeDelta()) |
| 175 return false; | 177 return false; |
| 176 if (config->min_playout_delay > config->max_playout_delay) | 178 if (config->min_playout_delay > config->max_playout_delay) |
| 177 return false; | 179 return false; |
| 180 if (config->animated_playout_delay < config->min_playout_delay || |
| 181 config->animated_playout_delay > config->max_playout_delay) |
| 182 return false; |
| 178 config->rtp_payload_type = params.payload.payload_type; | 183 config->rtp_payload_type = params.payload.payload_type; |
| 179 config->use_external_encoder = false; | 184 config->use_external_encoder = false; |
| 180 config->frequency = params.payload.clock_rate; | 185 config->frequency = params.payload.clock_rate; |
| 181 // Sampling rate must be one of the Opus-supported values. | 186 // Sampling rate must be one of the Opus-supported values. |
| 182 switch (config->frequency) { | 187 switch (config->frequency) { |
| 183 case 48000: | 188 case 48000: |
| 184 case 24000: | 189 case 24000: |
| 185 case 16000: | 190 case 16000: |
| 186 case 12000: | 191 case 12000: |
| 187 case 8000: | 192 case 8000: |
| (...skipping 19 matching lines...) Expand all Loading... |
| 207 config->ssrc = params.payload.ssrc; | 212 config->ssrc = params.payload.ssrc; |
| 208 config->receiver_ssrc = params.payload.feedback_ssrc; | 213 config->receiver_ssrc = params.payload.feedback_ssrc; |
| 209 if (config->ssrc == config->receiver_ssrc) | 214 if (config->ssrc == config->receiver_ssrc) |
| 210 return false; | 215 return false; |
| 211 config->min_playout_delay = base::TimeDelta::FromMilliseconds( | 216 config->min_playout_delay = base::TimeDelta::FromMilliseconds( |
| 212 params.payload.min_latency_ms ? | 217 params.payload.min_latency_ms ? |
| 213 params.payload.min_latency_ms : | 218 params.payload.min_latency_ms : |
| 214 params.payload.max_latency_ms); | 219 params.payload.max_latency_ms); |
| 215 config->max_playout_delay = | 220 config->max_playout_delay = |
| 216 base::TimeDelta::FromMilliseconds(params.payload.max_latency_ms); | 221 base::TimeDelta::FromMilliseconds(params.payload.max_latency_ms); |
| 222 config->animated_playout_delay = |
| 223 base::TimeDelta::FromMilliseconds(params.payload.animated_latency_ms); |
| 217 if (config->min_playout_delay <= base::TimeDelta()) | 224 if (config->min_playout_delay <= base::TimeDelta()) |
| 218 return false; | 225 return false; |
| 219 if (config->min_playout_delay > config->max_playout_delay) | 226 if (config->min_playout_delay > config->max_playout_delay) |
| 220 return false; | 227 return false; |
| 228 if (config->animated_playout_delay < config->min_playout_delay || |
| 229 config->animated_playout_delay > config->max_playout_delay) |
| 230 return false; |
| 221 config->rtp_payload_type = params.payload.payload_type; | 231 config->rtp_payload_type = params.payload.payload_type; |
| 222 config->min_bitrate = config->start_bitrate = | 232 config->min_bitrate = config->start_bitrate = |
| 223 params.payload.min_bitrate * kBitrateMultiplier; | 233 params.payload.min_bitrate * kBitrateMultiplier; |
| 224 config->max_bitrate = params.payload.max_bitrate * kBitrateMultiplier; | 234 config->max_bitrate = params.payload.max_bitrate * kBitrateMultiplier; |
| 225 if (config->min_bitrate > config->max_bitrate) | 235 if (config->min_bitrate > config->max_bitrate) |
| 226 return false; | 236 return false; |
| 227 config->start_bitrate = config->min_bitrate; | 237 config->start_bitrate = config->min_bitrate; |
| 228 config->max_frame_rate = static_cast<int>( | 238 config->max_frame_rate = static_cast<int>( |
| 229 std::max(1.0, params.payload.max_frame_rate) + 0.5); | 239 std::max(1.0, params.payload.max_frame_rate) + 0.5); |
| 230 if (config->max_frame_rate > media::limits::kMaxFramesPerSecond) | 240 if (config->max_frame_rate > media::limits::kMaxFramesPerSecond) |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 DCHECK(content::RenderThread::Get()); | 589 DCHECK(content::RenderThread::Get()); |
| 580 DVLOG(1) << "CastRtpStream::DidEncounterError(" << message << ") = " | 590 DVLOG(1) << "CastRtpStream::DidEncounterError(" << message << ") = " |
| 581 << (IsAudio() ? "audio" : "video"); | 591 << (IsAudio() ? "audio" : "video"); |
| 582 // Save the WeakPtr first because the error callback might delete this object. | 592 // Save the WeakPtr first because the error callback might delete this object. |
| 583 base::WeakPtr<CastRtpStream> ptr = weak_factory_.GetWeakPtr(); | 593 base::WeakPtr<CastRtpStream> ptr = weak_factory_.GetWeakPtr(); |
| 584 error_callback_.Run(message); | 594 error_callback_.Run(message); |
| 585 base::ThreadTaskRunnerHandle::Get()->PostTask( | 595 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 586 FROM_HERE, | 596 FROM_HERE, |
| 587 base::Bind(&CastRtpStream::Stop, ptr)); | 597 base::Bind(&CastRtpStream::Stop, ptr)); |
| 588 } | 598 } |
| OLD | NEW |