OLD | NEW |
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 #ifndef MEDIA_CAST_RTCP_RECEIVER_RTCP_EVENT_SUBSCRIBER_H_ | 5 #ifndef MEDIA_CAST_RTCP_RECEIVER_RTCP_EVENT_SUBSCRIBER_H_ |
6 #define MEDIA_CAST_RTCP_RECEIVER_RTCP_EVENT_SUBSCRIBER_H_ | 6 #define MEDIA_CAST_RTCP_RECEIVER_RTCP_EVENT_SUBSCRIBER_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 const size_t max_size_to_retain_; | 67 const size_t max_size_to_retain_; |
68 EventMediaType type_; | 68 EventMediaType type_; |
69 | 69 |
70 // The key should really be something more than just a RTP timestamp in order | 70 // The key should really be something more than just a RTP timestamp in order |
71 // to differentiate between video and audio frames, but since the | 71 // to differentiate between video and audio frames, but since the |
72 // implementation doesn't mix audio and video frame events, RTP timestamp | 72 // implementation doesn't mix audio and video frame events, RTP timestamp |
73 // only as key is fine. | 73 // only as key is fine. |
74 std::deque<RtcpEventPair> rtcp_events_; | 74 std::deque<RtcpEventPair> rtcp_events_; |
75 | 75 |
76 // Counts how many events have been removed from rtcp_events_. | 76 // Counts how many events have been removed from rtcp_events_. |
77 uint64 popped_events_; | 77 uint64_t popped_events_; |
78 | 78 |
79 // Events greater than send_ptrs_[0] have not been sent yet. | 79 // Events greater than send_ptrs_[0] have not been sent yet. |
80 // Events greater than send_ptrs_[1] have been transmit once. | 80 // Events greater than send_ptrs_[1] have been transmit once. |
81 // Note that these counters use absolute numbers, so you need | 81 // Note that these counters use absolute numbers, so you need |
82 // to subtract popped_events_ before looking up the events in | 82 // to subtract popped_events_ before looking up the events in |
83 // rtcp_events_. | 83 // rtcp_events_. |
84 uint64 send_ptrs_[kNumResends]; | 84 uint64_t send_ptrs_[kNumResends]; |
85 | 85 |
86 // For each frame, we push how many events have been added to | 86 // For each frame, we push how many events have been added to |
87 // rtcp_events_ so far. We use this to make sure that | 87 // rtcp_events_ so far. We use this to make sure that |
88 // send_ptrs_[N+1] is always at least kResendDelay frames behind | 88 // send_ptrs_[N+1] is always at least kResendDelay frames behind |
89 // send_ptrs_[N]. Old information is removed so that information | 89 // send_ptrs_[N]. Old information is removed so that information |
90 // for (kNumResends + 1) * kResendDelay frames remain. | 90 // for (kNumResends + 1) * kResendDelay frames remain. |
91 std::deque<uint64> event_levels_for_past_frames_; | 91 std::deque<uint64_t> event_levels_for_past_frames_; |
92 | 92 |
93 // Ensures methods are only called on the main thread. | 93 // Ensures methods are only called on the main thread. |
94 base::ThreadChecker thread_checker_; | 94 base::ThreadChecker thread_checker_; |
95 | 95 |
96 DISALLOW_COPY_AND_ASSIGN(ReceiverRtcpEventSubscriber); | 96 DISALLOW_COPY_AND_ASSIGN(ReceiverRtcpEventSubscriber); |
97 }; | 97 }; |
98 | 98 |
99 } // namespace cast | 99 } // namespace cast |
100 } // namespace media | 100 } // namespace media |
101 | 101 |
102 #endif // MEDIA_CAST_RTCP_RECEIVER_RTCP_EVENT_SUBSCRIBER_H_ | 102 #endif // MEDIA_CAST_RTCP_RECEIVER_RTCP_EVENT_SUBSCRIBER_H_ |
OLD | NEW |