Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1334)

Side by Side Diff: media/cast/test/sender.cc

Issue 1515023002: Simplify interface for media/cast: CastTransportSenderImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/cast/test/loopback_transport.h ('k') | media/cast/test/simulator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // Test application that simulates a cast sender - Data can be either generated 5 // Test application that simulates a cast sender - Data can be either generated
6 // or read from a file. 6 // or read from a file.
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <queue> 9 #include <queue>
10 #include <utility> 10 #include <utility>
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 *stats, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); 153 *stats, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json);
154 VLOG(0) << "Video stats: " << json; 154 VLOG(0) << "Video stats: " << json;
155 155
156 stats = audio_stats_subscriber->GetStats(); 156 stats = audio_stats_subscriber->GetStats();
157 json.clear(); 157 json.clear();
158 base::JSONWriter::WriteWithOptions( 158 base::JSONWriter::WriteWithOptions(
159 *stats, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); 159 *stats, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json);
160 VLOG(0) << "Audio stats: " << json; 160 VLOG(0) << "Audio stats: " << json;
161 } 161 }
162 162
163 class TransportClient : public media::cast::CastTransportSender::Client {
164 public:
165 explicit TransportClient(
166 media::cast::LogEventDispatcher* log_event_dispatcher)
167 : log_event_dispatcher_(log_event_dispatcher) {}
168
169 void OnStatusChanged(media::cast::CastTransportStatus status) final {
170 VLOG(1) << "Transport status: " << status;
171 };
172 void OnLoggingEventsReceived(
173 scoped_ptr<std::vector<media::cast::FrameEvent>> frame_events,
174 scoped_ptr<std::vector<media::cast::PacketEvent>> packet_events) final {
175 DCHECK(log_event_dispatcher_);
176 log_event_dispatcher_->DispatchBatchOfEvents(std::move(frame_events),
177 std::move(packet_events));
178 };
179 void ProcessRtpPacket(scoped_ptr<media::cast::Packet> packet) final {}
180
181 private:
182 media::cast::LogEventDispatcher* const
183 log_event_dispatcher_; // Not owned by this class.
184
185 DISALLOW_COPY_AND_ASSIGN(TransportClient);
186 };
187
163 } // namespace 188 } // namespace
164 189
165 int main(int argc, char** argv) { 190 int main(int argc, char** argv) {
166 base::AtExitManager at_exit; 191 base::AtExitManager at_exit;
167 base::CommandLine::Init(argc, argv); 192 base::CommandLine::Init(argc, argv);
168 InitLogging(logging::LoggingSettings()); 193 InitLogging(logging::LoggingSettings());
169 194
170 // Prepare media module for FFmpeg decoding. 195 // Prepare media module for FFmpeg decoding.
171 media::InitializeMediaLibrary(); 196 media::InitializeMediaLibrary();
172 197
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 if (!source_path.empty()) { 253 if (!source_path.empty()) {
229 LOG(INFO) << "Source: " << source_path.value(); 254 LOG(INFO) << "Source: " << source_path.value();
230 fake_media_source->SetSourceFile(source_path, final_fps); 255 fake_media_source->SetSourceFile(source_path, final_fps);
231 } 256 }
232 if (cmd->HasSwitch(kSwitchVaryFrameSizes)) 257 if (cmd->HasSwitch(kSwitchVaryFrameSizes))
233 fake_media_source->SetVariableFrameSizeMode(true); 258 fake_media_source->SetVariableFrameSizeMode(true);
234 259
235 // CastTransportSender initialization. 260 // CastTransportSender initialization.
236 scoped_ptr<media::cast::CastTransportSender> transport_sender = 261 scoped_ptr<media::cast::CastTransportSender> transport_sender =
237 media::cast::CastTransportSender::Create( 262 media::cast::CastTransportSender::Create(
238 nullptr, // net log. 263 cast_environment->Clock(), base::TimeDelta::FromSeconds(1),
239 cast_environment->Clock(), net::IPEndPoint(), remote_endpoint, 264 make_scoped_ptr(new TransportClient(cast_environment->logger())),
240 make_scoped_ptr(new base::DictionaryValue), // options 265 make_scoped_ptr(new media::cast::UdpTransport(
241 base::Bind(&UpdateCastTransportStatus), 266 nullptr, io_message_loop.task_runner(), net::IPEndPoint(),
242 base::Bind(&media::cast::LogEventDispatcher::DispatchBatchOfEvents, 267 remote_endpoint, base::Bind(&UpdateCastTransportStatus))),
243 base::Unretained(cast_environment->logger())), 268 io_message_loop.task_runner());
244 base::TimeDelta::FromSeconds(1),
245 media::cast::PacketReceiverCallback(), io_message_loop.task_runner());
246 269
247 // Set up event subscribers. 270 // Set up event subscribers.
248 scoped_ptr<media::cast::EncodingEventSubscriber> video_event_subscriber; 271 scoped_ptr<media::cast::EncodingEventSubscriber> video_event_subscriber;
249 scoped_ptr<media::cast::EncodingEventSubscriber> audio_event_subscriber; 272 scoped_ptr<media::cast::EncodingEventSubscriber> audio_event_subscriber;
250 std::string video_log_file_name("/tmp/video_events.log.gz"); 273 std::string video_log_file_name("/tmp/video_events.log.gz");
251 std::string audio_log_file_name("/tmp/audio_events.log.gz"); 274 std::string audio_log_file_name("/tmp/audio_events.log.gz");
252 LOG(INFO) << "Logging audio events to: " << audio_log_file_name; 275 LOG(INFO) << "Logging audio events to: " << audio_log_file_name;
253 LOG(INFO) << "Logging video events to: " << video_log_file_name; 276 LOG(INFO) << "Logging video events to: " << video_log_file_name;
254 video_event_subscriber.reset(new media::cast::EncodingEventSubscriber( 277 video_event_subscriber.reset(new media::cast::EncodingEventSubscriber(
255 media::cast::VIDEO_EVENT, 10000)); 278 media::cast::VIDEO_EVENT, 10000));
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 base::Unretained(cast_sender.get()), 346 base::Unretained(cast_sender.get()),
324 audio_config, 347 audio_config,
325 base::Bind(&QuitLoopOnInitializationResult))); 348 base::Bind(&QuitLoopOnInitializationResult)));
326 io_message_loop.Run(); // Wait for audio initialization. 349 io_message_loop.Run(); // Wait for audio initialization.
327 350
328 fake_media_source->Start(cast_sender->audio_frame_input(), 351 fake_media_source->Start(cast_sender->audio_frame_input(),
329 cast_sender->video_frame_input()); 352 cast_sender->video_frame_input());
330 io_message_loop.Run(); 353 io_message_loop.Run();
331 return 0; 354 return 0;
332 } 355 }
OLDNEW
« no previous file with comments | « media/cast/test/loopback_transport.h ('k') | media/cast/test/simulator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698