diff options
author | imcheng@chromium.org <imcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-07 19:08:57 +0000 |
---|---|---|
committer | imcheng@chromium.org <imcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-07 19:08:57 +0000 |
commit | 885e7200515b1e211188db537190f6ccc955971f (patch) | |
tree | 9dacbc02e097bb7c9049ec52997ea65d103b2567 /media | |
parent | 44abd66280e0ab0a0187c1de911e91f1670aadd1 (diff) | |
download | chromium_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.cc | 5 | ||||
-rw-r--r-- | media/cast/rtcp/rtcp_utility.cc | 4 | ||||
-rw-r--r-- | media/cast/rtcp/rtcp_utility.h | 5 |
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; }; |