diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc index 2d82bcf78c..169aeb4700 100644 --- a/video/rtp_video_stream_receiver2.cc +++ b/video/rtp_video_stream_receiver2.cc @@ -1047,6 +1047,7 @@ void RtpVideoStreamReceiver2::SetProtectionPayloadTypes( RTC_DCHECK_RUN_ON(&packet_sequence_checker_); RTC_DCHECK(red_payload_type >= -1 && red_payload_type < 0x80); RTC_DCHECK(ulpfec_payload_type >= -1 && ulpfec_payload_type < 0x80); + red_payload_type_ = red_payload_type; ulpfec_receiver_ = MaybeConstructUlpfecReceiver( config_.rtp.remote_ssrc, red_payload_type, ulpfec_payload_type, config_.rtp.extensions, this, clock_); diff --git a/video/rtp_video_stream_receiver2_unittest.cc b/video/rtp_video_stream_receiver2_unittest.cc index 325188e93c..2ffe4788a1 100644 --- a/video/rtp_video_stream_receiver2_unittest.cc +++ b/video/rtp_video_stream_receiver2_unittest.cc @@ -371,6 +371,16 @@ TEST_F(RtpVideoStreamReceiver2Test, GenericKeyFrame) { video_header); } +TEST_F(RtpVideoStreamReceiver2Test, SetProtectionPayloadTypes) { + EXPECT_NE(rtp_video_stream_receiver_->red_payload_type(), 104); + EXPECT_NE(rtp_video_stream_receiver_->ulpfec_payload_type(), 107); + + rtp_video_stream_receiver_->SetProtectionPayloadTypes(104, 107); + + EXPECT_EQ(rtp_video_stream_receiver_->red_payload_type(), 104); + EXPECT_EQ(rtp_video_stream_receiver_->ulpfec_payload_type(), 107); +} + TEST_F(RtpVideoStreamReceiver2Test, PacketInfoIsPropagatedIntoVideoFrames) { constexpr uint64_t kAbsoluteCaptureTimestamp = 12; constexpr int kId0 = 1;