When the initial offer side uses the ICE lite implementation, and
initiates a peer connection with an endpoint with the full
implementation, the offer side assumes the controlled ICE role per
RFC5245 and the remote endpoint MUST take the controlling role.
This logic was partially implemented in SetRemoteTransportDescription in
reflection where the endpoint switches its role to the controlling after
receiving the offer. The bug was caused by the following
SetLocalDescription at the remote endpoint after creating the answer,
which overrides the role to the controlled since it has no initial offer
and the role is not reflected in SetLocalTransportDescription. This
results in no nomination of candidate pairs and timeout of establishing
the peer connection.
The fix adds reflection on one's ICE role in SetLocalTransportDescription.
This fix also takes into account the case when both sides use the lite
implementation of ICE and the initial offer side MUST take the controlling
role per RFC5245 in this case, which is the default behavior in the
current implementation.
Bug: webrtc:8531
Change-Id: I65edd296c155bff51fcdb28709975e6837f302d5
Reviewed-on: https://webrtc-review.googlesource.com/26780
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@google.com>
Cr-Commit-Position: refs/heads/master@{#21053}
This refactoring reduces code duplication in PeerConnection and
will make it easier to use these methods with the Unified Plan
implementation.
Bug: webrtc:8587
Change-Id: I6afd44fff702290903555cbe7703198b6b091da6
Reviewed-on: https://webrtc-review.googlesource.com/26822
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21052}
This changes the CreateVoiceChannel/CreateVideoChannel helper
methods in PeerConnection to return the created channel instead of
setting it directly. That allows the Unified Plan version of
SetLocalDescription to use the same factory methods without the
assumption that there is at most one voice and one video channel.
Also simplifies and deduplicates the logic for determining the
transport name for a given channel in the presence of BUNDLE.
Bug: webrtc:8587
Change-Id: I1f156f45309ce2d08d6d5d5ed3c6e01fbf094b36
Reviewed-on: https://webrtc-review.googlesource.com/26821
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21050}
The problem with using an Event for the 'running_' flag is that a Wait() is necessary to check the value of the flag and calling Wait() means a synchronous system call. In chromium that can furthermore trigger checks on threads where IO/blocking operations aren't allowed.
Luckily, we don't really need this variable. Instead, I'm adding thread checks to make sure that the Thread class is used correctly and ensure that locking isn't needed for modifying state (no locks are there now). As long as we follow those rules, we only need to check if a thread_ variable has been set when we want to know if the thread is running or not.
Along the way, fixed some places where variables weren't being set or reset correctly.
Bug: webrtc:8596
Change-Id: I1467542416bc2ffbfefe276c460e76078a759bd9
Reviewed-on: https://webrtc-review.googlesource.com/27720
Reviewed-by: Henrik Grunell <henrikg@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21042}
A lot of WebRTC targets were depending on //third_party/libyuv using
public_deps instead of deps. This causes issues because a the
inclusion of libyuv headers is not declared to the build system and
this creates hidden dependencies that put the modularity of the project
at risk.
Bug: webrtc:8603
Change-Id: Ide0ceb84eb5640ae664dc782f3a722b55c3b601a
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/28120
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21039}
In particular, PlayoutStereoData and StartPlayingAudioFile. This also
eliminates the dependency on system_wrappers FileWrapper.
Bug: None
Change-Id: I61df1eea1ad5f5035e36c8229febbf3668808f65
Reviewed-on: https://webrtc-review.googlesource.com/28121
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21038}
This will also cause us to use the new Android HardwareVideoEncoder,
instead of the deprecated MediaCodecVideoEncoderFactory. Unfortunately,
the new HW encoder does not seem to work as good as the old (or the new
encoder is more strict with return values or something). I don't think
it adds much value to continue testing the deprecated encoder, so I
filed a bug for fixing the new encoder, and in this CL I disabled the
tests on Android. I want to remove as many places as possible where we
use the old WebRtcVideoEncoderFactory interface, because it makes it
more difficult to migrate to the new interface.
Bug: webrtc:7925
Change-Id: If8e34752148a5e5139944d2dfbe7e231fe58aeb9
Reviewed-on: https://webrtc-review.googlesource.com/27540
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21037}
This means we will properly request a new keyframe if decoding fails.
Bug: webrtc:8600
Change-Id: Id213686f016c5418bf04b2ee68bd19dbbe1ea954
Reviewed-on: https://webrtc-review.googlesource.com/28101
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21036}
The script that processes the RESULT lines doesn't support scientific notation [1],
so "1.234567e+06 units" is interpreted as "1.234567", "e+06 units".
Increase precision so that this is printed as 1234567 instead. I'll also submit a
CL so that the RESULT lines processor supports scientific notation.
[1] https://cs.chromium.org/chromium/build/scripts/slave/performance_log_processor.py?l=410
Bug: chromium:791501
Change-Id: If768d86b7ed07d92541ece6298eac8fe95880e35
Reviewed-on: https://webrtc-review.googlesource.com/29001
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21034}
This macro collides with a libjingle macro with the same name.
Bug: webrtc:8589
Change-Id: Icdae45c3550d09a591ee02eaf37e11a44d4230d5
Reviewed-on: https://webrtc-review.googlesource.com/27982
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21029}
This target is just confusing, since it runs essentially random tests
out of the test binaries it's depending on. This CL makes the top
GN file structured like Chromium's is.
A possible secondary function is to act as a link test (maybe to catch
twice-defined symbols etc), but that seems highly speculative.
Bug: None
Change-Id: Ic8a36ffe96408312e602a58f8806b0694fedaad6
Reviewed-on: https://webrtc-review.googlesource.com/27380
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21028}
This reverts commit 0af8370cb38b0b0f35f4ed4ec4237d0e6c7d59da.
Reason for revert: Breaks downstream
Original change's description:
> Fix all circular deps in audio_processing (but one).
>
> Arguably we should add a few more targets, for instance a utility
> target, but I tried to create as few targets as possible here based on
> the current usage.
>
> Bug: webrtc:6828
> Change-Id: If2740de2e4374eeae64b3d7599a52bb051594c6a
> Reviewed-on: https://webrtc-review.googlesource.com/28020
> Reviewed-by: Per Åhgren <peah@webrtc.org>
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21025}
TBR=phoglund@webrtc.org,peah@webrtc.org
Change-Id: I423f027f6919cf4eb44b4e08c7cb38f0506ad0d7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6828
Reviewed-on: https://webrtc-review.googlesource.com/28940
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21027}
Arguably we should add a few more targets, for instance a utility
target, but I tried to create as few targets as possible here based on
the current usage.
Bug: webrtc:6828
Change-Id: If2740de2e4374eeae64b3d7599a52bb051594c6a
Reviewed-on: https://webrtc-review.googlesource.com/28020
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21025}