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

Unified Diff: media/cast/transport/rtp_sender/rtp_sender.h

Issue 174183003: Cast:Transport: Dividing A/V Initialization pipeline (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixing errors and yet another rebase Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/cast/transport/pacing/paced_sender.h ('k') | media/cast/transport/rtp_sender/rtp_sender.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/transport/rtp_sender/rtp_sender.h
diff --git a/media/cast/transport/rtp_sender/rtp_sender.h b/media/cast/transport/rtp_sender/rtp_sender.h
index 4fc4957d881b2047d16c9bdf6055e63bf25092ea..eea95d31065d8f1e920fa1df7121228935ced475 100644
--- a/media/cast/transport/rtp_sender/rtp_sender.h
+++ b/media/cast/transport/rtp_sender/rtp_sender.h
@@ -30,16 +30,23 @@ namespace transport {
// This class handles splitting encoded audio and video frames into packets and
// add an RTP header to each packet. The sent packets are stored until they are
// acknowledged by the remote peer or timed out.
-class RtpSender : public base::SupportsWeakPtr<RtpSender>{
+class RtpSender {
public:
- RtpSender(base::TickClock* clock,
- const CastTransportConfig& config,
- bool is_audio,
- const scoped_refptr<base::TaskRunner>& transport_task_runner,
- PacedSender* const transport);
+ RtpSender(
+ base::TickClock* clock,
+ const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner,
+ PacedSender* const transport);
~RtpSender();
+ // Initialize audio stack. Audio must be initialized prior to sending encoded
+ // audio frames.
+ void InitializeAudio(const CastTransportAudioConfig& config);
+
+ // Initialize video stack. Video must be initialized prior to sending encoded
+ // video frames.
+ void InitializeVideo(const CastTransportVideoConfig& config);
+
// The video_frame objects ownership is handled by the main cast thread.
void IncomingEncodedVideoFrame(const EncodedVideoFrame* video_frame,
const base::TimeTicks& capture_time);
@@ -60,12 +67,15 @@ class RtpSender : public base::SupportsWeakPtr<RtpSender>{
void RtpStatistics();
void UpdateSequenceNumber(Packet* packet);
+ base::TickClock* clock_; // Not owned by this class.
RtpPacketizerConfig config_;
scoped_ptr<RtpPacketizer> packetizer_;
scoped_ptr<PacketStorage> storage_;
PacedSender* const transport_;
CastTransportRtpStatistics stats_callback_;
- scoped_refptr<base::TaskRunner> transport_task_runner_;
+ scoped_refptr<base::SingleThreadTaskRunner> transport_task_runner_;
+
+ base::WeakPtrFactory<RtpSender> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(RtpSender);
};
« no previous file with comments | « media/cast/transport/pacing/paced_sender.h ('k') | media/cast/transport/rtp_sender/rtp_sender.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698