Also did some slight refactoring of the code that turns constraints
into rtc::Optionals. Used a template method to avoid code duplication,
and used the same pattern for "CopyConstraintsIntoAudioOptions" as was
being used for "CopyConstraintsIntoRtcConfiguration".
BUG=webrtc:6752
Review-Url: https://codereview.webrtc.org/2628523003
Cr-Commit-Position: refs/heads/master@{#16063}
Previously: Failed to setup RTCP mux filter.
Now: rtcpMuxPolicy is 'require', but media description does not
contain 'a=rtcp-mux'.
BUG=webrtc:6966
Review-Url: https://codereview.webrtc.org/2622553003
Cr-Commit-Position: refs/heads/master@{#16062}
That object will be used when we enable RTCP reporting from FlexfecReceiveStream.
Other related changes:
- Stop using FlexfecConfig (from config.h) at receive side in WebRtcVideoEngine2.
- Add a IsCompleteAndEnabled() method to FlexfecReceiveStream::Config, to be
used in WebRtcVideoEngine2.
- Centralize the construction of the FlexfecReceiveStream::Config in unit tests.
This will make future additions to the unit tests cleaner.
- Simplify setup for receiving FlexFEC in VideoQualityTest.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2589713003
Cr-Commit-Position: refs/heads/master@{#16059}
Earlier, the FlexFEC codec would receive the same default RTCP feedback
params as the media codecs. Since most of these are not used, there is
no point negotiating them.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2623513002
Cr-Commit-Position: refs/heads/master@{#16057}
A decision has been made to not use prefix header files.
BUG=None
Review-Url: https://codereview.webrtc.org/2590823002
Cr-Commit-Position: refs/heads/master@{#16056}
Just simple "percentage of call that was bad" stats.
BUG=webrtc:6814
Review-Url: https://codereview.webrtc.org/2578213003
Cr-Commit-Position: refs/heads/master@{#16049}
Reading and writing RTP files is implemented elsewhere,
in test/rtp_file_reader.cc and test/rtp_file_writer.cc;
that code is untouched by this cl.
BUG=webrtc:6974
Review-Url: https://codereview.webrtc.org/2633453002
Cr-Commit-Position: refs/heads/master@{#16046}
Previously, BaseChannel supported a "no RTCP" mode, which wasn't
being used any more and is being deleted.
Also, "RTCP mux required" previously worked by calling "ActivateRtcpMux"
after construction. Now it works by explicitly passing a
"require_rtcp_mux" parameter into the constructor.
BUG=None
Review-Url: https://codereview.webrtc.org/2622613004
Cr-Commit-Position: refs/heads/master@{#16045}
The BaseChannel can set the transport directly without depending on
TransportController.
When initializing the network of the BaseChannel, the ChannelManager will
create TransportChannels with the TransportController.
When enabling bundling, WebRtcSession will get or create TransportChannels
with the TransportController.
When a TransportChannel of the BaseChannel needs to be destroyed, it will
fire a signal to notify the WebRtcSession.
BUG=none.
Review-Url: https://codereview.webrtc.org/2614263002
Cr-Commit-Position: refs/heads/master@{#16043}
Make P2PTransportChannel inherit from IceTransportInternal instead of
TransportChannelImpl and TransportChannel, so that the DTLS-related methods can
be separated from P2PTransportChannel.
BUG=webrtc:6951
Review-Url: https://codereview.webrtc.org/2608353003
Cr-Commit-Position: refs/heads/master@{#16041}
Ignore CAMERA_ERROR_EVICTED error if camera is about to be closed.
This is valid use case when other app is opening camera while
WebRTC Android app is trying to close it.
BUG=b/34112992
Review-Url: https://codereview.webrtc.org/2627153002
Cr-Commit-Position: refs/heads/master@{#16039}
The video send pipeline uses the magic value 0 for an unset ntp time.
However, the receive pipeline uses the magic value -1 for unset
(unclear where, it seems it behaved differently a few months ago).
This makes cl https://codereview.webrtc.org/2469993003/ fail the
P2PTestConductor.ForwardVideoOnlyStream, because that cl removes code
which always clears the ntp time, and enables propagation of ntp time
from the receive pipeline to the send pipeline.
Treating ntp time <= 0 as unset is a small improvement. Ultimately, a
VideoFrame shouldn't carry an ntp time at all.
BUG=webrtc:5740,webrtc:6977
Review-Url: https://codereview.webrtc.org/2620383005
Cr-Commit-Position: refs/heads/master@{#16035}
We currently leak one local reference to MediaCodecVideoEncoder in
every call to MediaCodecVideoEncoderFactory::CreateVideoEncoder. After
the encoder has been re-initialized 512 times, JNI will crash due to
local reference table overflow (max=512).
The actual leak is in the member initializer list of
MediaCodecVideoEncoder. This CL fixes the leak by adding a
ScopedLocalRefFrame outside of the ctor. All JNI code that originate
from a C++ thread (i.e. the entry point is not a Java thread) must use
a ScopedLocalRefFrame in order to avoid leaking local references.
BUG=webrtc:6969,b/34056152
Review-Url: https://codereview.webrtc.org/2627973004
Cr-Commit-Position: refs/heads/master@{#16034}
This is a slightly more descriptive name, since we only have one type
of erasure code (XOR), and we only have one table.
BUG=None
Review-Url: https://codereview.webrtc.org/2625903004
Cr-Commit-Position: refs/heads/master@{#16032}
Bulk of the changes were produced using
git grep -l ' ASSERT(' | grep -v test | grep -v 'common\.h' |\
xargs -n1 sed -i 's/ ASSERT(/ RTC_DCHECK(/'
followed by additional includes of base/checks.h in affected files,
and git cl format.
Also had to do some tweaks to #if !defined(NDEBUG) logic in the
taskrunner code (webrtc/base/task.cc, webrtc/base/taskparent.cc,
webrtc/base/taskparent.h, webrtc/base/taskrunner.cc), replaced to
consistently use RTC_DCHECK_IS_ON, and some of the checks needed
additional #if protection.
Test code was excluded, because it should probably use RTC_CHECK
rather than RTC_DCHECK.
BUG=webrtc:6424
Review-Url: https://codereview.webrtc.org/2620303003
Cr-Commit-Position: refs/heads/master@{#16030}
Bulk of changes done using
git grep -l 'RTC_DCHECK(false)' | \
xargs sed -i 's/RTC_DCHECK(false)/RTC_NOTREACHED()/'
peerconnection.cc also used RTC_DCHECK(false && "msg") in two places,
which were updated manually.
BUG=webrtc:6424
Review-Url: https://codereview.webrtc.org/2623313004
Cr-Commit-Position: refs/heads/master@{#16026}
This change moves the definition of the UMA MetricsObserverInterface from api/peerconnectioninterface.h into api/umametrics.h. This allows us to remove the unwanted dependency on peerconnectioninterface.h from files in webrtc/p2p.
This is a simple refactoring with no functional changes.
BUG=None
Review-Url: https://codereview.webrtc.org/2627093005
Cr-Commit-Position: refs/heads/master@{#16020}