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

Side by Side Diff: media/cast/test/utility/in_process_receiver.cc

Issue 765643006: Cast: Make receiver use cast_transport (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix end2end test Created 6 years 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 "media/cast/test/utility/in_process_receiver.h" 5 #include "media/cast/test/utility/in_process_receiver.h"
6 6
7 #include "base/bind_helpers.h" 7 #include "base/bind_helpers.h"
8 #include "base/synchronization/waitable_event.h" 8 #include "base/synchronization/waitable_event.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "base/values.h"
10 #include "media/base/video_frame.h" 11 #include "media/base/video_frame.h"
11 #include "media/cast/cast_config.h" 12 #include "media/cast/cast_config.h"
12 #include "media/cast/cast_environment.h" 13 #include "media/cast/cast_environment.h"
13 #include "media/cast/cast_receiver.h" 14 #include "media/cast/cast_receiver.h"
14 #include "media/cast/net/cast_transport_config.h" 15 #include "media/cast/net/cast_transport_config.h"
15 #include "media/cast/net/udp_transport.h" 16 #include "media/cast/net/udp_transport.h"
16 17
17 using media::cast::CastTransportStatus; 18 using media::cast::CastTransportStatus;
18 using media::cast::UdpTransport; 19 using media::cast::UdpTransport;
19 20
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 void InProcessReceiver::UpdateCastTransportStatus(CastTransportStatus status) { 70 void InProcessReceiver::UpdateCastTransportStatus(CastTransportStatus status) {
70 LOG_IF(ERROR, status == media::cast::TRANSPORT_SOCKET_ERROR) 71 LOG_IF(ERROR, status == media::cast::TRANSPORT_SOCKET_ERROR)
71 << "Transport socket error occurred. InProcessReceiver is likely dead."; 72 << "Transport socket error occurred. InProcessReceiver is likely dead.";
72 VLOG(1) << "CastTransportStatus is now " << status; 73 VLOG(1) << "CastTransportStatus is now " << status;
73 } 74 }
74 75
75 void InProcessReceiver::StartOnMainThread() { 76 void InProcessReceiver::StartOnMainThread() {
76 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 77 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
77 78
78 DCHECK(!transport_ && !cast_receiver_); 79 DCHECK(!transport_ && !cast_receiver_);
79 transport_.reset( 80
80 new UdpTransport(NULL, 81 transport_ = CastTransportSender::Create(
81 cast_environment_->GetTaskRunner(CastEnvironment::MAIN), 82 NULL,
82 local_end_point_, 83 cast_environment_->Clock(),
83 remote_end_point_, 84 local_end_point_,
84 65536, 85 remote_end_point_,
85 base::Bind(&InProcessReceiver::UpdateCastTransportStatus, 86 scoped_ptr<base::DictionaryValue>(new base::DictionaryValue),
86 base::Unretained(this)))); 87 base::Bind(&InProcessReceiver::UpdateCastTransportStatus,
88 base::Unretained(this)),
89 BulkRawEventsCallback(),
90 base::TimeDelta(),
91 base::Bind(&InProcessReceiver::ReceivePacket,
92 base::Unretained(this)),
93 cast_environment_->GetTaskRunner(CastEnvironment::MAIN));
94
87 cast_receiver_ = CastReceiver::Create( 95 cast_receiver_ = CastReceiver::Create(
88 cast_environment_, audio_config_, video_config_, transport_.get()); 96 cast_environment_, audio_config_, video_config_, transport_.get());
89 97
90 // TODO(hubbe): Make the cast receiver do this automatically.
91 transport_->StartReceiving(cast_receiver_->packet_receiver());
92
93 PullNextAudioFrame(); 98 PullNextAudioFrame();
94 PullNextVideoFrame(); 99 PullNextVideoFrame();
95 } 100 }
96 101
97 void InProcessReceiver::GotAudioFrame(scoped_ptr<AudioBus> audio_frame, 102 void InProcessReceiver::GotAudioFrame(scoped_ptr<AudioBus> audio_frame,
98 const base::TimeTicks& playout_time, 103 const base::TimeTicks& playout_time,
99 bool is_continuous) { 104 bool is_continuous) {
100 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 105 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
101 if (audio_frame.get()) 106 if (audio_frame.get())
102 OnAudioFrame(audio_frame.Pass(), playout_time, is_continuous); 107 OnAudioFrame(audio_frame.Pass(), playout_time, is_continuous);
(...skipping 16 matching lines...) Expand all
119 base::Bind(&InProcessReceiver::GotAudioFrame, 124 base::Bind(&InProcessReceiver::GotAudioFrame,
120 weak_factory_.GetWeakPtr())); 125 weak_factory_.GetWeakPtr()));
121 } 126 }
122 127
123 void InProcessReceiver::PullNextVideoFrame() { 128 void InProcessReceiver::PullNextVideoFrame() {
124 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 129 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
125 cast_receiver_->RequestDecodedVideoFrame(base::Bind( 130 cast_receiver_->RequestDecodedVideoFrame(base::Bind(
126 &InProcessReceiver::GotVideoFrame, weak_factory_.GetWeakPtr())); 131 &InProcessReceiver::GotVideoFrame, weak_factory_.GetWeakPtr()));
127 } 132 }
128 133
134 void InProcessReceiver::ReceivePacket(scoped_ptr<Packet> packet) {
135 // TODO(Hubbe): Make an InsertPacket method instead.
136 cast_receiver_->ReceivePacket(packet.Pass());
137 }
138
129 } // namespace cast 139 } // namespace cast
130 } // namespace media 140 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698