BUG=webrtc:5881
# Because PRESUBMIT ignores LINT blacklist for moved files and these
# headers have some not easy to resolve issues.
NOPRESUBMIT=True
Review-Url: https://codereview.webrtc.org/2780943003
Cr-Commit-Position: refs/heads/master@{#17511}
Also renames "peerconnection_unittests" to "peerconnection_integrationtests",
and moves the ICE URL parsing code to separate files.
The main problem previously was that the test assertions
occurred in various places in the main test class, and this shared test
code was overly complex and stateful. As a result, it was difficult to
tell what a test even does, let alone what assertions it's meant to be
making. And writing a new test that does what you want can be a
frustrating ordeal.
The new code still uses helper methods, but they have intuitive names
and a smaller role; all of the important parts of the test's logic are
in the test case itself.
We're planning on merging PeerConnection and WebRtcSession at some point
soon, so it seemed valuable to do this, so that the WebRtcSession tests
can be rewritten as PeerConnection tests using better patterns.
BUG=None
Review-Url: https://codereview.webrtc.org/2738353003
Cr-Commit-Position: refs/heads/master@{#17458}
Reason for revert:
Reverting since this seems to break multiple WebRTC Perf buildbots
Original issue's description:
> Don't hardcode MediaType::ANY in FakeNetworkPipe.
>
> Instead let each test set the appropriate media type. This simplifies
> demuxing in Call and later in RtpTransportController.
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/2774463003
> Cr-Commit-Position: refs/heads/master@{#17418}
> Committed: 9c47b00e24TBR=stefan@webrtc.org,deadbeef@webrtc.org,solenberg@webrtc.org,pbos@webrtc.org,sprang@webrtc.org,nisse@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/2784543002
Cr-Commit-Position: refs/heads/master@{#17427}
Instead let each test set the appropriate media type. This simplifies
demuxing in Call and later in RtpTransportController.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2774463003
Cr-Commit-Position: refs/heads/master@{#17418}
This reverts to previous behavior where b=AS only affects the codec bitrate for audio streams, and not the max bandwidth estimate.
BUG=chromium:703903
Review-Url: https://codereview.webrtc.org/2774123002
Cr-Commit-Position: refs/heads/master@{#17386}
Reason for revert:
Makes perf and Chromium FYI bots unhappy.
Original issue's description:
> WebRtcVoiceMediaChannel::AddRecvStream: Don't call SetRecPayloadType
>
> This removes one more place where we were unable to handle codecs not
> in the built-in set.
>
> BUG=webrtc:5805
>
> Review-Url: https://codereview.webrtc.org/2686043006
> Cr-Commit-Position: refs/heads/master@{#17370}
> Committed: 1724cfbdbaTBR=ossu@webrtc.org,solenberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5805
Review-Url: https://codereview.webrtc.org/2772043002
Cr-Commit-Position: refs/heads/master@{#17374}
This removes one more place where we were unable to handle codecs not
in the built-in set.
BUG=webrtc:5805
Review-Url: https://codereview.webrtc.org/2686043006
Cr-Commit-Position: refs/heads/master@{#17370}
In ViEEncoder, try to reduce framerate instead of resolution if the
current degradation preference is maintain-resolution rather than
balanced.
BUG=webrtc:4172
Review-Url: https://codereview.webrtc.org/2716643002
Cr-Commit-Position: refs/heads/master@{#17327}
Reason to go back is that we may end up with a bunch of streams that are never cleaned up and consume resources.
BUG=webrtc:7175, b/35863246
Review-Url: https://codereview.webrtc.org/2746763002
Cr-Commit-Position: refs/heads/master@{#17210}
Packets on source ports 32768-49151 got identified as RTP packets by
"IsRtpPacket" and were ignored by the SCTP transport.
This CL changes this to check the packet flags for "PF_SRTP_BYPASS".
BUG=webrtc:6959
Review-Url: https://codereview.webrtc.org/2743653005
Cr-Commit-Position: refs/heads/master@{#17179}
Use of FlexFEC is known when streams are created in
WebRtcVideoChannel2, so this replaces the code in Call to infer
FlexFEC config of video streams from the configuration of the FlexFEC
stream(s). This also allows us to switch to a more logical creation
order, where media streams are created before the FlexFEC stream.
This is done in preparation for a larger refactoring of the RTP
demuxing done in Call.
BUG=None
Review-Url: https://codereview.webrtc.org/2712683002
Cr-Commit-Position: refs/heads/master@{#17143}
WebRtcVideoChannel2Test::SetRecvCodecsSetsFecForAllVideoCodecs was never
fully implemented and hasn't been touched in over a year.
BUG=NONE
Review-Url: https://codereview.webrtc.org/2736483002
Cr-Commit-Position: refs/heads/master@{#17075}
It seems to me that we're currently just picking the first CN codec, rather than the one that matches the clock rate of the voice codec. The only test I've gotten to fail by changing this behavior is the one that's also changed in this CL, which explicitly expects a CN codec to be chosen even though there's none matching.
BUG=webrtc:7282
Review-Url: https://codereview.webrtc.org/2707133007
Cr-Commit-Position: refs/heads/master@{#16979}
WebRtcVideoEngine2Test.RecreatesEncoderOnContentTypeChange is flaky.
Disable it temporarily, while working on improvement.
TBR=pthatcher@webrtc.org
BUG=webrtc:7275
Review-Url: https://codereview.webrtc.org/2727503003
Cr-Commit-Position: refs/heads/master@{#16937}
- The "flexfec-03" codec is advertised in the SDP whenever the
"WebRTC-FlexFEC-03-Advertised" field trial is enabled.
- Sending FlexFEC packets is enabled whenever the "flexfec-03" codec is
negotiated, and the "WebRTC-FlexFEC-03" field trial is enabled.
After this CL, the number of calls to
WebRtcVideoChannel2::WebRtcVideoSendStream::SetCodec during renegotiation
will be reduced for cases when only one endpoint has the "WebRTC-FlexFEC-03"
field trial enabled.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2716733005
Cr-Commit-Position: refs/heads/master@{#16925}
This avoids the situation where an encoder, not supporting certain
screen content settings, is created for a config where screencast is
off, and later ReconfigureEncoder() is called updating the configuration
but not the encoder instance, causing an inconsistency in the encoder's
InitEncode() call.
TBR=pthatcher@webrtc.org
BUG=webrtc:4172
Review-Url: https://codereview.webrtc.org/2710493008
Cr-Commit-Position: refs/heads/master@{#16921}
This CL adds the following interfaces:
* RtpTransportController
* RtpTransport
* RtpSender
* RtpReceiver
They're implemented on top of the "BaseChannel" object, which is normally used
in a PeerConnection, and roughly corresponds to an SDP "m=" section. As a result
of this, there are several limitations:
* You can only have one of each type of sender and receiver (audio/video) on top
of the same transport controller.
* The sender/receiver with the same media type must use the same RTP transport.
* You can't change the transport after creating the sender or receiver.
* Some of the parameters aren't supported.
Later, these "adapter" objects will be gradually replaced by real objects that don't
have these limitations, as "BaseChannel", "MediaChannel" and related code is
restructured. In this CL, we essentially have:
ORTC adapter objects -> BaseChannel -> Media engine
PeerConnection -> BaseChannel -> Media engine
And later we hope to have simply:
PeerConnection -> "Real" ORTC objects -> Media engine
See the linked bug for more context.
BUG=webrtc:7013
TBR=stefan@webrtc.org
Review-Url: https://codereview.webrtc.org/2675173003
Cr-Commit-Position: refs/heads/master@{#16842}
This CL fixes issue 7211 as well as adding a test that would have
caught the issue.
BUG=webrtc:7211,webrtc:6850,b/35471214
R=sprang@webrtc.org
TBR=kthelgason, sprang
Review-Url: https://codereview.webrtc.org/2713683002 .
Cr-Commit-Position: refs/heads/master@{#16778}
It's annoying to have to re-implement this every time I need a debug
printout.
Declared inline, so that there'll be zero runtime overhead.
This CL also modifies a unit test so that it will make use of the new
operator<< in case it finds errors.
BUG=none
Review-Url: https://codereview.webrtc.org/2705203002
Cr-Commit-Position: refs/heads/master@{#16749}
The video_capture module includes remnants of support for cameras
producing encoded frames. However, this seems to be unused, and is
explicitly not supported by VideoCaptureImpl::IncomingFrame.
BUG=None
Review-Url: https://codereview.webrtc.org/2668693008
Cr-Commit-Position: refs/heads/master@{#16732}
This reduces binary size considerably and solves some other problems.
Also rewrote using variadic templates.
Initial patch contributed by andrey.semashev@gmail.com.
BUG=webrtc:2305
Review-Url: https://codereview.webrtc.org/2509733003
Cr-Commit-Position: refs/heads/master@{#16703}
The first unsignalled SSRC creates a default receive channel.
Any unsignalled SSRC changes after that replace the default SSRC.
Add unit tests for changing unsignalled SSRCs.
BUG=webrtc:5208
Review-Url: https://codereview.webrtc.org/2692993009
Cr-Commit-Position: refs/heads/master@{#16682}
This feature is unused. We can then also delete the header file
video_capture_delay.h.
BUG=None
Review-Url: https://codereview.webrtc.org/2665113006
Cr-Commit-Position: refs/heads/master@{#16666}