| Index: webrtc/video/rtp_video_stream_receiver.cc | 
| diff --git a/webrtc/video/rtp_video_stream_receiver.cc b/webrtc/video/rtp_video_stream_receiver.cc | 
| index 1dbd86988d30df5d655be795b23e6bcefba4f54f..ba1df4a439ac6e7dda6611eba7da13d0091a3924 100644 | 
| --- a/webrtc/video/rtp_video_stream_receiver.cc | 
| +++ b/webrtc/video/rtp_video_stream_receiver.cc | 
| @@ -98,7 +98,7 @@ RtpVideoStreamReceiver::RtpVideoStreamReceiver( | 
| packet_router_(packet_router), | 
| process_thread_(process_thread), | 
| ntp_estimator_(clock_), | 
| -      rtp_header_parser_(RtpHeaderParser::Create()), | 
| +      rtp_header_extensions_(config_.rtp.extensions), | 
| rtp_receiver_(RtpReceiver::CreateVideoReceiver(clock_, | 
| this, | 
| this, | 
| @@ -134,11 +134,6 @@ RtpVideoStreamReceiver::RtpVideoStreamReceiver( | 
| rtp_rtcp_->SetRemoteSSRC(config_.rtp.remote_ssrc); | 
| rtp_rtcp_->SetKeyFrameRequestMethod(kKeyFrameReqPliRtcp); | 
|  | 
| -  for (size_t i = 0; i < config_.rtp.extensions.size(); ++i) { | 
| -    EnableReceiveRtpHeaderExtension(config_.rtp.extensions[i].uri, | 
| -                                    config_.rtp.extensions[i].id); | 
| -  } | 
| - | 
| static const int kMaxPacketAgeToNack = 450; | 
| const int max_reordering_threshold = (config_.rtp.nack.rtp_history_ms > 0) | 
| ? kMaxPacketAgeToNack | 
| @@ -281,11 +276,14 @@ int32_t RtpVideoStreamReceiver::OnReceivedPayloadData( | 
| // for callbacks from |ulpfec_receiver_|. | 
| void RtpVideoStreamReceiver::OnRecoveredPacket(const uint8_t* rtp_packet, | 
| size_t rtp_packet_length) { | 
| -  RTPHeader header; | 
| -  if (!rtp_header_parser_->Parse(rtp_packet, rtp_packet_length, &header)) { | 
| +  RtpPacketReceived packet; | 
| +  if (!packet.Parse(rtp_packet, rtp_packet_length)) | 
| return; | 
| -  } | 
| -  header.payload_type_frequency = kVideoPayloadTypeFrequency; | 
| +  packet.IdentifyExtensions(rtp_header_extensions_); | 
| +  packet.set_payload_type_frequency(kVideoPayloadTypeFrequency); | 
| + | 
| +  RTPHeader header; | 
| +  packet.GetHeader(&header); | 
| bool in_order = IsPacketInOrder(header); | 
| ReceivePacket(rtp_packet, rtp_packet_length, header, in_order); | 
| } | 
| @@ -649,16 +647,6 @@ void RtpVideoStreamReceiver::UpdateHistograms() { | 
| } | 
| } | 
|  | 
| -void RtpVideoStreamReceiver::EnableReceiveRtpHeaderExtension( | 
| -    const std::string& extension, int id) { | 
| -  // One-byte-extension local identifiers are in the range 1-14 inclusive. | 
| -  RTC_DCHECK_GE(id, 1); | 
| -  RTC_DCHECK_LE(id, 14); | 
| -  RTC_DCHECK(RtpExtension::IsSupportedForVideo(extension)); | 
| -  RTC_CHECK(rtp_header_parser_->RegisterRtpHeaderExtension( | 
| -      StringToRtpExtensionType(extension), id)); | 
| -} | 
| - | 
| void RtpVideoStreamReceiver::InsertSpsPpsIntoTracker(uint8_t payload_type) { | 
| auto codec_params_it = pt_codec_params_.find(payload_type); | 
| if (codec_params_it == pt_codec_params_.end()) | 
|  |