modules/rtp_rtcp/source/rtcp_utility.cc
bool RTCPUtility::RTCPParserV2::ParseXrReceiverReferenceTimeItem(
    int block_length_4bytes) {
  const int kBlockLengthIn4Bytes = 2;
  const int kBlockLengthInBytes = kBlockLengthIn4Bytes * 4;
  const ptrdiff_t length = _ptrRTCPBlockEnd - _ptrRTCPData;
  if (block_length_4bytes != kBlockLengthIn4Bytes ||
      length < kBlockLengthInBytes) {
    _state = ParseState::State_TopLevel;
    EndCurrentBlock();
    return false;
  }

  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant = *_ptrRTCPData++<<24;
  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant+= *_ptrRTCPData++<<16;
  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant+= *_ptrRTCPData++<<8;
  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant+= *_ptrRTCPData++;

  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant = *_ptrRTCPData++<<24;
  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant+= *_ptrRTCPData++<<16;
  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant+= *_ptrRTCPData++<<8;
  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant+= *_ptrRTCPData++;

  _packetType = RTCPPacketTypes::kXrReceiverReferenceTime;
  _state = ParseState::State_XRItem;
  return true;
}
/*  Receiver Reference Time Report Block.
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     BT=4      |   reserved    |       block length = 2        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              NTP timestamp, most significant word             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             NTP timestamp, least significant word             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/
Receiver Reference Time Report Block.
Receiver Reference Time Report Block .
bool RTCPUtility::RTCPParserV2::ParseXrReceiverReferenceTimeItem(
    int block_length_4bytes) {
  const int kBlockLengthIn4Bytes = 2;
  const int kBlockLengthInBytes = kBlockLengthIn4Bytes * 4;
  const ptrdiff_t length = _ptrRTCPBlockEnd - _ptrRTCPData;
  if (block_length_4bytes != kBlockLengthIn4Bytes ||
      length < kBlockLengthInBytes) {
    _state = ParseState::State_TopLevel;
    EndCurrentBlock();
    return false;
  }
  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant = *_ptrRTCPData++<<24;
  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant+= *_ptrRTCPData++<<16;
  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant+= *_ptrRTCPData++<<8;
  _packet.XRReceiverReferenceTimeItem.NTPMostSignificant+= *_ptrRTCPData++;
  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant = *_ptrRTCPData++<<24;
  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant+= *_ptrRTCPData++<<16;
  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant+= *_ptrRTCPData++<<8;
  _packet.XRReceiverReferenceTimeItem.NTPLeastSignificant+= *_ptrRTCPData++;
  _packetType = RTCPPacketTypes::kXrReceiverReferenceTime;
  _state = ParseState::State_XRItem;
  return true;
}
bool RTCPUtility :: RTCPParserV2 :: ParseXrReceiverReferenceTimeItem ( int block_length_4bytes ) { const int kBlockLengthIn4Bytes = 2 ; const int kBlockLengthInBytes = kBlockLengthIn4Bytes * 4 ; const ptrdiff_t length = _ptrRTCPBlockEnd - _ptrRTCPData ; if ( block_length_4bytes != kBlockLengthIn4Bytes || length < kBlockLengthInBytes ) { _state = ParseState :: State_TopLevel ; EndCurrentBlock ( ) ; return false ; } _packet . XRReceiverReferenceTimeItem . NTPMostSignificant = * _ptrRTCPData ++ << 24 ; _packet . XRReceiverReferenceTimeItem . NTPMostSignificant += * _ptrRTCPData ++ << 16 ; _packet . XRReceiverReferenceTimeItem . NTPMostSignificant += * _ptrRTCPData ++ << 8 ; _packet . XRReceiverReferenceTimeItem . NTPMostSignificant += * _ptrRTCPData ++ ; _packet . XRReceiverReferenceTimeItem . NTPLeastSignificant = * _ptrRTCPData ++ << 24 ; _packet . XRReceiverReferenceTimeItem . NTPLeastSignificant += * _ptrRTCPData ++ << 16 ; _packet . XRReceiverReferenceTimeItem . NTPLeastSignificant += * _ptrRTCPData ++ << 8 ; _packet . XRReceiverReferenceTimeItem . NTPLeastSignificant += * _ptrRTCPData ++ ; _packetType = RTCPPacketTypes :: kXrReceiverReferenceTime ; _state = ParseState :: State_XRItem ; return true ; }
Receiver Reference Time Report Block.
Receiver Reference Time Report Block .