diff options
author | Tommi <tommi@webrtc.org> | 2022-05-13 09:02:50 +0000 |
---|---|---|
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-05-13 10:08:54 +0000 |
commit | 16a8b25d809e4d4982f9fc4b4e973acd506b8bca (patch) | |
tree | 7b89fe86ca7bb914da85fd897a21f34441bfd11b /call/call.cc | |
parent | d97af7b1b9fd05509cec0e788aad283360c5babc (diff) | |
download | webrtc-16a8b25d809e4d4982f9fc4b4e973acd506b8bca.tar.gz |
Update local_ssrc without needing to recreate video streams.
This is comparable to this change done previously for for audio streams:
https://webrtc-review.googlesource.com/c/src/+/222042
Bug: webrtc:11993
Change-Id: Ic953f816a8f7c56d1c3dc9a16d85bef3696a663d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261960
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36876}
Diffstat (limited to 'call/call.cc')
-rw-r--r-- | call/call.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/call/call.cc b/call/call.cc index ed5ee1bc18..fe2dbb628b 100644 --- a/call/call.cc +++ b/call/call.cc @@ -266,6 +266,10 @@ class Call final : public webrtc::Call, void OnLocalSsrcUpdated(webrtc::AudioReceiveStream& stream, uint32_t local_ssrc) override; + void OnLocalSsrcUpdated(VideoReceiveStream& stream, + uint32_t local_ssrc) override; + void OnLocalSsrcUpdated(FlexfecReceiveStream& stream, + uint32_t local_ssrc) override; void OnUpdateSyncGroup(webrtc::AudioReceiveStream& stream, const std::string& sync_group) override; @@ -415,6 +419,8 @@ class Call final : public webrtc::Call, RTC_GUARDED_BY(&receive_11993_checker_); // Audio and Video send streams are owned by the client that creates them. + // TODO(bugs.webrtc.org/11993): `audio_send_ssrcs_` and `video_send_ssrcs_` + // should be accessed on the network thread. std::map<uint32_t, AudioSendStream*> audio_send_ssrcs_ RTC_GUARDED_BY(worker_thread_); std::map<uint32_t, VideoSendStream*> video_send_ssrcs_ @@ -1386,6 +1392,17 @@ void Call::OnLocalSsrcUpdated(webrtc::AudioReceiveStream& stream, : nullptr); } +void Call::OnLocalSsrcUpdated(VideoReceiveStream& stream, uint32_t local_ssrc) { + RTC_DCHECK_RUN_ON(worker_thread_); + static_cast<VideoReceiveStream2&>(stream).SetLocalSsrc(local_ssrc); +} + +void Call::OnLocalSsrcUpdated(FlexfecReceiveStream& stream, + uint32_t local_ssrc) { + RTC_DCHECK_RUN_ON(worker_thread_); + static_cast<FlexfecReceiveStreamImpl&>(stream).SetLocalSsrc(local_ssrc); +} + void Call::OnUpdateSyncGroup(webrtc::AudioReceiveStream& stream, const std::string& sync_group) { RTC_DCHECK_RUN_ON(worker_thread_); |