Restrict access to RtpTransceiver::senders_ and RtpTransceiver::receivers_ such that access to all elements except the first one is only possible via functions marked PLAN_B_ONLY. This aligns the implementation with Unified Plan requirements where only one sender and one receiver are used, while preserving legacy Plan B functionality.
pc/rtp_transceiver.h)senders() and receivers() with the PLAN_B_ONLY macro. This triggers deprecation warnings for any code accessing the full lists, making Plan B dependencies explicit.internal_first_sender() and internal_first_receiver() private helpers.nullptr) and will be used by Unified Plan paths.pc/rtp_transceiver.cc)senders_ or receivers_ (e.g., SetMediaChannels, GetStopSendingAndReceiving, GetDeleteChannelWorkerTask, OnNegotiationUpdate) must be updated:internal_first_... helpers to process only the primary element.RTC_ALLOW_PLAN_B_DEPRECATION_BEGIN and RTC_ALLOW_PLAN_B_DEPRECATION_END.senders_[0] or receivers_[0] are only used in Unified Plan paths (guarded by RTC_DCHECK(unified_plan_)).pc/legacy_stats_collector.ccpc/peer_connection.ccpc/rtc_stats_collector.ccpc/rtp_transmission_manager.ccRTC_ALLOW_PLAN_B_DEPRECATION_BEGIN/END to acknowledge the legacy dependency.WEBRTC_DEPRECATE_PLAN_B defined.pc_unittests and peerconnection_unittests to ensure no regression in both Unified Plan and Plan B modes.