// Currently only used for testing. In production, unregistration isn't needed // because leaving the registered extensions in `RtpTransport` is harmless // when a channel/transceiver is stopped or disconnected. The negotiated // extension IDs are typically stable for the lifetime of the transport, and // the transport itself will be destroyed when the PeerConnection is closed. void UnregisterRtpHeaderExtensionMap(absl::string_view mid) override;
// Used for identifying the MID for RtpDemuxer.
RtpHeaderExtensionMap header_extension_map_
RTC_GUARDED_BY(network_thread_checker_); // Stores the registered RTP header extensions by MID. // We use a std::vector to preserve the chronological registration order. // In BUNDLE scenarios, RFC 8843 requires consistent extension IDs across // all MIDs. If different MIDs request the same ID for different URIs, // we resolve the conflict by giving precedence to the most recently // registered MID. Preserving the insertion order allows // UnregisterRtpHeaderExtensionMap to correctly fall back to the newest // remaining registration when rebuilding the map.
std::vector<std::pair<std::string, RtpHeaderExtensions>>
header_extensions_by_mid_ RTC_GUARDED_BY(network_thread_checker_);
// Guard against recursive "ready to send" signals bool processing_ready_to_send_ = false;
RTC_NO_UNIQUE_ADDRESS SequenceChecker network_thread_checker_;
ScopedTaskSafety safety_;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.