summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorimcheng@chromium.org <imcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-07 19:08:57 +0000
committerimcheng@chromium.org <imcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-07 19:08:57 +0000
commit885e7200515b1e211188db537190f6ccc955971f (patch)
tree9dacbc02e097bb7c9049ec52997ea65d103b2567 /media
parent44abd66280e0ab0a0187c1de911e91f1670aadd1 (diff)
downloadchromium_src-885e7200515b1e211188db537190f6ccc955971f.zip
chromium_src-885e7200515b1e211188db537190f6ccc955971f.tar.gz
chromium_src-885e7200515b1e211188db537190f6ccc955971f.tar.bz2
Cast: Use signed delay delta in rtcp receiver log in rtcp_receiver.
It is possible for video render / audio playout delay to be negative. Even though it is written out as a uint16, it should be read back as a signed int16 in order to have accurate logging. Review URL: https://codereview.chromium.org/219533004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262173 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/cast/rtcp/rtcp_receiver.cc5
-rw-r--r--media/cast/rtcp/rtcp_utility.cc4
-rw-r--r--media/cast/rtcp/rtcp_utility.h5
3 files changed, 10 insertions, 4 deletions
diff --git a/media/cast/rtcp/rtcp_receiver.cc b/media/cast/rtcp/rtcp_receiver.cc
index 14873d7..7a76139ed 100644
--- a/media/cast/rtcp/rtcp_receiver.cc
+++ b/media/cast/rtcp/rtcp_receiver.cc
@@ -529,8 +529,9 @@ void RtcpReceiver::HandleApplicationSpecificCastReceiverEventLog(
event_log.type = event_type;
event_log.event_timestamp = event_timestamp;
event_log.delay_delta = base::TimeDelta::FromMilliseconds(
- rtcp_field.cast_receiver_log.delay_delta_or_packet_id);
- event_log.packet_id = rtcp_field.cast_receiver_log.delay_delta_or_packet_id;
+ rtcp_field.cast_receiver_log.delay_delta_or_packet_id.delay_delta);
+ event_log.packet_id =
+ rtcp_field.cast_receiver_log.delay_delta_or_packet_id.packet_id;
event_log_messages->push_back(event_log);
}
diff --git a/media/cast/rtcp/rtcp_utility.cc b/media/cast/rtcp/rtcp_utility.cc
index 61e5d74..fd86e8e 100644
--- a/media/cast/rtcp/rtcp_utility.cc
+++ b/media/cast/rtcp/rtcp_utility.cc
@@ -613,7 +613,9 @@ bool RtcpParser::ParseCastReceiverLogEventItem() {
field_.cast_receiver_log.event =
static_cast<uint8>(event_type_and_timestamp_delta >> 12);
- field_.cast_receiver_log.delay_delta_or_packet_id = delay_delta_or_packet_id;
+ // delay_delta is in union'ed with packet_id.
+ field_.cast_receiver_log.delay_delta_or_packet_id.packet_id =
+ delay_delta_or_packet_id;
field_.cast_receiver_log.event_timestamp_delta =
event_type_and_timestamp_delta & 0xfff;
diff --git a/media/cast/rtcp/rtcp_utility.h b/media/cast/rtcp/rtcp_utility.h
index e314a1a..8d6d00e 100644
--- a/media/cast/rtcp/rtcp_utility.h
+++ b/media/cast/rtcp/rtcp_utility.h
@@ -152,7 +152,10 @@ struct RtcpFieldApplicationSpecificCastReceiverLogItem {
uint32 rtp_timestamp;
uint32 event_timestamp_base;
uint8 event;
- uint16 delay_delta_or_packet_id;
+ union {
+ uint16 packet_id;
+ int16 delay_delta;
+ } delay_delta_or_packet_id;
uint16 event_timestamp_delta;
};