Bug 1766646 - Vendor libwebrtc from 7a15ff3f14

Upstream commit: https://webrtc.googlesource.com/src/+/7a15ff3f1412fc640bb92c8aab511640a4513bbe
    Add a transport_cc() getter and remove rtp_config().

    Bug: webrtc:11993
    Change-Id: Ie435a702c91b4d3827e528083f474e378fc75cc5
    Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261318
    Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
    Reviewed-by: Niels Moller <nisse@webrtc.org>
    Cr-Commit-Position: refs/heads/main@{#36822}
This commit is contained in:
Michael Froman 2022-07-14 17:32:42 -05:00 коммит произвёл Connor Sheehan
Родитель 98be31b73c
Коммит 2dfb4376ae
12 изменённых файлов: 33 добавлений и 25 удалений

3
third_party/libwebrtc/README.moz-ff-commit поставляемый
Просмотреть файл

@ -14004,3 +14004,6 @@ cb7c7366d0
# MOZ_LIBWEBRTC_SRC=/home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwebrtc-checkout/src MOZ_LIBWEBRTC_COMMIT=mjfdev bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh
# base of lastest vendoring
cc001e2d2a
# MOZ_LIBWEBRTC_SRC=/home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwebrtc-checkout/src MOZ_LIBWEBRTC_COMMIT=mjfdev bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh
# base of lastest vendoring
7a15ff3f14

2
third_party/libwebrtc/README.mozilla поставляемый
Просмотреть файл

@ -9348,3 +9348,5 @@ libwebrtc updated from /home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwe
libwebrtc updated from /home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwebrtc-checkout/src commit mjfdev on 2022-07-14T22:08:48.892943.
# python3 vendor-libwebrtc.py --from-local /home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwebrtc-checkout/src --commit mjfdev libwebrtc
libwebrtc updated from /home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwebrtc-checkout/src commit mjfdev on 2022-07-14T22:31:57.810733.
# python3 vendor-libwebrtc.py --from-local /home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwebrtc-checkout/src --commit mjfdev libwebrtc
libwebrtc updated from /home/mfroman/git-checkouts/trial-webrtc-builds/moz-libwebrtc-checkout/src commit mjfdev on 2022-07-14T22:32:37.214682.

Просмотреть файл

@ -213,6 +213,11 @@ void AudioReceiveStream::Stop() {
audio_state()->RemoveReceivingStream(this);
}
bool AudioReceiveStream::transport_cc() const {
RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
return config_.rtp.transport_cc;
}
bool AudioReceiveStream::IsRunning() const {
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
return playing_;

Просмотреть файл

@ -83,7 +83,7 @@ class AudioReceiveStream final : public webrtc::AudioReceiveStream,
// webrtc::AudioReceiveStream implementation.
void Start() override;
void Stop() override;
const RtpConfig& rtp_config() const override { return config_.rtp; }
bool transport_cc() const override;
bool IsRunning() const override;
void SetDepacketizerToDecoderFrameTransformer(
rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer)

Просмотреть файл

@ -109,7 +109,7 @@ class AudioReceiveStream : public MediaReceiveStream {
std::string ToString() const;
// Receive-stream specific RTP settings.
struct Rtp : public RtpConfig {
struct Rtp : public ReceiveStreamRtpConfig {
Rtp();
~Rtp();

2
third_party/libwebrtc/call/call.cc поставляемый
Просмотреть файл

@ -80,7 +80,7 @@ bool SendPeriodicFeedback(const std::vector<RtpExtension>& extensions) {
}
bool UseSendSideBwe(const ReceiveStream* stream) {
if (!stream->rtp_config().transport_cc)
if (!stream->transport_cc())
return false;
for (const auto& extension : stream->GetRtpExtensions()) {
if (extension.uri == RtpExtension::kTransportSequenceNumberUri ||

Просмотреть файл

@ -50,7 +50,7 @@ class FlexfecReceiveStream : public RtpPacketSinkInterface,
// Payload type for FlexFEC.
int payload_type = -1;
RtpConfig rtp;
ReceiveStreamRtpConfig rtp;
// Vector containing a single element, corresponding to the SSRC of the
// media stream being protected by this FlexFEC stream. The vector MUST have

Просмотреть файл

@ -61,8 +61,11 @@ class FlexfecReceiveStreamImpl : public FlexfecReceiveStream {
// ReceiveStream impl.
void SetRtpExtensions(std::vector<RtpExtension> extensions) override;
const std::vector<RtpExtension>& GetRtpExtensions() const override;
const RtpConfig& rtp_config() const override { return config_.rtp; }
uint32_t remote_ssrc() const { return config_.rtp.remote_ssrc; }
bool transport_cc() const override {
RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
return config_.rtp.transport_cc;
}
private:
RTC_NO_UNIQUE_ADDRESS SequenceChecker packet_sequence_checker_;

16
third_party/libwebrtc/call/receive_stream.h поставляемый
Просмотреть файл

@ -26,7 +26,9 @@ namespace webrtc {
class ReceiveStream {
public:
// Receive-stream specific RTP settings.
struct RtpConfig {
// TODO(tommi): This struct isn't needed at this level anymore. Move it closer
// to where it's used.
struct ReceiveStreamRtpConfig {
// Synchronization source (stream identifier) to be received.
// This member will not change mid-stream and can be assumed to be const
// post initialization.
@ -60,11 +62,13 @@ class ReceiveStream {
// TODO(tommi): Consider using `RtpHeaderExtensionMap` instead.
virtual const std::vector<RtpExtension>& GetRtpExtensions() const = 0;
// Called on the packet delivery thread since some members of the config may
// change mid-stream (e.g. the local ssrc). All mutation must also happen on
// the packet delivery thread. Return value can be assumed to
// only be used in the calling context (on the stack basically).
virtual const RtpConfig& rtp_config() const = 0;
// Returns a bool for whether feedback for send side bandwidth estimation is
// enabled. See
// https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions
// for details.
// This value may change mid-stream and must be done on the same thread
// that the value is read on (i.e. packet delivery).
virtual bool transport_cc() const = 0;
protected:
virtual ~ReceiveStream() {}

Просмотреть файл

@ -183,7 +183,7 @@ class VideoReceiveStream : public MediaReceiveStream {
VideoDecoderFactory* decoder_factory = nullptr;
// Receive-stream specific RTP settings.
struct Rtp : public RtpConfig {
struct Rtp : public ReceiveStreamRtpConfig {
Rtp();
Rtp(const Rtp&);
~Rtp();

Просмотреть файл

@ -110,9 +110,7 @@ class FakeAudioReceiveStream final : public webrtc::AudioReceiveStream {
}
private:
const webrtc::ReceiveStream::RtpConfig& rtp_config() const override {
return config_.rtp;
}
bool transport_cc() const override { return config_.rtp.transport_cc; }
uint32_t remote_ssrc() const override { return config_.rtp.remote_ssrc; }
void Start() override { started_ = true; }
void Stop() override { started_ = false; }
@ -268,10 +266,7 @@ class FakeVideoReceiveStream final : public webrtc::VideoReceiveStream {
// webrtc::VideoReceiveStream implementation.
void SetRtpExtensions(std::vector<webrtc::RtpExtension> extensions) override;
const std::vector<webrtc::RtpExtension>& GetRtpExtensions() const override;
const webrtc::ReceiveStream::RtpConfig& rtp_config() const override {
return config_.rtp;
}
bool transport_cc() const override { return config_.rtp.transport_cc; }
void Start() override;
void Stop() override;
@ -301,10 +296,7 @@ class FakeFlexfecReceiveStream final : public webrtc::FlexfecReceiveStream {
void SetRtpExtensions(std::vector<webrtc::RtpExtension> extensions) override;
const std::vector<webrtc::RtpExtension>& GetRtpExtensions() const override;
const webrtc::ReceiveStream::RtpConfig& rtp_config() const override {
return config_.rtp;
}
bool transport_cc() const override { return config_.rtp.transport_cc; }
const webrtc::FlexfecReceiveStream::Config& GetConfig() const;

Просмотреть файл

@ -136,8 +136,7 @@ class VideoReceiveStream2
void SetRtpExtensions(std::vector<RtpExtension> extensions) override;
const std::vector<RtpExtension>& GetRtpExtensions() const override;
const RtpConfig& rtp_config() const override { return rtp(); }
bool transport_cc() const override { return rtp().transport_cc; }
webrtc::VideoReceiveStream::Stats GetStats() const override;