This reverts commit e30c27205148b34ba421184efe65f6a0780b436d (https://codereview.webrtc.org/1958053002/)
Original reverted cl is in patch set #1.
Changes in following patch sets.
The cl now also make sure SendPacer starts with the configured bitrate provided in a call to CongestionController::SetBweBitrates)()
It turns out that the failing tests in 609816 is due to a bug in the current code that runs the proper at 300kbit regardless of configured start bitrate.
Original cl description:
Remove SendPacer from ViEEncoder
This CL moves the logic where the ViEEncoder pause if the pacer is full to the BitrateController. If the queue is full, the controller reports a bitrate of zero to Call (and BitrateAllocator)
BUG=chromium:609816, webrtc:5687
TBR=mflodman@webrtc.org
NOTRY=True // Due to bug in android_x86 cq builder....
Review-Url: https://codereview.webrtc.org/1958113003
Cr-Commit-Position: refs/heads/master@{#12688}
For WebRTC inside Chromium, only the webrtc/ directory is present
(as src/third_party/webrtc). That makes it impossible to add DEPS
check_deps rules in Chromium without approval of a webrtc.org owner
(see https://codereview.chromium.org/1818903004).
By having our root owners also be owners in webrtc/, this should be
less confusing.
NOTRY=True
Review-Url: https://codereview.webrtc.org/1934523002
Cr-Commit-Position: refs/heads/master@{#12687}
Reason for revert:
Breaks user code. Said code needs to stop using scoped_ptr!
Original issue's description:
> Remove webrtc/base/scoped_ptr.h
>
> BUG=webrtc:5520
>
> NOTRY=True
>
> Committed: https://crrev.com/65fc62e9dd8a8716db625aaef76ab92f542ecc5a
> Cr-Commit-Position: refs/heads/master@{#12684}
TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5520
Review-Url: https://codereview.webrtc.org/1965063003
Cr-Commit-Position: refs/heads/master@{#12686}
This is the last step in changing the signature of AudioEncoder::Encode
to taking an rtc::Buffer as its output parameter, rather than a pointer
to and a size parameter.
The notry parameter has been added specifically to work around android_compile_x86_dbg bot failing.
NOTRY=True
BUG=webrtc:5591
Review-Url: https://codereview.webrtc.org/1962013003
Cr-Commit-Position: refs/heads/master@{#12685}
Previously it only supported RSA-1024/0x10001, now it also supports ECDSA-P256.
This will be necessary for when KT_DEFAULT changes from KT_RSA to KT_ECDSA
since FakeDtlsIdentityStore is used by many tests.
BUG=webrtc:5795
R=mattdr@google.com, tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1965723002 .
Cr-Commit-Position: refs/heads/master@{#12680}
Reason for revert:
Not perf-regression culprit.
Original issue's description:
> Revert of Rename OpenH264 frame-type conversion function. (patchset #2 id:20001 of https://codereview.webrtc.org/1943193003/ )
>
> Reason for revert:
> Speculative revert for perf regression (though unlikely).
>
> Original issue's description:
> > Rename OpenH264 frame-type conversion function.
> >
> > Also removing default case, so if another frame is added to
> > EVideoFrameType we have to handle it.
> >
> > This will now NOTREACHED on videoFrameTypeInvalid, but
> > videoFrameTypeInvalid shouldn't happen if encoding succeeds, so it
> > should be fine or we should become aware of it.
> >
> > BUG=
> > R=hbos@webrtc.org
> >
> > Committed: https://crrev.com/39a36705ab734914d500b8a0f214ea630d82ab70
> > Cr-Commit-Position: refs/heads/master@{#12636}
>
> TBR=hbos@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=chromium:610347
>
> Committed: https://crrev.com/1abf937cecea56ee02ac4a08980ffea9e7ed1054
> Cr-Commit-Position: refs/heads/master@{#12677}
TBR=hbos@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:610347
Review-Url: https://codereview.webrtc.org/1970513004
Cr-Commit-Position: refs/heads/master@{#12679}
Reason for revert:
Downstream users updated now.
Original issue's description:
> Partial revert of Enable -Winconsistent-missing-override flag. (patchset #5 id:80001 of https://codereview.webrtc.org/1921653002/ )
>
> Reason for revert:
> This CL breaks the google3 import (but not the import bot).
> This partial revert only reverts the build files. A full revert no longer cleanly applies to ToT, so this was done instead.
>
> Original issue's description:
> > Enable -Winconsistent-missing-override flag.
> >
> > The problem with gmock is worked around by commenting out any other override declarations in classes using gmock.
> >
> > NOPRESUBMIT=True
> > BUG=webrtc:3970
> >
> > Committed: https://crrev.com/ef8b61e11062295365f11b9942f18a08a8b3ec60
> > Cr-Commit-Position: refs/heads/master@{#12563}
>
> TBR=mflodman@webrtc.org,kjellander@webrtc.org,nisse@webrtc.org
> BUG=webrtc:3970
>
> Committed: https://crrev.com/053f91774149a5367ddd531999d4ca69a57dbaa3
> Cr-Commit-Position: refs/heads/master@{#12624}
TBR=kjellander@webrtc.org,mflodman@webrtc.org,ivoc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:3970
NOTRY=True
Review-Url: https://codereview.webrtc.org/1959353002
Cr-Commit-Position: refs/heads/master@{#12678}
Reason for revert:
Speculative revert for perf regression (though unlikely).
Original issue's description:
> Rename OpenH264 frame-type conversion function.
>
> Also removing default case, so if another frame is added to
> EVideoFrameType we have to handle it.
>
> This will now NOTREACHED on videoFrameTypeInvalid, but
> videoFrameTypeInvalid shouldn't happen if encoding succeeds, so it
> should be fine or we should become aware of it.
>
> BUG=
> R=hbos@webrtc.org
>
> Committed: https://crrev.com/39a36705ab734914d500b8a0f214ea630d82ab70
> Cr-Commit-Position: refs/heads/master@{#12636}
TBR=hbos@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:610347
Review URL: https://codereview.webrtc.org/1964913002 .
Cr-Commit-Position: refs/heads/master@{#12677}
AudioVector used NetEq was based on a shift buffer, which has a high complexity, and the complexity is very much dependent on the capacity of the buffer.
This CL changes the shift buffer to a ring buffer.
Reduction in the CPU usages of NetEq is expected.
BUG=608644
R=henrik.lundin@webrtc.org
Review URL: https://codereview.webrtc.org/1948483002 .
Cr-Commit-Position: refs/heads/master@{#12676}
AllocationSequence is responsible for receiving incoming packets on
a shared UDP socket and passing them to the Port objects. TurnPort
may stop sharing UDP socket in which case it allocates a new socket.
AllocationSequence::OnReadPacket() wasn't handling that case properly
which was causing an assert in TurnPort::OnReadPacket().
BUG=webrtc:5757
R=honghaiz@webrtc.org, jiayl@chromium.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1871693004 .
Cr-Commit-Position: refs/heads/master@{#12675}
Adding a new method to the Expand class, which will answer the question
whether an ongoing expansion has been faded down to zero
amplitude (i.e., been muted). Also adding a test.
This new functionality will be used in CLs to follow.
BUG=webrtc:5608
NOTRY=True
Review-Url: https://codereview.webrtc.org/1967473004
Cr-Commit-Position: refs/heads/master@{#12672}
This is to prepare for implementation of NetEq muted state, which may
cause GetAudioInternal to make an early return just before the call to
GetDecision. With this change, the stats are updated in any case.
BUG=webrtc:5608
NOTRY=True
Review-Url: https://codereview.webrtc.org/1948663002
Cr-Commit-Position: refs/heads/master@{#12671}
The timescale_holdoff_ is a counter in the DecisionLogic class. The
purpose is to enforce a minimum number of GetAudio calls
between (successfull) time-scaling operations (i.e., Accelerate and
Pre-emptive Expand operations). With this change, the counter is
replaced with a Countdown timer obtained from a TickTimer object.
BUG=webrtc:5608
R=tina.legrand@webrtc.org
Review URL: https://codereview.webrtc.org/1945863002 .
Cr-Commit-Position: refs/heads/master@{#12670}
because in the TMMBRHelp class it is independent of other members.
BUG=webrtc:5565
R=philipel
Review-Url: https://codereview.webrtc.org/1746773002
Cr-Commit-Position: refs/heads/master@{#12669}
The logging code was using the wrong constants for the
codec type, resulting in the type always being "unknown".
Tested: modules_unittests --gtest_filter='IvfFile*' -logs
BUG=
Review-Url: https://codereview.webrtc.org/1955273002
Cr-Commit-Position: refs/heads/master@{#12668}
BUG=webrtc:5874
TEST=Manually throw an exception inside the SurfaceTextureHelper ctor and run AppRTCDemo.
Review-Url: https://codereview.webrtc.org/1840193007
Cr-Commit-Position: refs/heads/master@{#12665}
Instead, use a neat trick with union to ensure that we have a T only
when we're supposed to (and just a bunch of unused memory otherwise).
This is how std::optional behaves, so it makes sense for us to do the
same (and it's convenient, too, since we don't have to pay for the
default-constructed T, and we support types that don't have default
constructors).
Doing this became possible recently when we dropped support for MSVC
2013, which didn't support unions containing non-trivial types.
Review-Url: https://codereview.webrtc.org/1896833004
Cr-Commit-Position: refs/heads/master@{#12664}
files.
The purpose of this CL is to simplify upcoming AEC algorithm
changes.
The changes should be bitexact.
The presubmit was bypassed due to a presubmit complaint
about usage of short instead of int16_t which will be
addressed in upcoming CLs.
BUG=webrtc:5298, webrtc:5201
NOPRESUBMIT=true
Review-Url: https://codereview.webrtc.org/1949803004
Cr-Commit-Position: refs/heads/master@{#12662}
First two are unused, because the instance variables ratio_w_,
ratio_h_, and square_pixel_aspect_ratio_, are never modified after
initialization to 0 and false.
ARGB is believed to be unused, and the scaling logic
is probably not appropriate in any case.
Also delete corresponding helper functions in
videocommon.cc.
BUG=webrtc:5682
Review-Url: https://codereview.webrtc.org/1934503002
Cr-Commit-Position: refs/heads/master@{#12659}
method in the AEC into two methods.
This CL is step towards simplifying the AEC code, making it
more modifiable and modular.
The changes should be bitexact.
BUG=webrtc:5201, webrtc:5298
Review-Url: https://codereview.webrtc.org/1943753002
Cr-Commit-Position: refs/heads/master@{#12656}
method in the AEC.
This CL is step towards simplifying the AEC code, making it
more modifiable and modular.
The changes should be bitexact.
BUG=webrtc:5201, webrtc:5298
Review-Url: https://codereview.webrtc.org/1943193002
Cr-Commit-Position: refs/heads/master@{#12655}
This CL is step towards simplifying the AEC code, making it more
modifiable and modular.
The changes should be bitexact.
BUG=webrtc:5201, webrtc:5298
Review-Url: https://codereview.webrtc.org/1936203002
Cr-Commit-Position: refs/heads/master@{#12654}
theAEC. The reason for this is that this optimized method hinders any
refactoring of the code. In particular, it is not possible to separate
the application of the echo suppressor gain from the gain computation
and the comfort noise generation as all of these are partly included
in this method.
This CL is step towards simplifying the AEC code, making it more
modifiable and modular.
The changes should be bitexact.
BUG=webrtc:5201, webrtc:5298
Review-Url: https://codereview.webrtc.org/1942853002
Cr-Commit-Position: refs/heads/master@{#12653}
This CL is step towards simplifying the AEC code, making it more modifiable and modular.
The changes should be bitexact.
BUG=webrtc:5201, webrtc:5298
Review-Url: https://codereview.webrtc.org/1936173002
Cr-Commit-Position: refs/heads/master@{#12652}
The CNAME is generated in the PeerConnection constructor and is populated through the MediaSessionOptions.
A default cname will be set in the MediaSessionOptions constructor.
BUG=webrtc:3431
Review-Url: https://codereview.webrtc.org/1871993002
Cr-Commit-Position: refs/heads/master@{#12650}
Objective-C applications using the data channel could crash when the following conditions were met:
- The application creates a data channel and sets a data channel delegate
- The delegate is deallocated but the application never clears it
When this happens, the dealloc method in RTCDataChannel would reset the delegate to nil. The setDelegate: method immediately returns if the new delegate value is the same as the old one. Since the old one is a weak reference, it becomes nil, and the DataChannelDelegateAdapter is not unsubscribed from the native channel before it gets deleted.
The fix removes the two optimizations, and instead subscribes the adapter to the native data channel at creation time - and unsubscribes it at dealloc time. This makes it very easy to reason about the lifetime of the subscription. Removing the optimization should have little effect on performance, as applications typically set the delegate when the channel is created.
BUG=
Review-Url: https://codereview.webrtc.org/1957523006
Cr-Commit-Position: refs/heads/master@{#12649}
There are still a few places in VideoReceiveStream where the RTP module
is explicitly used, e.g. setting up a/v sync, but it's a bigger task to
change and that will be done in a follow up instead of in this CL.
BUG=webrtc:5838
Review-Url: https://codereview.webrtc.org/1947913002
Cr-Commit-Position: refs/heads/master@{#12642}
Use the attribute in MediaContentDescription to test whether Rtx is removed in the answer instead of searching the substring "rtx" in the whole answer sdp.
BUG=webrtc:4943
Review-Url: https://codereview.webrtc.org/1919523002
Cr-Commit-Position: refs/heads/master@{#12639}