Chromium Code Reviews| 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_LOGGING_ENCODING_EVENT_SUBSCRIBER_H_ | 5 #ifndef MEDIA_CAST_LOGGING_ENCODING_EVENT_SUBSCRIBER_H_ |
| 6 #define MEDIA_CAST_LOGGING_ENCODING_EVENT_SUBSCRIBER_H_ | 6 #define MEDIA_CAST_LOGGING_ENCODING_EVENT_SUBSCRIBER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/memory/linked_ptr.h" | 10 #include "base/memory/linked_ptr.h" |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 39 EncodingEventSubscriber(EventMediaType event_media_type, size_t max_frames); | 39 EncodingEventSubscriber(EventMediaType event_media_type, size_t max_frames); |
| 40 | 40 |
| 41 virtual ~EncodingEventSubscriber(); | 41 virtual ~EncodingEventSubscriber(); |
| 42 | 42 |
| 43 // RawReventSubscriber implementations. | 43 // RawReventSubscriber implementations. |
| 44 virtual void OnReceiveFrameEvent(const FrameEvent& frame_event) OVERRIDE; | 44 virtual void OnReceiveFrameEvent(const FrameEvent& frame_event) OVERRIDE; |
| 45 virtual void OnReceivePacketEvent(const PacketEvent& packet_event) OVERRIDE; | 45 virtual void OnReceivePacketEvent(const PacketEvent& packet_event) OVERRIDE; |
| 46 virtual void OnReceiveGenericEvent(const GenericEvent& generic_event) | 46 virtual void OnReceiveGenericEvent(const GenericEvent& generic_event) |
| 47 OVERRIDE; | 47 OVERRIDE; |
| 48 | 48 |
| 49 // Assigns frame events received so far to |frame_events| and clears them | 49 // Assigns frame events and packet events received so far to |frame_events| |
| 50 // from this object. | 50 // and clears them |packet_events| respectively, assigns the first seen RTP |
| 51 void GetFrameEventsAndReset(FrameEventMap* frame_events); | 51 // timestamp (which is used as a reference for all event entries) to |
| 52 | 52 // |first_rtp_timestamp|, and reset this object's internal states. |
| 53 // Assigns packet events received so far to |packet_events| and clears them | 53 // All RTP timestamp values returned in the maps are relative to |
| 54 // from this object. | 54 // |first_rtp_timestamp|, i.e. suppose |first_rtp_timestamp| is X, |
| 55 void GetPacketEventsAndReset(PacketEventMap* packet_events); | 55 // then the first event will be recorded with a relative |
| 56 // RTP timestamp value of 0. If the next event has original RTP timestamp | |
| 57 // X+20, it will be recorded with a relative RTP timestamp of 20. | |
| 58 void GetEventsAndReset(FrameEventMap* frame_events, | |
| 59 PacketEventMap* packet_events, | |
| 60 RtpTimestamp* first_rtp_timestamp); | |
| 56 | 61 |
| 57 private: | 62 private: |
| 58 bool ShouldProcessEvent(CastLoggingEvent event); | 63 bool ShouldProcessEvent(CastLoggingEvent event); |
| 59 | 64 |
| 60 // Removes oldest entry from |frame_event_map_| (ordered by RTP timestamp). | 65 // Removes oldest entry from |frame_event_map_| (ordered by RTP timestamp). |
| 61 void TruncateFrameEventMapIfNeeded(); | 66 void TruncateFrameEventMapIfNeeded(); |
| 62 | 67 |
| 63 // Removes oldest entry from |packet_event_map_| (ordered by RTP timestamp). | 68 // Removes oldest entry from |packet_event_map_| (ordered by RTP timestamp). |
| 64 void TruncatePacketEventMapIfNeeded(); | 69 void TruncatePacketEventMapIfNeeded(); |
| 65 | 70 |
| 71 // Returns the difference between |rtp_timestamp| and |first_rtp_timestamp_|. | |
| 72 // Sets |first_rtp_timestamp_| if it is not already set. | |
| 73 RtpTimestamp GetRelativeRtpTimestamp(RtpTimestamp rtp_timestamp); | |
| 74 | |
| 75 // Clears the maps and first RTP timestamp seen. | |
| 76 void Reset(); | |
| 77 | |
| 66 const EventMediaType event_media_type_; | 78 const EventMediaType event_media_type_; |
| 67 const size_t max_frames_; | 79 const size_t max_frames_; |
| 68 | 80 |
| 69 FrameEventMap frame_event_map_; | 81 FrameEventMap frame_event_map_; |
| 70 PacketEventMap packet_event_map_; | 82 PacketEventMap packet_event_map_; |
| 71 | 83 |
| 72 // All functions must be called on the main thread. | 84 // All functions must be called on the main thread. |
| 73 base::ThreadChecker thread_checker_; | 85 base::ThreadChecker thread_checker_; |
| 74 | 86 |
| 87 // Set to true on first event encountered after a |Reset()|. | |
| 88 bool seen_first_rtp_timestamp_; | |
| 89 // Set to RTP timestamp of first event encountered after a |Reset()|. | |
|
Alpha Left Google
2014/02/18 21:54:28
nit: an empty line before this.
imcheng
2014/02/19 01:12:27
Done.
| |
| 90 RtpTimestamp first_rtp_timestamp_; | |
| 91 | |
| 75 DISALLOW_COPY_AND_ASSIGN(EncodingEventSubscriber); | 92 DISALLOW_COPY_AND_ASSIGN(EncodingEventSubscriber); |
| 76 }; | 93 }; |
| 77 | 94 |
| 78 } // namespace cast | 95 } // namespace cast |
| 79 } // namespace media | 96 } // namespace media |
| 80 | 97 |
| 81 #endif // MEDIA_CAST_LOGGING_ENCODING_EVENT_SUBSCRIBER_H_ | 98 #endif // MEDIA_CAST_LOGGING_ENCODING_EVENT_SUBSCRIBER_H_ |
| OLD | NEW |