Add nullability annotations to Call receive classes Add `absl_nonnull` and `absl_nullable` annotations to pointer arguments in constructors and methods across receive-related classes associated with `Call`. Bug: none Change-Id: Ia4546b4f1d8b8c038ebc5f2c1c43c85d5fc9278b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/473700 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47740}
diff --git a/audio/BUILD.gn b/audio/BUILD.gn index b43ea28..5b0cbed 100644 --- a/audio/BUILD.gn +++ b/audio/BUILD.gn
@@ -118,6 +118,7 @@ "../system_wrappers", "../system_wrappers:metrics", "utility:audio_frame_operations", + "//third_party/abseil-cpp/absl/base:nullability", "//third_party/abseil-cpp/absl/functional:any_invocable", "//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/strings",
diff --git a/audio/audio_receive_stream.cc b/audio/audio_receive_stream.cc index b5c0496..72c4ab9 100644 --- a/audio/audio_receive_stream.cc +++ b/audio/audio_receive_stream.cc
@@ -20,6 +20,7 @@ #include <utility> #include <vector> +#include "absl/base/nullability.h" #include "absl/strings/string_view.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_mixer.h" @@ -96,8 +97,8 @@ AudioReceiveStreamImpl::AudioReceiveStreamImpl( const Environment& env, - PacketRouter* packet_router, - NetEqFactory* neteq_factory, + PacketRouter* absl_nonnull packet_router, + NetEqFactory* absl_nullable neteq_factory, const AudioReceiveStreamInterface::Config& config, const scoped_refptr<AudioState>& audio_state) : AudioReceiveStreamImpl( @@ -110,10 +111,10 @@ AudioReceiveStreamImpl::AudioReceiveStreamImpl( const Environment& env, - PacketRouter* packet_router, + PacketRouter* absl_nonnull packet_router, const AudioReceiveStreamInterface::Config& config, const scoped_refptr<AudioState>& audio_state, - std::unique_ptr<voe::ChannelReceiveInterface> channel_receive) + absl_nonnull std::unique_ptr<voe::ChannelReceiveInterface> channel_receive) : env_(env), config_(config), audio_state_(audio_state),
diff --git a/audio/audio_receive_stream.h b/audio/audio_receive_stream.h index 1b9bd46..36aeaaa 100644 --- a/audio/audio_receive_stream.h +++ b/audio/audio_receive_stream.h
@@ -20,6 +20,7 @@ #include <string> #include <vector> +#include "absl/base/nullability.h" #include "absl/strings/string_view.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_mixer.h" @@ -57,17 +58,18 @@ public: AudioReceiveStreamImpl( const Environment& env, - PacketRouter* packet_router, - NetEqFactory* neteq_factory, + PacketRouter* absl_nonnull packet_router, + NetEqFactory* absl_nullable neteq_factory, const webrtc::AudioReceiveStreamInterface::Config& config, const scoped_refptr<webrtc::AudioState>& audio_state); // For unit tests, which need to supply a mock channel receive. AudioReceiveStreamImpl( const Environment& env, - PacketRouter* packet_router, + PacketRouter* absl_nonnull packet_router, const webrtc::AudioReceiveStreamInterface::Config& config, const scoped_refptr<webrtc::AudioState>& audio_state, - std::unique_ptr<voe::ChannelReceiveInterface> channel_receive); + absl_nonnull std::unique_ptr<voe::ChannelReceiveInterface> + channel_receive); AudioReceiveStreamImpl() = delete; AudioReceiveStreamImpl(const AudioReceiveStreamImpl&) = delete;
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc index 69810f2..01c961b 100644 --- a/audio/channel_receive.cc +++ b/audio/channel_receive.cc
@@ -22,6 +22,7 @@ #include <utility> #include <vector> +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "api/audio/audio_device.h" #include "api/audio/audio_mixer.h" @@ -142,11 +143,10 @@ class ChannelReceive : public ChannelReceiveInterface, public RtcpPacketTypeCounterObserver { public: - // Used for receive streams. ChannelReceive(const Environment& env, - NetEqFactory* neteq_factory, - AudioDeviceModule* audio_device_module, - Transport* rtcp_send_transport, + NetEqFactory* absl_nullable neteq_factory, + AudioDeviceModule* absl_nonnull audio_device_module, + Transport* absl_nonnull rtcp_send_transport, uint32_t remote_ssrc, size_t jitter_buffer_max_packets, bool jitter_buffer_fast_playout, @@ -574,9 +574,9 @@ ChannelReceive::ChannelReceive( const Environment& env, - NetEqFactory* neteq_factory, - AudioDeviceModule* audio_device_module, - Transport* rtcp_send_transport, + NetEqFactory* absl_nullable neteq_factory, + AudioDeviceModule* absl_nonnull audio_device_module, + Transport* absl_nonnull rtcp_send_transport, uint32_t remote_ssrc, size_t jitter_buffer_max_packets, bool jitter_buffer_fast_playout, @@ -1218,9 +1218,9 @@ std::unique_ptr<ChannelReceiveInterface> CreateChannelReceive( const Environment& env, - NetEqFactory* neteq_factory, - AudioDeviceModule* audio_device_module, - Transport* rtcp_send_transport, + NetEqFactory* absl_nullable neteq_factory, + AudioDeviceModule* absl_nonnull audio_device_module, + Transport* absl_nonnull rtcp_send_transport, uint32_t remote_ssrc, size_t jitter_buffer_max_packets, bool jitter_buffer_fast_playout,
diff --git a/audio/channel_receive.h b/audio/channel_receive.h index 0a1df9b..c4e5099 100644 --- a/audio/channel_receive.h +++ b/audio/channel_receive.h
@@ -19,6 +19,7 @@ #include <utility> #include <vector> +#include "absl/base/nullability.h" #include "api/audio/audio_frame.h" #include "api/audio/audio_mixer.h" #include "api/audio_codecs/audio_decoder_factory.h" @@ -172,9 +173,9 @@ std::unique_ptr<ChannelReceiveInterface> CreateChannelReceive( const Environment& env, - NetEqFactory* neteq_factory, - AudioDeviceModule* audio_device_module, - Transport* rtcp_send_transport, + NetEqFactory* absl_nullable neteq_factory, + AudioDeviceModule* absl_nonnull audio_device_module, + Transport* absl_nonnull rtcp_send_transport, uint32_t remote_ssrc, size_t jitter_buffer_max_packets, bool jitter_buffer_fast_playout,
diff --git a/audio/channel_receive_frame_transformer_delegate.cc b/audio/channel_receive_frame_transformer_delegate.cc index b2422d0..14240b0 100644 --- a/audio/channel_receive_frame_transformer_delegate.cc +++ b/audio/channel_receive_frame_transformer_delegate.cc
@@ -18,6 +18,7 @@ #include <string> #include <utility> +#include "absl/base/nullability.h" #include "api/frame_transformer_interface.h" #include "api/rtp_headers.h" #include "api/scoped_refptr.h" @@ -140,7 +141,7 @@ ChannelReceiveFrameTransformerDelegate::ChannelReceiveFrameTransformerDelegate( ReceiveFrameCallback receive_frame_callback, scoped_refptr<FrameTransformerInterface> frame_transformer, - TaskQueueBase* channel_receive_thread) + TaskQueueBase* absl_nonnull channel_receive_thread) : receive_frame_callback_(receive_frame_callback), frame_transformer_(std::move(frame_transformer)), channel_receive_thread_(channel_receive_thread) {}
diff --git a/audio/channel_receive_frame_transformer_delegate.h b/audio/channel_receive_frame_transformer_delegate.h index a0ba8fd..3165b0e 100644 --- a/audio/channel_receive_frame_transformer_delegate.h +++ b/audio/channel_receive_frame_transformer_delegate.h
@@ -17,6 +17,7 @@ #include <span> #include <string> +#include "absl/base/nullability.h" #include "api/frame_transformer_interface.h" #include "api/rtp_headers.h" #include "api/scoped_refptr.h" @@ -40,7 +41,7 @@ ChannelReceiveFrameTransformerDelegate( ReceiveFrameCallback receive_frame_callback, scoped_refptr<FrameTransformerInterface> frame_transformer, - TaskQueueBase* channel_receive_thread); + TaskQueueBase* absl_nonnull channel_receive_thread); // Registers `this` as callback for `frame_transformer_`, to get the // transformed frames.
diff --git a/audio/channel_receive_frame_transformer_delegate_unittest.cc b/audio/channel_receive_frame_transformer_delegate_unittest.cc index 986cddf..16e6792 100644 --- a/audio/channel_receive_frame_transformer_delegate_unittest.cc +++ b/audio/channel_receive_frame_transformer_delegate_unittest.cc
@@ -60,12 +60,13 @@ // Test that the delegate registers itself with the frame transformer on Init(). TEST(ChannelReceiveFrameTransformerDelegateTest, RegisterTransformedFrameCallbackOnInit) { + test::RunLoop main_thread; scoped_refptr<MockFrameTransformer> mock_frame_transformer = make_ref_counted<MockFrameTransformer>(); scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( ChannelReceiveFrameTransformerDelegate::ReceiveFrameCallback(), - mock_frame_transformer, nullptr); + mock_frame_transformer, main_thread.task_queue()); EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback); delegate->Init(); } @@ -74,12 +75,13 @@ // Reset(). TEST(ChannelReceiveFrameTransformerDelegateTest, UnregisterTransformedFrameCallbackOnReset) { + test::RunLoop main_thread; scoped_refptr<MockFrameTransformer> mock_frame_transformer = make_ref_counted<MockFrameTransformer>(); scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( ChannelReceiveFrameTransformerDelegate::ReceiveFrameCallback(), - mock_frame_transformer, nullptr); + mock_frame_transformer, main_thread.task_queue()); EXPECT_CALL(*mock_frame_transformer, UnregisterTransformedFrameCallback); delegate->Reset(); } @@ -94,7 +96,8 @@ MockChannelReceive mock_channel; scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( - mock_channel.callback(), mock_frame_transformer, Thread::Current()); + mock_channel.callback(), mock_frame_transformer, + main_thread.task_queue()); scoped_refptr<TransformedFrameCallback> callback; EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback) .WillOnce(SaveArg<0>(&callback)); @@ -125,7 +128,8 @@ MockChannelReceive mock_channel; scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( - mock_channel.callback(), mock_frame_transformer, Thread::Current()); + mock_channel.callback(), mock_frame_transformer, + main_thread.task_queue()); scoped_refptr<TransformedFrameCallback> callback; EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback) .WillOnce(SaveArg<0>(&callback)); @@ -160,7 +164,8 @@ MockChannelReceive mock_channel; scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( - mock_channel.callback(), mock_frame_transformer, Thread::Current()); + mock_channel.callback(), mock_frame_transformer, + main_thread.task_queue()); delegate->Reset(); EXPECT_CALL(mock_channel, ReceiveFrame).Times(0); @@ -176,7 +181,8 @@ MockChannelReceive mock_channel; scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( - mock_channel.callback(), mock_frame_transformer, Thread::Current()); + mock_channel.callback(), mock_frame_transformer, + main_thread.task_queue()); const uint8_t data[] = {1, 2, 3, 4}; std::span<const uint8_t> packet(data, sizeof(data)); RTPHeader header; @@ -200,7 +206,7 @@ scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( /*receive_frame_callback=*/nullptr, mock_frame_transformer, - Thread::Current()); + main_thread.task_queue()); scoped_refptr<TransformedFrameCallback> callback; EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback) .WillOnce(SaveArg<0>(&callback)); @@ -237,7 +243,7 @@ scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( /*receive_frame_callback=*/nullptr, mock_frame_transformer, - Thread::Current()); + main_thread.task_queue()); scoped_refptr<TransformedFrameCallback> callback; EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback) .WillOnce(SaveArg<0>(&callback)); @@ -275,7 +281,7 @@ scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( /*receive_frame_callback=*/nullptr, mock_frame_transformer, - Thread::Current()); + main_thread.task_queue()); scoped_refptr<TransformedFrameCallback> callback; EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback) .WillOnce(SaveArg<0>(&callback)); @@ -318,7 +324,7 @@ scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( /*receive_frame_callback=*/nullptr, mock_frame_transformer, - Thread::Current()); + main_thread.task_queue()); delegate->Init(); const uint8_t data[] = {1, 2, 3, 4}; std::span<const uint8_t> packet(data, sizeof(data)); @@ -353,7 +359,8 @@ MockChannelReceive mock_channel; scoped_refptr<ChannelReceiveFrameTransformerDelegate> delegate = make_ref_counted<ChannelReceiveFrameTransformerDelegate>( - mock_channel.callback(), mock_frame_transformer, Thread::Current()); + mock_channel.callback(), mock_frame_transformer, + main_thread.task_queue()); delegate->Init(); std::unique_ptr<MockTransformableAudioFrame> audio_frame =
diff --git a/call/BUILD.gn b/call/BUILD.gn index 000a5ca..3a9f3fd 100644 --- a/call/BUILD.gn +++ b/call/BUILD.gn
@@ -80,6 +80,7 @@ "../rtc_base/network:sent_packet", "../system_wrappers", "../video/config:encoder_config", + "//third_party/abseil-cpp/absl/base:nullability", "//third_party/abseil-cpp/absl/functional:any_invocable", "//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/strings:string_view", @@ -357,6 +358,7 @@ "../video:decode_synchronizer", "../video/config:encoder_config", "adaptation:resource_adaptation", + "//third_party/abseil-cpp/absl/base:nullability", "//third_party/abseil-cpp/absl/functional:bind_front", "//third_party/abseil-cpp/absl/strings:string_view", ]
diff --git a/call/call.cc b/call/call.cc index e8bd43a..15b8d57 100644 --- a/call/call.cc +++ b/call/call.cc
@@ -23,6 +23,7 @@ #include <utility> #include <vector> +#include "absl/base/nullability.h" #include "absl/functional/bind_front.h" #include "absl/strings/string_view.h" #include "api/adaptation/resource.h" @@ -290,10 +291,10 @@ void DeliverRtcpPacket(CopyOnWriteBuffer packet) override; - void DeliverRtpPacket( - MediaType media_type, - RtpPacketReceived packet, - OnUndemuxablePacketHandler undemuxable_packet_handler) override; + void DeliverRtpPacket(MediaType media_type, + RtpPacketReceived packet, + absl_nonnull OnUndemuxablePacketHandler + undemuxable_packet_handler) override; void SignalChannelNetworkState(MediaType media, NetworkState state) override; @@ -1420,10 +1421,10 @@ } } -void Call::DeliverRtpPacket( - MediaType media_type, - RtpPacketReceived packet, - OnUndemuxablePacketHandler undemuxable_packet_handler) { +void Call::DeliverRtpPacket(MediaType media_type, + RtpPacketReceived packet, + absl_nonnull OnUndemuxablePacketHandler + undemuxable_packet_handler) { RTC_DCHECK_RUN_ON(network_thread_); if (receive_time_calculator_) {
diff --git a/call/packet_receiver.h b/call/packet_receiver.h index a1b5f66..ed63742 100644 --- a/call/packet_receiver.h +++ b/call/packet_receiver.h
@@ -10,6 +10,7 @@ #ifndef CALL_PACKET_RECEIVER_H_ #define CALL_PACKET_RECEIVER_H_ +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "api/media_types.h" #include "modules/rtp_rtcp/source/rtp_packet_received.h" @@ -30,10 +31,10 @@ // Can be called on the network thread or the worker thread. // If `media_type` is not Audio or Video, packets may be used for BWE // calculations but are not demuxed. - virtual void DeliverRtpPacket( - MediaType media_type, - RtpPacketReceived packet, - OnUndemuxablePacketHandler undemuxable_packet_handler) = 0; + virtual void DeliverRtpPacket(MediaType media_type, + RtpPacketReceived packet, + absl_nonnull OnUndemuxablePacketHandler + undemuxable_packet_handler) = 0; protected: virtual ~PacketReceiver() {}
diff --git a/media/BUILD.gn b/media/BUILD.gn index a8e0165..871fd49 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn
@@ -670,6 +670,7 @@ "../video/config:encoder_config", "//third_party/abseil-cpp/absl/algorithm", "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/base:nullability", "//third_party/abseil-cpp/absl/functional:any_invocable", "//third_party/abseil-cpp/absl/functional:bind_front", "//third_party/abseil-cpp/absl/strings",
diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index 640ca8d..08c9253 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc
@@ -26,6 +26,7 @@ #include <vector> #include "absl/algorithm/container.h" +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "absl/functional/bind_front.h" #include "absl/strings/match.h" @@ -2843,11 +2844,11 @@ // ------------------------ WebRtcVideoReceiveChannel --------------------- WebRtcVideoReceiveChannel::WebRtcVideoReceiveChannel( const Environment& env, - Call* call, + Call* absl_nonnull call, const MediaConfig& config, const VideoOptions& options, const CryptoOptions& crypto_options, - VideoDecoderFactory* decoder_factory) + VideoDecoderFactory* absl_nonnull decoder_factory) : MediaChannelUtil(call->network_thread(), config.enable_dscp), env_(env), network_thread_safety_(PendingTaskSafetyFlag::CreateAttachedToTaskQueue(
diff --git a/media/engine/webrtc_video_engine.h b/media/engine/webrtc_video_engine.h index 4eebf39..d86596d4 100644 --- a/media/engine/webrtc_video_engine.h +++ b/media/engine/webrtc_video_engine.h
@@ -23,6 +23,7 @@ #include <utility> #include <vector> +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "absl/strings/string_view.h" #include "api/crypto/crypto_options.h" @@ -508,11 +509,11 @@ public VideoMediaReceiveChannelInterface { public: WebRtcVideoReceiveChannel(const Environment& env, - Call* call, + Call* absl_nonnull call, const MediaConfig& config, const VideoOptions& options, const CryptoOptions& crypto_options, - VideoDecoderFactory* decoder_factory); + VideoDecoderFactory* absl_nonnull decoder_factory); ~WebRtcVideoReceiveChannel() override; public:
diff --git a/media/engine/webrtc_voice_engine.cc b/media/engine/webrtc_voice_engine.cc index 3629b4d..e2c7838 100644 --- a/media/engine/webrtc_voice_engine.cc +++ b/media/engine/webrtc_voice_engine.cc
@@ -27,6 +27,7 @@ #include "absl/algorithm/algorithm.h" #include "absl/algorithm/container.h" +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "absl/functional/bind_front.h" #include "absl/strings/match.h" @@ -2150,11 +2151,11 @@ WebRtcVoiceReceiveChannel::WebRtcVoiceReceiveChannel( const Environment& env, - WebRtcVoiceEngine* engine, + WebRtcVoiceEngine* absl_nonnull engine, const MediaConfig& config, const AudioOptions& options, const CryptoOptions& crypto_options, - Call* call) + Call* absl_nonnull call) : MediaChannelUtil(call->network_thread(), config.enable_dscp), env_(env), worker_thread_(call->worker_thread()),
diff --git a/media/engine/webrtc_voice_engine.h b/media/engine/webrtc_voice_engine.h index 8e2cd90..0cba300 100644 --- a/media/engine/webrtc_voice_engine.h +++ b/media/engine/webrtc_voice_engine.h
@@ -21,6 +21,7 @@ #include <string> #include <vector> +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "absl/strings/string_view.h" #include "api/audio/audio_device.h" @@ -310,11 +311,11 @@ public VoiceMediaReceiveChannelInterface { public: WebRtcVoiceReceiveChannel(const Environment& env, - WebRtcVoiceEngine* engine, + WebRtcVoiceEngine* absl_nonnull engine, const MediaConfig& config, const AudioOptions& options, const CryptoOptions& crypto_options, - Call* call); + Call* absl_nonnull call); WebRtcVoiceReceiveChannel() = delete; WebRtcVoiceReceiveChannel(const WebRtcVoiceReceiveChannel&) = delete;
diff --git a/pc/BUILD.gn b/pc/BUILD.gn index a8e98f9..faa8cb5 100644 --- a/pc/BUILD.gn +++ b/pc/BUILD.gn
@@ -103,6 +103,7 @@ "../rtc_base/containers:flat_set", "../rtc_base/network:sent_packet", "//third_party/abseil-cpp/absl/algorithm:container", + "//third_party/abseil-cpp/absl/base:nullability", "//third_party/abseil-cpp/absl/cleanup", "//third_party/abseil-cpp/absl/functional:any_invocable", "//third_party/abseil-cpp/absl/strings:str_format",
diff --git a/pc/channel.cc b/pc/channel.cc index d1d7f01..26af6a7 100644 --- a/pc/channel.cc +++ b/pc/channel.cc
@@ -19,6 +19,7 @@ #include <vector> #include "absl/algorithm/container.h" +#include "absl/base/nullability.h" #include "absl/cleanup/cleanup.h" #include "absl/functional/any_invocable.h" #include "absl/strings/string_view.h" @@ -171,16 +172,16 @@ } // namespace BaseChannel::BaseChannel( - TaskQueueBase* worker_thread, - Thread* network_thread, - TaskQueueBase* signaling_thread, + TaskQueueBase* absl_nonnull worker_thread, + Thread* absl_nonnull network_thread, + TaskQueueBase* absl_nonnull signaling_thread, std::unique_ptr<MediaSendChannelInterface> send_media_channel_impl, std::unique_ptr<MediaReceiveChannelInterface> receive_media_channel_impl, absl::string_view mid, MediaType media_type, bool srtp_required, CryptoOptions crypto_options, - UniqueRandomIdGenerator* ssrc_generator, + UniqueRandomIdGenerator* absl_nonnull ssrc_generator, ChannelCallbacks callbacks) : media_send_channel_(std::move(send_media_channel_impl)), media_receive_channel_(std::move(receive_media_channel_impl)),
diff --git a/pc/channel.h b/pc/channel.h index f3d5815..2516dcf 100644 --- a/pc/channel.h +++ b/pc/channel.h
@@ -20,6 +20,7 @@ #include <variant> #include <vector> +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "absl/strings/string_view.h" #include "api/crypto/crypto_options.h" @@ -78,16 +79,16 @@ // Constructor for use when the MediaChannels are split BaseChannel( - TaskQueueBase* worker_thread, - Thread* network_thread, - TaskQueueBase* signaling_thread, + TaskQueueBase* absl_nonnull worker_thread, + Thread* absl_nonnull network_thread, + TaskQueueBase* absl_nonnull signaling_thread, std::unique_ptr<MediaSendChannelInterface> media_send_channel, std::unique_ptr<MediaReceiveChannelInterface> media_receive_channel, absl::string_view mid, MediaType media_type, bool srtp_required, CryptoOptions crypto_options, - UniqueRandomIdGenerator* ssrc_generator, + UniqueRandomIdGenerator* absl_nonnull ssrc_generator, ChannelCallbacks callbacks = {}); ~BaseChannel() override;