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

Side by Side Diff: media/cast/rtcp/receiver_rtcp_event_subscriber.cc

Issue 270493003: Cast: Deduplicate event types in cast library. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 7 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
OLDNEW
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 #include "media/cast/rtcp/receiver_rtcp_event_subscriber.h" 5 #include "media/cast/rtcp/receiver_rtcp_event_subscriber.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 namespace media { 9 namespace media {
10 namespace cast { 10 namespace cast {
11 11
12 ReceiverRtcpEventSubscriber::ReceiverRtcpEventSubscriber( 12 ReceiverRtcpEventSubscriber::ReceiverRtcpEventSubscriber(
13 const size_t max_size_to_retain, Type type) 13 const size_t max_size_to_retain, EventMediaType type)
14 : max_size_to_retain_(max_size_to_retain), type_(type) { 14 : max_size_to_retain_(max_size_to_retain), type_(type) {
15 DCHECK(max_size_to_retain_ > 0u); 15 DCHECK(max_size_to_retain_ > 0u);
16 DCHECK(type_ == kAudioEventSubscriber || type_ == kVideoEventSubscriber); 16 DCHECK(type_ == AUDIO_EVENT || type_ == VIDEO_EVENT);
17 } 17 }
18 18
19 ReceiverRtcpEventSubscriber::~ReceiverRtcpEventSubscriber() { 19 ReceiverRtcpEventSubscriber::~ReceiverRtcpEventSubscriber() {
20 DCHECK(thread_checker_.CalledOnValidThread()); 20 DCHECK(thread_checker_.CalledOnValidThread());
21 } 21 }
22 22
23 void ReceiverRtcpEventSubscriber::OnReceiveFrameEvent( 23 void ReceiverRtcpEventSubscriber::OnReceiveFrameEvent(
24 const FrameEvent& frame_event) { 24 const FrameEvent& frame_event) {
25 DCHECK(thread_checker_.CalledOnValidThread()); 25 DCHECK(thread_checker_.CalledOnValidThread());
26 26
27 if (ShouldProcessEvent(frame_event.type)) { 27 if (ShouldProcessEvent(frame_event.type, frame_event.media_type)) {
28 RtcpEvent rtcp_event; 28 RtcpEvent rtcp_event;
29 switch (frame_event.type) { 29 switch (frame_event.type) {
30 case kAudioPlayoutDelay: 30 case FRAME_PLAYOUT:
31 case kVideoRenderDelay:
32 rtcp_event.delay_delta = frame_event.delay_delta; 31 rtcp_event.delay_delta = frame_event.delay_delta;
33 case kAudioFrameDecoded: 32 case FRAME_ACK_SENT:
34 case kVideoFrameDecoded: 33 case FRAME_DECODED:
35 case kAudioAckSent:
36 case kVideoAckSent:
37 rtcp_event.type = frame_event.type; 34 rtcp_event.type = frame_event.type;
38 rtcp_event.timestamp = frame_event.timestamp; 35 rtcp_event.timestamp = frame_event.timestamp;
39 rtcp_events_.insert( 36 rtcp_events_.insert(
40 std::make_pair(frame_event.rtp_timestamp, rtcp_event)); 37 std::make_pair(frame_event.rtp_timestamp, rtcp_event));
41 break; 38 break;
42 default: 39 default:
43 break; 40 break;
44 } 41 }
45 } 42 }
46 43
47 TruncateMapIfNeeded(); 44 TruncateMapIfNeeded();
48 45
49 DCHECK(rtcp_events_.size() <= max_size_to_retain_); 46 DCHECK(rtcp_events_.size() <= max_size_to_retain_);
50 } 47 }
51 48
52 void ReceiverRtcpEventSubscriber::OnReceivePacketEvent( 49 void ReceiverRtcpEventSubscriber::OnReceivePacketEvent(
53 const PacketEvent& packet_event) { 50 const PacketEvent& packet_event) {
54 DCHECK(thread_checker_.CalledOnValidThread()); 51 DCHECK(thread_checker_.CalledOnValidThread());
55 52
56 if (ShouldProcessEvent(packet_event.type)) { 53 if (ShouldProcessEvent(packet_event.type, packet_event.media_type)) {
57 RtcpEvent rtcp_event; 54 RtcpEvent rtcp_event;
58 if (packet_event.type == kAudioPacketReceived || 55 if (packet_event.type == PACKET_RECEIVED) {
59 packet_event.type == kVideoPacketReceived) {
60 rtcp_event.type = packet_event.type; 56 rtcp_event.type = packet_event.type;
61 rtcp_event.timestamp = packet_event.timestamp; 57 rtcp_event.timestamp = packet_event.timestamp;
62 rtcp_event.packet_id = packet_event.packet_id; 58 rtcp_event.packet_id = packet_event.packet_id;
63 rtcp_events_.insert( 59 rtcp_events_.insert(
64 std::make_pair(packet_event.rtp_timestamp, rtcp_event)); 60 std::make_pair(packet_event.rtp_timestamp, rtcp_event));
65 } 61 }
66 } 62 }
67 63
68 TruncateMapIfNeeded(); 64 TruncateMapIfNeeded();
69 65
(...skipping 13 matching lines...) Expand all
83 // the smallest RTP timestamp. 79 // the smallest RTP timestamp.
84 if (rtcp_events_.size() > max_size_to_retain_) { 80 if (rtcp_events_.size() > max_size_to_retain_) {
85 DVLOG(3) << "RTCP event map exceeded size limit; " 81 DVLOG(3) << "RTCP event map exceeded size limit; "
86 << "removing oldest entry"; 82 << "removing oldest entry";
87 // This is fine since we only insert elements one at a time. 83 // This is fine since we only insert elements one at a time.
88 rtcp_events_.erase(rtcp_events_.begin()); 84 rtcp_events_.erase(rtcp_events_.begin());
89 } 85 }
90 } 86 }
91 87
92 bool ReceiverRtcpEventSubscriber::ShouldProcessEvent( 88 bool ReceiverRtcpEventSubscriber::ShouldProcessEvent(
93 CastLoggingEvent event_type) { 89 CastLoggingEvent event_type, EventMediaType event_media_type) {
94 if (type_ == kAudioEventSubscriber) { 90 return type_ == event_media_type &&
95 return event_type == kAudioPlayoutDelay || 91 (event_type == FRAME_ACK_SENT || event_type == FRAME_DECODED ||
96 event_type == kAudioFrameDecoded || event_type == kAudioAckSent || 92 event_type == FRAME_PLAYOUT || event_type == PACKET_RECEIVED);
97 event_type == kAudioPacketReceived;
98 } else if (type_ == kVideoEventSubscriber) {
99 return event_type == kVideoRenderDelay ||
100 event_type == kVideoFrameDecoded || event_type == kVideoAckSent ||
101 event_type == kVideoPacketReceived;
102 } else {
103 return false;
104 }
105 } 93 }
106 94
107 } // namespace cast 95 } // namespace cast
108 } // namespace media 96 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/receiver_rtcp_event_subscriber.h ('k') | media/cast/rtcp/receiver_rtcp_event_subscriber_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698