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

Side by Side Diff: media/cast/net/rtp_sender/rtp_packetizer/rtp_packetizer.h

Issue 100823015: Cast: move net->transport (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clean up Created 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_CAST_NET_RTP_SENDER_RTP_PACKETIZER_RTP_PACKETIZER_H_
6 #define MEDIA_CAST_NET_RTP_SENDER_RTP_PACKETIZER_RTP_PACKETIZER_H_
7
8 #include <cmath>
9 #include <list>
10 #include <map>
11
12 #include "base/time/time.h"
13 #include "media/cast/net/rtp_sender/packet_storage/packet_storage.h"
14 #include "media/cast/net/rtp_sender/rtp_packetizer/rtp_packetizer_config.h"
15
16 namespace media {
17 namespace cast {
18
19 class PacedPacketSender;
20
21 // This object is only called from the main cast thread.
22 // This class break encoded audio and video frames into packets and add an RTP
23 // header to each packet.
24 class RtpPacketizer {
25 public:
26 RtpPacketizer(PacedPacketSender* transport,
27 PacketStorage* packet_storage,
28 RtpPacketizerConfig rtp_packetizer_config);
29 ~RtpPacketizer();
30
31 // The video_frame objects ownership is handled by the main cast thread.
32 void IncomingEncodedVideoFrame(const EncodedVideoFrame* video_frame,
33 const base::TimeTicks& capture_time);
34
35 // The audio_frame objects ownership is handled by the main cast thread.
36 void IncomingEncodedAudioFrame(const EncodedAudioFrame* audio_frame,
37 const base::TimeTicks& recorded_time);
38
39 bool LastSentTimestamp(base::TimeTicks* time_sent,
40 uint32* rtp_timestamp) const;
41
42 // Return the next sequence number, and increment by one. Enables unique
43 // incremental sequence numbers for every packet (including retransmissions).
44 uint16 NextSequenceNumber();
45
46 int send_packets_count() { return send_packets_count_; }
47
48 size_t send_octet_count() { return send_octet_count_; }
49
50 private:
51 void Cast(bool is_key, uint32 frame_id, uint32 reference_frame_id,
52 uint32 timestamp, const std::string& data);
53
54 void BuildCommonRTPheader(std::vector<uint8>* packet, bool marker_bit,
55 uint32 time_stamp);
56
57 RtpPacketizerConfig config_;
58 PacedPacketSender* transport_;
59 PacketStorage* packet_storage_;
60
61 base::TimeTicks time_last_sent_rtp_timestamp_;
62 uint16 sequence_number_;
63 uint32 rtp_timestamp_;
64 uint16 packet_id_;
65
66 int send_packets_count_;
67 size_t send_octet_count_;
68 };
69
70 } // namespace cast
71 } // namespace media
72
73 #endif // MEDIA_CAST_NET_RTP_SENDER_RTP_PACKETIZER_RTP_PACKETIZER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698