This changes DoSet(Local|Remote)Description helper function in
the PeerConnection unit tests to take a unique_ptr to the new
session rather than a bare pointer (of which it took ownership).
Bug: None
Change-Id: I75ef0992f09676455423980972634e3e6a700b85
Reviewed-on: https://chromium-review.googlesource.com/662365
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19807}
Specifically calling out issue 3721 ("dispose can't be called from a
callback"), which developers frequently run into.
BUG=webrtc:3721
NOTRY=True
Review-Url: https://codereview.webrtc.org/3013573002
Cr-Commit-Position: refs/heads/master@{#19804}
Since the copy-constructor is explicitly defined, the coding-style guide mandates explicitly defining the assignment operator, too.
BUG=None
TBR=stefan@webrtc.org
Review-Url: https://codereview.webrtc.org/3014473002
Cr-Commit-Position: refs/heads/master@{#19800}
The goal of this CL is to separate Obj-C/Obj-C++ code from targets which have
also C++ code (see https://bugs.chromium.org/p/webrtc/issues/detail?id=7743
for more information).
To achieve this we have created 2 targets (audio_device_ios_objc and
audio_device_generic) and audio_device will act as a proxy between these targets
(this way we can avoid a circular dependency between audio_device_generic and
audio_device_ios_objc).
BUG=webrtc:7743
Review-Url: https://codereview.webrtc.org/2991343002
Cr-Commit-Position: refs/heads/master@{#19795}
We soon want to be able to pass in a new type of video codec factories,
see issue 7925 for more information. We currently plumb these video
codec factories in a clumsy way from the media engine to the video
engine, which will require us to update a lot of places when we add
new video codec factory types. This CL cleans up the way we pass in
video codec factories to make it easier to add the new factory types.
In particular, this CL:
* Updates WebRtcVideoEngine to take the video codec factories as
arguments in ctor instead of in SetExternalVideoCodec functions.
* Remove the Init() function from the vidoe engines - this function is
not used.
* Update CompositeMediaEngine to take generic variadic arguments, so we
can send different arguments for different engines, without having to
update this class.
* Simplify ownership of video codec factories in WebRtcVideoEngine.
WebRtcVideoEngine outlives WebRtcVideoChannel,
WebRtcVideoSendStream and WebRtcVideoReceiveStream, so it can
keep ownership without having to share ownership with these classes.
BUG=webrtc:7925
Review-Url: https://codereview.webrtc.org/3008043002
Cr-Commit-Position: refs/heads/master@{#19794}
This is done to solve a dependency-cycle with the RtcEventLog - now the RtcEventLog can depend on the config part of ANA, and be able to peer inside, while the implementation part of ANA can invoke the RtcEventLog.
BUG=webrtc:8111
TBR=stefan@webrtc.org
Review-Url: https://codereview.webrtc.org/3010343002
Cr-Commit-Position: refs/heads/master@{#19793}
We currently use long for some variables, which causes warnings when
converting from int64_t. We should use fixed width integer types
instead.
BUG=b/65491700
Review-Url: https://codereview.webrtc.org/3009293002
Cr-Commit-Position: refs/heads/master@{#19791}
This is part of the work towards implementing Unified Plan.
The logic for correlating m= lines to channels is changing in
Unified Plan. Moving this logic to WebRtcSession means that we do
not need to add a flag to BaseChannel to indicate which logic it
should use (i.e., Plan B vs. Unified Plan) and can keep those
details in WebRtcSession.
Bug: webrtc:8183
Change-Id: I729da73ece01fd20f45e82f8956a02c4cad2469e
Reviewed-on: https://chromium-review.googlesource.com/653490
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19786}
Merge rtp::Packet::GetHeader into RtpPacketReceived::GetHeader removing
error-prone code where latter shadow former version
BUG=None
Review-Url: https://codereview.webrtc.org/3012983002
Cr-Commit-Position: refs/heads/master@{#19784}
Added script 'apm_quality_assessment_optimize' for finding parameters
that minimize a custom function of the scores generated by APM-QA. The
script reuses the existing functionality for filtering the data on
configs/scores/outputs.
To archieve that, some modularization has been done: the part from
apm_quality_assessment_export that reads in data into a
pandas.DataFrame has been moved into quality_assessment.collect_data.
TESTED = though extensive manual tests. Unit tests for the user
scripts and 'collect_data' are missing, because we don't have a test
framework for loading/exporting fake data.
BUG=webrtc:7218
Change-Id: I5521b952970243da05fc4db1b9feef87a2e5ccad
Reviewed-on: https://chromium-review.googlesource.com/643292
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19780}
Picture ids are now unwrapped in the RtpFrameReferenceFinder class, so the
FrameBuffer2 no longer need to treat them as wrapping.
BUG=webrtc:7874
Review-Url: https://codereview.webrtc.org/3012883002
Cr-Commit-Position: refs/heads/master@{#19779}
Explicit copy-constructors are required by chromium. (No copy constructors were used until now, but a different CL requires them.)
BUG=None
TBR=stefan@webrtc.org
Review-Url: https://codereview.webrtc.org/3006343002
Cr-Commit-Position: refs/heads/master@{#19777}
Move StreamConfig into its own file, to allow it to be seen from different RtcEvent subclasses (introduces in upcoming CL).
BUG=webrtc:8111
Review-Url: https://codereview.webrtc.org/3013523002
Cr-Commit-Position: refs/heads/master@{#19776}
This CL reduces the allowed jitter in the api calls to a reasonable
level in order to ensure a quicker revery from audio path glitches.
BUG=webrtc:8224, chromium:763775
Review-Url: https://codereview.webrtc.org/3009273002
Cr-Commit-Position: refs/heads/master@{#19772}
We want to perform the observation setup as soon as possible to avoid deadlocking,
especially for test scenario where most of the work is done on main thread.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/3012913002
Cr-Commit-Position: refs/heads/master@{#19771}
This makes api more consistent with ios and native library
BUG=None
Review-Url: https://codereview.webrtc.org/3012843002
Cr-Commit-Position: refs/heads/master@{#19770}
This CL adds a helper class VideoFrameDrawer that provides an
abstraction for rendering arbitrary video frames using OpenGL. The class
takes care of dispatching on the video buffer type and uploading
I420 data to textures.
BUG=None
Review-Url: https://codereview.webrtc.org/3008423002
Cr-Commit-Position: refs/heads/master@{#19768}
The goal of this CL is to separate Obj-C/Obj-C++ code from targets which have
also C++ code (see https://bugs.chromium.org/p/webrtc/issues/detail?id=7743
for more information).
To achieve this we have created 2 targets (rtc_base_approved_objc and
rtc_base_approved_generic) and rtc_base_approved will act as a proxy between
these targets (this way we can avoid a circular dependency between
rtc_base_approved_generic and rtc_base_approved_objc).
BUG=webrtc:7743
NOTRY=True
Review-Url: https://codereview.webrtc.org/2988433002
Cr-Commit-Position: refs/heads/master@{#19767}
Reason for revert:
Identified a configuration problem in the video quality tests. Intend to fix and reland.
Original issue's description:
> Revert of Use RtxReceiveStream. (patchset #5 id:320001 of https://codereview.webrtc.org/3006063002/ )
>
> Reason for revert:
> This change appears to break ulpfec, with severe regressions, e.g., for webrtc_perf_test FullStackTest.ForemanCifPlr5Ulpfec
>
> Original issue's description:
> > Reland of Use RtxReceiveStream. (patchset #1 id:1 of https://codereview.webrtc.org/3010983002/ )
> >
> > Reason for revert:
> > Intend to fix perf failures and reland.
> >
> > Original issue's description:
> > > Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
> > >
> > > Reason for revert:
> > > A few perf tests broken, including
> > >
> > > RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
> > > RampUpTest.UpDownUpTransportSequenceNumberRtx
> > > RampUpTest.UpDownUpTransportSequenceNumberPacketLoss
> > >
> > >
> > > Original issue's description:
> > > > Use RtxReceiveStream.
> > > >
> > > > This also has the beneficial side-effect that when a media stream
> > > > which is protected by FlexFEC receives an RTX retransmission, the
> > > > retransmitted media packet is passed into the FlexFEC machinery,
> > > > which should improve its ability to recover packets via FEC.
> > > >
> > > > BUG=webrtc:7135
> > > >
> > > > Review-Url: https://codereview.webrtc.org/3008773002
> > > > Cr-Commit-Position: refs/heads/master@{#19649}
> > > > Committed: 5c0f6c62ea
> > >
> > > TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:7135
> > >
> > > Review-Url: https://codereview.webrtc.org/3010983002
> > > Cr-Commit-Position: refs/heads/master@{#19653}
> > > Committed: 3c39c0137a
> >
> > TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/3006063002
> > Cr-Commit-Position: refs/heads/master@{#19715}
> > Committed: 35713eaf56
>
> TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3007303002
> Cr-Commit-Position: refs/heads/master@{#19744}
> Committed: 8e7eee0351TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3012963002
Cr-Commit-Position: refs/heads/master@{#19765}
Fixes some issues related to calling WebRtcAudioManager.setStereoOutput(true)
and WebRtcAudioManager.setStereoInput(true) and ensures that the ADM reports
correct values related to stereo support given these settings.
Also makes it more clear that the OpenSLES audio implementation does not support
stereo (we now fail in Init()).
To summarize: this change ensures that the user can ask for stereo input
and/or stereo output audio on Android in combination with the Java based
audio layer. By default (if no WebRtcAudioManager.setStereoXXX() APIs are called), mono will be used.
BUG=webrtc:7962
Review-Url: https://codereview.webrtc.org/3009193002
Cr-Commit-Position: refs/heads/master@{#19763}
This CL also makes it possible to enable/prevent ANA controllers from making adaptations using field trials.
BUG=webrtc:8127
Review-Url: https://codereview.webrtc.org/3007983002
Cr-Commit-Position: refs/heads/master@{#19761}
This CL adds seperate counters for ANA frame length increases and decreases, which gives more insight into what actions are taken. In addition, a new stat is added to track the sum of the uplink packet loss fraction that is set by the ANA FEC controller.
BUG=webrtc:8127
Review-Url: https://codereview.webrtc.org/3007243002
Cr-Commit-Position: refs/heads/master@{#19756}
Split out webrtc-specific #defines from typedefs.h, into rtc_base/annotations.h and rtc_base/arch.h.
Also removes the curiously named WEBRTC_CPU_DETECTION #define.
BUG=webrtc:6854
Review-Url: https://codereview.webrtc.org/3007253002
Cr-Commit-Position: refs/heads/master@{#19752}
This CL only wires up the new stats but does not set the values yet. This will be added in a follow-up CL.
BUG=webrtc:8127
Review-Url: https://codereview.webrtc.org/3011623002
Cr-Commit-Position: refs/heads/master@{#19751}
This is done for two reasons:
1. This will be useful in an upcoming CL, when all logging will be done with one function that accepts a std::unique_ptr<RtcEvent>.
2. Ensure no unnecessary copies when the compiler fails to optimize.
BUG=webrtc:8111
TBR=stefan@webrtc.org
Review-Url: https://codereview.webrtc.org/3010273002
Cr-Commit-Position: refs/heads/master@{#19746}
Reason for revert:
This change appears to break ulpfec, with severe regressions, e.g., for webrtc_perf_test FullStackTest.ForemanCifPlr5Ulpfec
Original issue's description:
> Reland of Use RtxReceiveStream. (patchset #1 id:1 of https://codereview.webrtc.org/3010983002/ )
>
> Reason for revert:
> Intend to fix perf failures and reland.
>
> Original issue's description:
> > Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
> >
> > Reason for revert:
> > A few perf tests broken, including
> >
> > RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
> > RampUpTest.UpDownUpTransportSequenceNumberRtx
> > RampUpTest.UpDownUpTransportSequenceNumberPacketLoss
> >
> >
> > Original issue's description:
> > > Use RtxReceiveStream.
> > >
> > > This also has the beneficial side-effect that when a media stream
> > > which is protected by FlexFEC receives an RTX retransmission, the
> > > retransmitted media packet is passed into the FlexFEC machinery,
> > > which should improve its ability to recover packets via FEC.
> > >
> > > BUG=webrtc:7135
> > >
> > > Review-Url: https://codereview.webrtc.org/3008773002
> > > Cr-Commit-Position: refs/heads/master@{#19649}
> > > Committed: 5c0f6c62ea
> >
> > TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/3010983002
> > Cr-Commit-Position: refs/heads/master@{#19653}
> > Committed: 3c39c0137a
>
> TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3006063002
> Cr-Commit-Position: refs/heads/master@{#19715}
> Committed: 35713eaf56TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3007303002
Cr-Commit-Position: refs/heads/master@{#19744}
Reason for revert:
This has to be reverted to enable reverting cl https://codereview.webrtc.org/3006063002/, which seems to have broken ulpfec.
Original issue's description:
> Delete Rtx-related methods from RTPPayloadRegistry.
>
> Delete methods IsRtx, IsEncapsulated and RestoreOriginalPacket.
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3006993002
> Cr-Commit-Position: refs/heads/master@{#19739}
> Committed: 5b4b522641TBR=stefan@webrtc.org,danilchap@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3011093002
Cr-Commit-Position: refs/heads/master@{#19742}
Previously the helper methods (like "CreateLocalAudioTrack") were using
hard-coded IDs. This means if you try to add two tracks to the same
PeerConnection you'll get an ID conflict. Tests were getting around
this by using APIs to explicitly add tracks with different IDs. But
this leaks an implementation detail of the helper methods, and is a
hassle.
So instead, just use random UUIDs from the helper methods. This is how
IDs are created in the real world, so it's pretty reasonable and allows
the tests to be made more readable.
BUG=None
Review-Url: https://codereview.webrtc.org/3011713002
Cr-Commit-Position: refs/heads/master@{#19736}
This is part of the work towards implementing Unified Plan.
In Unified Plan, an RtpSender/MediaStreamTrack can be a part of
multiple streams. This changes RtpSender to internally store
stream ids as a vector so that later CL's can update downstream
consumers to support multiple streams. For now, the vector can
only have exactly one element in it, but once the supporting code
has been updated the singular getter/setter will be removed and
any number of streams can be associated with an RtpSender.
Bug: webrtc:8183
Change-Id: I499a77ce79198861d35c91328b40ced2eb913cc0
Reviewed-on: https://chromium-review.googlesource.com/646712
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19733}