Separate reading remote_ssrc from using the rtp_config() getter.
`remote_ssrc` can be considered const while some other state represented
by rtp_config() can not and also is tied to a specific thread.
Separating access to these variables, makes moving things around easier.
Bug: webrtc:11993
Change-Id: I70aa000daab6174a401e01dca163213174e8f284
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261316
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36818}
diff --git a/call/flexfec_receive_stream_impl.h b/call/flexfec_receive_stream_impl.h
index c2407cd..c640ac6 100644
--- a/call/flexfec_receive_stream_impl.h
+++ b/call/flexfec_receive_stream_impl.h
@@ -61,12 +61,15 @@
// ReceiveStream impl.
void SetRtpExtensions(std::vector<RtpExtension> extensions) override;
const RtpConfig& rtp_config() const override { return config_.rtp; }
+ uint32_t remote_ssrc() const { return config_.rtp.remote_ssrc; }
private:
RTC_NO_UNIQUE_ADDRESS SequenceChecker packet_sequence_checker_;
- // Config. Mostly const, header extensions may change.
- Config config_ RTC_GUARDED_BY(packet_sequence_checker_);
+ // Config. Mostly const, header extensions may change, which is an exception
+ // case that's specifically handled in `SetRtpExtensions`, which must be
+ // called on the `packet_sequence_checker` thread.
+ const Config config_;
// Erasure code interfacing.
const std::unique_ptr<FlexfecReceiver> receiver_;