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

Side by Side Diff: media/cast/transport/rtp_sender/rtp_sender.h

Issue 196433002: Cast: Log sender side packet events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 9 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 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 // This file contains the interface to the cast RTP sender. 5 // This file contains the interface to the cast RTP sender.
6 6
7 #ifndef MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_SENDER_H_ 7 #ifndef MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_SENDER_H_
8 #define MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_SENDER_H_ 8 #define MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_SENDER_H_
9 9
10 #include <map> 10 #include <map>
11 #include <set> 11 #include <set>
12 12
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "base/time/tick_clock.h" 14 #include "base/time/tick_clock.h"
15 #include "base/time/time.h" 15 #include "base/time/time.h"
16 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
17 #include "media/cast/cast_config.h" 17 #include "media/cast/cast_config.h"
18 #include "media/cast/cast_environment.h" 18 #include "media/cast/cast_environment.h"
19 #include "media/cast/transport/cast_transport_defines.h" 19 #include "media/cast/transport/cast_transport_defines.h"
20 #include "media/cast/transport/cast_transport_sender.h" 20 #include "media/cast/transport/cast_transport_sender.h"
21 #include "media/cast/transport/pacing/paced_sender.h" 21 #include "media/cast/transport/pacing/paced_sender.h"
22 #include "media/cast/transport/rtp_sender/packet_storage/packet_storage.h" 22 #include "media/cast/transport/rtp_sender/packet_storage/packet_storage.h"
23 #include "media/cast/transport/rtp_sender/rtp_packetizer/rtp_packetizer.h" 23 #include "media/cast/transport/rtp_sender/rtp_packetizer/rtp_packetizer.h"
24 24
25 namespace media { 25 namespace media {
26 namespace cast { 26 namespace cast {
27
28 class LoggingImpl;
29
27 namespace transport { 30 namespace transport {
28 31
29 // This object is only called from the main cast thread. 32 // This object is only called from the main cast thread.
30 // This class handles splitting encoded audio and video frames into packets and 33 // This class handles splitting encoded audio and video frames into packets and
31 // add an RTP header to each packet. The sent packets are stored until they are 34 // add an RTP header to each packet. The sent packets are stored until they are
32 // acknowledged by the remote peer or timed out. 35 // acknowledged by the remote peer or timed out.
33 class RtpSender { 36 class RtpSender {
34 public: 37 public:
35 RtpSender( 38 RtpSender(
36 base::TickClock* clock, 39 base::TickClock* clock,
40 LoggingImpl* logging,
37 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner, 41 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner,
38 PacedSender* const transport); 42 PacedSender* const transport);
39 43
40 ~RtpSender(); 44 ~RtpSender();
41 45
42 // Initialize audio stack. Audio must be initialized prior to sending encoded 46 // Initialize audio stack. Audio must be initialized prior to sending encoded
43 // audio frames. 47 // audio frames.
44 void InitializeAudio(const CastTransportAudioConfig& config); 48 void InitializeAudio(const CastTransportAudioConfig& config);
45 49
46 // Initialize video stack. Video must be initialized prior to sending encoded 50 // Initialize video stack. Video must be initialized prior to sending encoded
(...skipping 14 matching lines...) Expand all
61 // this function would start a timer that would schedule the callback in 65 // this function would start a timer that would schedule the callback in
62 // a constant interval. 66 // a constant interval.
63 void SubscribeRtpStatsCallback(const CastTransportRtpStatistics& callback); 67 void SubscribeRtpStatsCallback(const CastTransportRtpStatistics& callback);
64 68
65 private: 69 private:
66 void ScheduleNextStatsReport(); 70 void ScheduleNextStatsReport();
67 void RtpStatistics(); 71 void RtpStatistics();
68 void UpdateSequenceNumber(Packet* packet); 72 void UpdateSequenceNumber(Packet* packet);
69 73
70 base::TickClock* clock_; // Not owned by this class. 74 base::TickClock* clock_; // Not owned by this class.
75 LoggingImpl* logging_; // Not owned by this class.
71 RtpPacketizerConfig config_; 76 RtpPacketizerConfig config_;
72 scoped_ptr<RtpPacketizer> packetizer_; 77 scoped_ptr<RtpPacketizer> packetizer_;
73 scoped_ptr<PacketStorage> storage_; 78 scoped_ptr<PacketStorage> storage_;
74 PacedSender* const transport_; 79 PacedSender* const transport_;
75 CastTransportRtpStatistics stats_callback_; 80 CastTransportRtpStatistics stats_callback_;
76 scoped_refptr<base::SingleThreadTaskRunner> transport_task_runner_; 81 scoped_refptr<base::SingleThreadTaskRunner> transport_task_runner_;
77 82
78 base::WeakPtrFactory<RtpSender> weak_factory_; 83 base::WeakPtrFactory<RtpSender> weak_factory_;
79 84
80 DISALLOW_COPY_AND_ASSIGN(RtpSender); 85 DISALLOW_COPY_AND_ASSIGN(RtpSender);
81 }; 86 };
82 87
83 } // namespace transport 88 } // namespace transport
84 } // namespace cast 89 } // namespace cast
85 } // namespace media 90 } // namespace media
86 91
87 #endif // MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_SENDER_H_ 92 #endif // MEDIA_CAST_TRANSPORT_RTP_SENDER_RTP_SENDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698