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

Side by Side Diff: media/cast/net/cast_transport_sender_impl.h

Issue 566243005: Cast: Allow extension to control wifi options on windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
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 // This class maintains a send transport for audio and video in a Cast 5 // This class maintains a send transport for audio and video in a Cast
6 // Streaming session. 6 // Streaming session.
7 // Audio, video frames and RTCP messages are submitted to this object 7 // Audio, video frames and RTCP messages are submitted to this object
8 // and then packetized and paced to the underlying UDP socket. 8 // and then packetized and paced to the underlying UDP socket.
9 // 9 //
10 // The hierarchy of send transport in a Cast Streaming session: 10 // The hierarchy of send transport in a Cast Streaming session:
11 // 11 //
12 // CastTransportSender RTP RTCP 12 // CastTransportSender RTP RTCP
13 // ------------------------------------------------------------------ 13 // ------------------------------------------------------------------
14 // TransportEncryptionHandler (A/V) 14 // TransportEncryptionHandler (A/V)
15 // RtpSender (A/V) Rtcp (A/V) 15 // RtpSender (A/V) Rtcp (A/V)
16 // PacedSender (Shared) 16 // PacedSender (Shared)
17 // UdpTransport (Shared) 17 // UdpTransport (Shared)
18 // 18 //
19 // There are objects of TransportEncryptionHandler, RtpSender and Rtcp 19 // There are objects of TransportEncryptionHandler, RtpSender and Rtcp
20 // for each audio and video stream. 20 // for each audio and video stream.
21 // PacedSender and UdpTransport are shared between all RTP and RTCP 21 // PacedSender and UdpTransport are shared between all RTP and RTCP
22 // streams. 22 // streams.
23 23
24 #ifndef MEDIA_CAST_NET_CAST_TRANSPORT_IMPL_H_ 24 #ifndef MEDIA_CAST_NET_CAST_TRANSPORT_IMPL_H_
25 #define MEDIA_CAST_NET_CAST_TRANSPORT_IMPL_H_ 25 #define MEDIA_CAST_NET_CAST_TRANSPORT_IMPL_H_
26 26
27 #include "base/callback.h" 27 #include "base/callback.h"
28 #include "base/gtest_prod_util.h" 28 #include "base/gtest_prod_util.h"
29 #include "base/memory/lifetime_interface.h"
29 #include "base/memory/ref_counted.h" 30 #include "base/memory/ref_counted.h"
30 #include "base/memory/scoped_ptr.h" 31 #include "base/memory/scoped_ptr.h"
31 #include "base/memory/weak_ptr.h" 32 #include "base/memory/weak_ptr.h"
32 #include "base/time/tick_clock.h" 33 #include "base/time/tick_clock.h"
33 #include "base/time/time.h" 34 #include "base/time/time.h"
34 #include "base/timer/timer.h" 35 #include "base/timer/timer.h"
35 #include "media/cast/common/transport_encryption_handler.h" 36 #include "media/cast/common/transport_encryption_handler.h"
36 #include "media/cast/logging/logging_defines.h" 37 #include "media/cast/logging/logging_defines.h"
37 #include "media/cast/logging/simple_event_subscriber.h" 38 #include "media/cast/logging/simple_event_subscriber.h"
38 #include "media/cast/net/cast_transport_config.h" 39 #include "media/cast/net/cast_transport_config.h"
(...skipping 12 matching lines...) Expand all
51 // |external_transport| is only used for testing. 52 // |external_transport| is only used for testing.
52 // |raw_events_callback|: Raw events will be returned on this callback 53 // |raw_events_callback|: Raw events will be returned on this callback
53 // which will be invoked every |raw_events_callback_interval|. 54 // which will be invoked every |raw_events_callback_interval|.
54 // This can be a null callback, i.e. if user is not interested in raw events. 55 // This can be a null callback, i.e. if user is not interested in raw events.
55 // |raw_events_callback_interval|: This can be |base::TimeDelta()| if 56 // |raw_events_callback_interval|: This can be |base::TimeDelta()| if
56 // |raw_events_callback| is a null callback. 57 // |raw_events_callback| is a null callback.
57 CastTransportSenderImpl( 58 CastTransportSenderImpl(
58 net::NetLog* net_log, 59 net::NetLog* net_log,
59 base::TickClock* clock, 60 base::TickClock* clock,
60 const net::IPEndPoint& remote_end_point, 61 const net::IPEndPoint& remote_end_point,
61 scoped_ptr<base::DictionaryValue> options, 62 scoped_ptr<base::DictionaryValue> options,
Alpha Left Google 2014/09/15 20:12:29 Need to document the new options.
hubbe 2014/09/15 23:11:49 Done.
62 const CastTransportStatusCallback& status_callback, 63 const CastTransportStatusCallback& status_callback,
63 const BulkRawEventsCallback& raw_events_callback, 64 const BulkRawEventsCallback& raw_events_callback,
64 base::TimeDelta raw_events_callback_interval, 65 base::TimeDelta raw_events_callback_interval,
65 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner, 66 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner,
66 PacketSender* external_transport); 67 PacketSender* external_transport);
67 68
68 virtual ~CastTransportSenderImpl(); 69 virtual ~CastTransportSenderImpl();
69 70
70 virtual void InitializeAudio(const CastTransportRtpConfig& config, 71 virtual void InitializeAudio(const CastTransportRtpConfig& config,
71 const RtcpCastMessageCallback& cast_message_cb, 72 const RtcpCastMessageCallback& cast_message_cb,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 scoped_ptr<SimpleEventSubscriber> event_subscriber_; 152 scoped_ptr<SimpleEventSubscriber> event_subscriber_;
152 153
153 BulkRawEventsCallback raw_events_callback_; 154 BulkRawEventsCallback raw_events_callback_;
154 base::TimeDelta raw_events_callback_interval_; 155 base::TimeDelta raw_events_callback_interval_;
155 156
156 // Right after a frame is sent we record the number of bytes sent to the 157 // Right after a frame is sent we record the number of bytes sent to the
157 // socket. We record the corresponding bytes sent for the most recent ACKed 158 // socket. We record the corresponding bytes sent for the most recent ACKed
158 // audio packet. 159 // audio packet.
159 int64 last_byte_acked_for_audio_; 160 int64 last_byte_acked_for_audio_;
160 161
162 scoped_ptr<base::LifetimeInterface> wifi_options_autoreset_;
163
161 base::WeakPtrFactory<CastTransportSenderImpl> weak_factory_; 164 base::WeakPtrFactory<CastTransportSenderImpl> weak_factory_;
162 165
163 DISALLOW_COPY_AND_ASSIGN(CastTransportSenderImpl); 166 DISALLOW_COPY_AND_ASSIGN(CastTransportSenderImpl);
164 }; 167 };
165 168
166 } // namespace cast 169 } // namespace cast
167 } // namespace media 170 } // namespace media
168 171
169 #endif // MEDIA_CAST_NET_CAST_TRANSPORT_IMPL_H_ 172 #endif // MEDIA_CAST_NET_CAST_TRANSPORT_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698