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

Side by Side Diff: media/cast/framer/cast_message_builder.h

Issue 388663003: Cast: Reshuffle files under media/cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missing includes Created 6 years, 5 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 | 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 // Handles NACK list and manages ACK.
6
7 #ifndef MEDIA_CAST_FRAMER_CAST_MESSAGE_BUILDER_H_
8 #define MEDIA_CAST_FRAMER_CAST_MESSAGE_BUILDER_H_
9
10 #include <deque>
11 #include <map>
12
13 #include "media/cast/framer/frame_id_map.h"
14 #include "media/cast/rtcp/rtcp.h"
15 #include "media/cast/rtp_receiver/rtp_receiver_defines.h"
16
17 namespace media {
18 namespace cast {
19
20 class RtpPayloadFeedback;
21
22 typedef std::map<uint32, base::TimeTicks> TimeLastNackMap;
23
24 class CastMessageBuilder {
25 public:
26 CastMessageBuilder(base::TickClock* clock,
27 RtpPayloadFeedback* incoming_payload_feedback,
28 FrameIdMap* frame_id_map,
29 uint32 media_ssrc,
30 bool decoder_faster_than_max_frame_rate,
31 int max_unacked_frames);
32 ~CastMessageBuilder();
33
34 void CompleteFrameReceived(uint32 frame_id);
35 bool TimeToSendNextCastMessage(base::TimeTicks* time_to_send);
36 void UpdateCastMessage();
37 void Reset();
38
39 private:
40 bool UpdateAckMessage(uint32 frame_id);
41 void BuildPacketList();
42 bool UpdateCastMessageInternal(RtcpCastMessage* message);
43
44 base::TickClock* const clock_; // Not owned by this class.
45 RtpPayloadFeedback* const cast_feedback_;
46
47 // CastMessageBuilder has only const access to the frame id mapper.
48 const FrameIdMap* const frame_id_map_;
49 const uint32 media_ssrc_;
50 const bool decoder_faster_than_max_frame_rate_;
51 const int max_unacked_frames_;
52
53 RtcpCastMessage cast_msg_;
54 base::TimeTicks last_update_time_;
55
56 TimeLastNackMap time_last_nacked_map_;
57
58 bool slowing_down_ack_;
59 bool acked_last_frame_;
60 uint32 last_acked_frame_id_;
61 std::deque<uint32> ack_queue_;
62
63 DISALLOW_COPY_AND_ASSIGN(CastMessageBuilder);
64 };
65
66 } // namespace cast
67 } // namespace media
68
69 #endif // MEDIA_CAST_FRAMER_CAST_MESSAGE_BUILDER_H_
OLDNEW
« no previous file with comments | « media/cast/congestion_control/congestion_control_unittest.cc ('k') | media/cast/framer/cast_message_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698