Make RTX pt/apt reconfigurable by calling WebRtcVideoChannel2::SetRecvParameters.
Prior to this CL, received RTX (associated) payload types were only configured when WebRtcVideoChannel2::AddRecvStream was called. In the same method, the RTX SSRC was set up. After this CL, the RTX (associated) payload types are set in WebRtcVideoChannel2::SetRecvParameters, which is the appropriate place to set them. The RTX SSRC is still set in WebRtcVideoChannel2::AddRecvStream, since that is the code path that sets other SSRCs. As part of this fix, the VideoReceiveStream::Config::Rtp struct is changed. We remove the possibility for each video payload type to have an associated specific RTX SSRC. Although the config previously allowed for this, all payload types always had the same RTX SSRC set, and the underlying RtpPayloadRegistry did not support multiple SSRCs. This change to the config struct should thus not have any functional impact. The change does however affect the RtcEventLog, since that is used for storing the VideoReceiveStream::Configs. For simplicity, this CL does not change the event log proto definitions, instead duplicating the serialized RTX SSRCs such that they fit in the existing proto definition. BUG=webrtc:7011 Review-Url: https://codereview.webrtc.org/2646073004 Cr-Commit-Position: refs/heads/master@{#16302}
This commit is contained in:
@ -311,13 +311,11 @@ EventLogAnalyzer::EventLogAnalyzer(const ParsedRtcEventLog& log)
|
||||
StreamId stream(config.rtp.remote_ssrc, kIncomingPacket);
|
||||
extension_maps[stream] = RtpHeaderExtensionMap(config.rtp.extensions);
|
||||
video_ssrcs_.insert(stream);
|
||||
for (auto kv : config.rtp.rtx) {
|
||||
StreamId rtx_stream(kv.second.ssrc, kIncomingPacket);
|
||||
extension_maps[rtx_stream] =
|
||||
RtpHeaderExtensionMap(config.rtp.extensions);
|
||||
video_ssrcs_.insert(rtx_stream);
|
||||
rtx_ssrcs_.insert(rtx_stream);
|
||||
}
|
||||
StreamId rtx_stream(config.rtp.rtx_ssrc, kIncomingPacket);
|
||||
extension_maps[rtx_stream] =
|
||||
RtpHeaderExtensionMap(config.rtp.extensions);
|
||||
video_ssrcs_.insert(rtx_stream);
|
||||
rtx_ssrcs_.insert(rtx_stream);
|
||||
break;
|
||||
}
|
||||
case ParsedRtcEventLog::VIDEO_SENDER_CONFIG_EVENT: {
|
||||
|
Reference in New Issue
Block a user