| 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_session_delegate.h" | 5 #include "chrome/renderer/media/cast_session_delegate.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 base::Unretained(cast_environment_->logger())))); | 84 base::Unretained(cast_environment_->logger())))); |
| 85 } | 85 } |
| 86 | 86 |
| 87 void CastSessionDelegateBase::StatusNotificationCB( | 87 void CastSessionDelegateBase::StatusNotificationCB( |
| 88 const ErrorCallback& error_callback, | 88 const ErrorCallback& error_callback, |
| 89 media::cast::CastTransportStatus status) { | 89 media::cast::CastTransportStatus status) { |
| 90 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 90 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
| 91 std::string error_message; | 91 std::string error_message; |
| 92 | 92 |
| 93 switch (status) { | 93 switch (status) { |
| 94 case media::cast::TRANSPORT_AUDIO_UNINITIALIZED: | 94 case media::cast::TRANSPORT_STREAM_UNINITIALIZED: |
| 95 case media::cast::TRANSPORT_VIDEO_UNINITIALIZED: | 95 case media::cast::TRANSPORT_STREAM_INITIALIZED: |
| 96 case media::cast::TRANSPORT_AUDIO_INITIALIZED: | |
| 97 case media::cast::TRANSPORT_VIDEO_INITIALIZED: | |
| 98 return; // Not errors, do nothing. | 96 return; // Not errors, do nothing. |
| 99 case media::cast::TRANSPORT_INVALID_CRYPTO_CONFIG: | 97 case media::cast::TRANSPORT_INVALID_CRYPTO_CONFIG: |
| 100 error_callback.Run("Invalid encrypt/decrypt configuration."); | 98 error_callback.Run("Invalid encrypt/decrypt configuration."); |
| 101 break; | 99 break; |
| 102 case media::cast::TRANSPORT_SOCKET_ERROR: | 100 case media::cast::TRANSPORT_SOCKET_ERROR: |
| 103 error_callback.Run("Socket error."); | 101 error_callback.Run("Socket error."); |
| 104 break; | 102 break; |
| 105 } | 103 } |
| 106 } | 104 } |
| 107 | 105 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 event_subscribers_->RemoveEventSubscribers(is_audio); | 179 event_subscribers_->RemoveEventSubscribers(is_audio); |
| 182 } | 180 } |
| 183 | 181 |
| 184 void CastSessionDelegate::GetEventLogsAndReset( | 182 void CastSessionDelegate::GetEventLogsAndReset( |
| 185 bool is_audio, | 183 bool is_audio, |
| 186 const std::string& extra_data, | 184 const std::string& extra_data, |
| 187 const EventLogsCallback& callback) { | 185 const EventLogsCallback& callback) { |
| 188 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 186 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
| 189 | 187 |
| 190 if (!event_subscribers_.get()) { | 188 if (!event_subscribers_.get()) { |
| 191 callback.Run(base::WrapUnique(new base::BinaryValue)); | 189 callback.Run(base::MakeUnique<base::BinaryValue>()); |
| 192 return; | 190 return; |
| 193 } | 191 } |
| 194 | 192 |
| 195 media::cast::EncodingEventSubscriber* subscriber = | 193 media::cast::EncodingEventSubscriber* subscriber = |
| 196 event_subscribers_->GetEncodingEventSubscriber(is_audio); | 194 event_subscribers_->GetEncodingEventSubscriber(is_audio); |
| 197 if (!subscriber) { | 195 if (!subscriber) { |
| 198 callback.Run(base::WrapUnique(new base::BinaryValue)); | 196 callback.Run(base::MakeUnique<base::BinaryValue>()); |
| 199 return; | 197 return; |
| 200 } | 198 } |
| 201 | 199 |
| 202 media::cast::proto::LogMetadata metadata; | 200 media::cast::proto::LogMetadata metadata; |
| 203 media::cast::FrameEventList frame_events; | 201 media::cast::FrameEventList frame_events; |
| 204 media::cast::PacketEventList packet_events; | 202 media::cast::PacketEventList packet_events; |
| 205 | 203 |
| 206 subscriber->GetEventsAndReset(&metadata, &frame_events, &packet_events); | 204 subscriber->GetEventsAndReset(&metadata, &frame_events, &packet_events); |
| 207 | 205 |
| 208 if (!extra_data.empty()) | 206 if (!extra_data.empty()) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 219 bool success = media::cast::SerializeEvents(metadata, | 217 bool success = media::cast::SerializeEvents(metadata, |
| 220 frame_events, | 218 frame_events, |
| 221 packet_events, | 219 packet_events, |
| 222 true, | 220 true, |
| 223 media::cast::kMaxSerializedBytes, | 221 media::cast::kMaxSerializedBytes, |
| 224 serialized_log.get(), | 222 serialized_log.get(), |
| 225 &output_bytes); | 223 &output_bytes); |
| 226 | 224 |
| 227 if (!success) { | 225 if (!success) { |
| 228 DVLOG(2) << "Failed to serialize event log."; | 226 DVLOG(2) << "Failed to serialize event log."; |
| 229 callback.Run(base::WrapUnique(new base::BinaryValue)); | 227 callback.Run(base::MakeUnique<base::BinaryValue>()); |
| 230 return; | 228 return; |
| 231 } | 229 } |
| 232 | 230 |
| 233 DVLOG(2) << "Serialized log length: " << output_bytes; | 231 DVLOG(2) << "Serialized log length: " << output_bytes; |
| 234 | 232 |
| 235 std::unique_ptr<base::BinaryValue> blob( | 233 std::unique_ptr<base::BinaryValue> blob( |
| 236 new base::BinaryValue(std::move(serialized_log), output_bytes)); | 234 new base::BinaryValue(std::move(serialized_log), output_bytes)); |
| 237 callback.Run(std::move(blob)); | 235 callback.Run(std::move(blob)); |
| 238 } | 236 } |
| 239 | 237 |
| 240 void CastSessionDelegate::GetStatsAndReset(bool is_audio, | 238 void CastSessionDelegate::GetStatsAndReset(bool is_audio, |
| 241 const StatsCallback& callback) { | 239 const StatsCallback& callback) { |
| 242 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 240 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
| 243 | 241 |
| 244 if (!event_subscribers_.get()) { | 242 if (!event_subscribers_.get()) { |
| 245 callback.Run(base::WrapUnique(new base::DictionaryValue)); | 243 callback.Run(base::MakeUnique<base::DictionaryValue>()); |
| 246 return; | 244 return; |
| 247 } | 245 } |
| 248 | 246 |
| 249 media::cast::StatsEventSubscriber* subscriber = | 247 media::cast::StatsEventSubscriber* subscriber = |
| 250 event_subscribers_->GetStatsEventSubscriber(is_audio); | 248 event_subscribers_->GetStatsEventSubscriber(is_audio); |
| 251 if (!subscriber) { | 249 if (!subscriber) { |
| 252 callback.Run(base::WrapUnique(new base::DictionaryValue)); | 250 callback.Run(base::MakeUnique<base::DictionaryValue>()); |
| 253 return; | 251 return; |
| 254 } | 252 } |
| 255 | 253 |
| 256 std::unique_ptr<base::DictionaryValue> stats = subscriber->GetStats(); | 254 std::unique_ptr<base::DictionaryValue> stats = subscriber->GetStats(); |
| 257 subscriber->Reset(); | 255 subscriber->Reset(); |
| 258 | 256 |
| 259 callback.Run(std::move(stats)); | 257 callback.Run(std::move(stats)); |
| 260 } | 258 } |
| 261 | 259 |
| 262 void CastSessionDelegate::OnOperationalStatusChange( | 260 void CastSessionDelegate::OnOperationalStatusChange( |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 error_callback.Run(base::StringPrintf("%s codec runtime error.", | 303 error_callback.Run(base::StringPrintf("%s codec runtime error.", |
| 306 is_for_audio ? "Audio" : "Video")); | 304 is_for_audio ? "Audio" : "Video")); |
| 307 break; | 305 break; |
| 308 } | 306 } |
| 309 } | 307 } |
| 310 | 308 |
| 311 void CastSessionDelegate::ReceivePacket( | 309 void CastSessionDelegate::ReceivePacket( |
| 312 std::unique_ptr<media::cast::Packet> packet) { | 310 std::unique_ptr<media::cast::Packet> packet) { |
| 313 // Do nothing (frees packet) | 311 // Do nothing (frees packet) |
| 314 } | 312 } |
| OLD | NEW |