Commit Graph

9310 Commits

Author SHA1 Message Date
4e477a1d7b Added a new echo likelihood stat that reports the maximum value from a previous time period.
BUG=webrtc:6797

Review-Url: https://codereview.webrtc.org/2629563003
Cr-Commit-Position: refs/heads/master@{#16079}
2017-01-15 16:29:46 +00:00
fe0fd41bb9 Stop using deprecated constraints-based version of CreateAudioSource.
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}
2017-01-13 19:47:56 +00:00
8e814d7906 Provide better message for when RTCP mux "require" policy is triggered.
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}
2017-01-13 19:34:39 +00:00
bc5d921659 Rename base/analytics/ to base/numerics/
BUG=webrtc:6832

Review-Url: https://codereview.webrtc.org/2626203002
Cr-Commit-Position: refs/heads/master@{#16060}
2017-01-13 17:14:33 +00:00
8313a6fa8f Make |rtcp_send_transport| mandatory in FlexfecReceiveStream::Config.
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}
2017-01-13 15:41:19 +00:00
44b3ef65ed Signal target bitrate only for screenshare streams
BUG=webrtc:6301

Review-Url: https://codereview.webrtc.org/2625893004
Cr-Commit-Position: refs/heads/master@{#16058}
2017-01-13 15:30:25 +00:00
36e7d70410 Explicitly only add transport-cc RTCP feedback param to default FlexFEC codec.
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}
2017-01-13 15:15:54 +00:00
bf0845201a Remove use of PCH files in webrtc/sdk/objc
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}
2017-01-13 15:10:16 +00:00
a9dd4a1b11 Replace left-over ASSERTs in httpcommon.h and webrtcsession.cc.
BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2630553003
Cr-Commit-Position: refs/heads/master@{#16055}
2017-01-13 15:08:34 +00:00
363a29157a Revert of Log audio network adapter decisions in event log. (patchset #14 id:320001 of https://codereview.webrtc.org/2559953002/ )
Reason for revert:
Breaks chromium.webrtc.fyi.

Original issue's description:
> Log audio network adapter decisions in event log.
>
> BUG=webrtc:6845
>
> Review-Url: https://codereview.webrtc.org/2559953002
> Cr-Commit-Position: refs/heads/master@{#16053}
> Committed: 3663681b5d

TBR=minyue@webrtc.org,henrik.lundin@webrtc.org,terelius@webrtc.org,stefan@webrtc.org,solenberg@webrtc.org,michaelt@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6845

Review-Url: https://codereview.webrtc.org/2631703002
Cr-Commit-Position: refs/heads/master@{#16054}
2017-01-13 14:52:12 +00:00
3663681b5d Log audio network adapter decisions in event log.
BUG=webrtc:6845

Review-Url: https://codereview.webrtc.org/2559953002
Cr-Commit-Position: refs/heads/master@{#16053}
2017-01-13 14:10:16 +00:00
bf279fc4b9 Pass event log to ANA.
BUG=webrtc:6845

Review-Url: https://codereview.webrtc.org/2553413002
Cr-Commit-Position: refs/heads/master@{#16052}
2017-01-13 14:02:29 +00:00
cc882afdf7 Update ice server provider response format in iOS AppRTCMobile
BUG=webrtc:5963

Review-Url: https://codereview.webrtc.org/2627523004
Cr-Commit-Position: refs/heads/master@{#16050}
2017-01-13 13:59:46 +00:00
a40672a120 Add UMA stats to bad call detection.
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}
2017-01-13 13:58:34 +00:00
d533aec3b8 Remove WebRtcVideoSendStream2::VideoSink inheritance. Remove sending black frame on source removal.
BUG=webrtc:6371,webrtc:6983

Review-Url: https://codereview.webrtc.org/2469993003
Cr-Commit-Position: refs/heads/master@{#16048}
2017-01-13 13:57:25 +00:00
c5da08fc12 Drop dependency to Chromium in WebRtcJniBootTest.
The dependency breaks a build downstream.

BUG=None

Review-Url: https://codereview.webrtc.org/2630713002
Cr-Commit-Position: refs/heads/master@{#16047}
2017-01-13 13:56:16 +00:00
61f31ee376 Delete unused rtpdump code in media/base.
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}
2017-01-13 13:55:08 +00:00
ac22f70906 Refactoring of RTCP options in BaseChannel.
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}
2017-01-13 05:59:29 +00:00
f5b251b816 Remove BaseChannel's dependency on TransportController.
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}
2017-01-13 03:37:48 +00:00
d06adf60c1 Make P2PTransportChannel inherit from IceTransportInternal.
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}
2017-01-12 23:58:31 +00:00
21b6cce0c4 Do not report camera disconnected event if Android camera is closing.
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}
2017-01-12 21:05:47 +00:00
566d820e00 Update smoothed bitrate.
BUG=webrtc:6443

Review-Url: https://codereview.webrtc.org/2546493002
Cr-Commit-Position: refs/heads/master@{#16036}
2017-01-12 18:17:38 +00:00
891419f8e8 Treat negative ntp time as unset.
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}
2017-01-12 18:02:22 +00:00
b66129a27e Fix JNI reference leak in MediaCodecVideoEncoder
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}
2017-01-12 14:50:56 +00:00
bca122e0d5 Remove lint ignores and add WrongCall ignore directly to the test.
Also removes some unused strings from AppRTCMobile strings.xml.

BUG=webrtc:6597
TBR=kjellander@webrtc.org

Review-Url: https://codereview.webrtc.org/2628833004
Cr-Commit-Position: refs/heads/master@{#16033}
2017-01-12 14:19:40 +00:00
71b1c1fc1d Rename fec_tables_xor.h -> fec_rate_table.h
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}
2017-01-12 14:16:24 +00:00
ede5da4960 Replace ASSERT by RTC_DCHECK in all non-test code.
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}
2017-01-12 13:15:36 +00:00
59e99b76da Set |_encodedWidth| and |_encodedHeight| in RtpFrameObject.
BUG=chromium:678080

Review-Url: https://codereview.webrtc.org/2622053003
Cr-Commit-Position: refs/heads/master@{#16029}
2017-01-12 11:26:04 +00:00
adf823269b Enable residual echo detector on mobile platforms.
BUG=webrtc:6797

Review-Url: https://codereview.webrtc.org/2625323002
Cr-Commit-Position: refs/heads/master@{#16027}
2017-01-12 10:28:42 +00:00
eb4ca4e823 Replace RTC_DCHECK(false) with RTC_NOTREACHED().
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}
2017-01-12 10:24:27 +00:00
295760daa1 Reland of Android: Add field trial for Intel HW Vp8 encoder (patchset #1 id:1 of https://codereview.webrtc.org/2624143002/ )
Reason for revert:
Fixed external test issues.

Original issue's description:
> Revert of Android: Add field trial for Intel HW Vp8 encoder (patchset #1 id:1 of https://codereview.webrtc.org/2614373004/ )
>
> Reason for revert:
> Breaks external test code.
>
> Original issue's description:
> > Android: Add field trial for Intel HW Vp8 encoder
> >
> > Also enable Intel HW Vp8 encoder by default in AppRTCMobile.
> >
> > BUG=webrtc:6683
> >
> > Review-Url: https://codereview.webrtc.org/2614373004
> > Cr-Commit-Position: refs/heads/master@{#16002}
> > Committed: cecf86e9b0
>
> TBR=sakal@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6683
>
> Review-Url: https://codereview.webrtc.org/2624143002
> Cr-Commit-Position: refs/heads/master@{#16005}
> Committed: c999a08128

TBR=sakal@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6683

Review-Url: https://codereview.webrtc.org/2625903005
Cr-Commit-Position: refs/heads/master@{#16025}
2017-01-12 09:11:57 +00:00
e7b1aabb69 Delete unused file typewrapping.h.pump.
BUG=None

Review-Url: https://codereview.webrtc.org/2621263002
Cr-Commit-Position: refs/heads/master@{#16024}
2017-01-12 09:00:06 +00:00
77dc71f0f5 Remove some Android lint suppressions.
These were the easiest to remove, so let's start with these.

BUG=webrtc:6597
R=magjed@webrtc.org
TBR=kjellander@webrtc.org

Review-Url: https://codereview.webrtc.org/2628563002
Cr-Commit-Position: refs/heads/master@{#16023}
2017-01-12 08:16:56 +00:00
1d3c7e0b16 Move MetricsObserverInterface out of peerconnectioninterface.h
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}
2017-01-12 01:50:30 +00:00
1a9e2108e3 Initial implementation of Android audio recording error handling.
BUG=b/34128648
R=henrika@webrtc.org

Review-Url: https://codereview.webrtc.org/2620453004 .
Cr-Commit-Position: refs/heads/master@{#16017}
2017-01-11 21:00:01 +00:00
293e926362 Reland of: Adding error output param to SetConfiguration, using new RTCError type.
Most notably, will return "INVALID_MODIFICATION" if a field in the
configuration was modified and modification of that field isn't supported.

Also changing RTCError to a class that wraps an enum type, because it will
eventually need to hold other information (like SDP line number), to match
the RTCError that was recently added to the spec:
https://github.com/w3c/webrtc-pc/pull/850

BUG=webrtc:6916

Review-Url: https://codereview.webrtc.org/2587133004
Cr-Original-Commit-Position: refs/heads/master@{#15777}
Committed: 7a5fa6cd61
Review-Url: https://codereview.webrtc.org/2587133004
Cr-Commit-Position: refs/heads/master@{#16016}
2017-01-11 20:28:30 +00:00
6672b26d02 Add overhead to audio bwe min, max.
BUG=webrtc:6762

Review-Url: https://codereview.webrtc.org/2532433002
Cr-Commit-Position: refs/heads/master@{#16014}
2017-01-11 18:17:59 +00:00
e8084706c3 Removes FATAL() from MicrophoneVolumeIsAvailable() on Android.
Trivial change that allows users to call MicrophoneVolumeIsAvailable()
(and get a valid result) on Android without crashing.

TBR=henrik.lundin
BUG=NONE

Review-Url: https://codereview.webrtc.org/2620243003
Cr-Commit-Position: refs/heads/master@{#16013}
2017-01-11 16:59:26 +00:00
e1674efd2d Update Android instrumentation tests to use JUnit4.
BUG=webrtc:6597

Review-Url: https://codereview.webrtc.org/2627043002
Cr-Commit-Position: refs/heads/master@{#16011}
2017-01-11 14:22:56 +00:00
cb79d519fa Update AppRTCMobile tests to use JUnit4.
BUG=webrtc:6597

Review-Url: https://codereview.webrtc.org/2621253002
Cr-Commit-Position: refs/heads/master@{#16010}
2017-01-11 14:21:26 +00:00
c80e741ad0 Replace ASSERT(false) by RTC_NOTREACHED().
This cl was produced by

  git grep -l 'ASSERT(false)' |\
    xargs -n1 sed -i 's/ASSERT(false)/RTC_NOTREACHED()/'

followed by additional includes of base/checks.h in affected files,
git cl format to adjust spacing in webrtc/base/transformadapter.cc.
Finally, to make presubmit happy, one unnamed TODO marker was deleted
in that file.

This is a step towards deletion of base/common.h.

BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2625003003
Cr-Commit-Position: refs/heads/master@{#16009}
2017-01-11 13:56:46 +00:00
10418acb97 Remove backwards compatibilty path for OpenH264 v1.4
Deps have rolled to 1.6, and since no one noticed that the old code path
was broken and wouldn't even compile, I assume no one is using it.
I therefore deem it time to clean away all these nasty ifdefs.

("const kNalHeaderSizeAllocation = 50;" doesn't declare a type)

BUG=chromium:614970

Review-Url: https://codereview.webrtc.org/2622233002
Cr-Commit-Position: refs/heads/master@{#16008}
2017-01-11 13:51:56 +00:00
0ad0de6ef0 Rename incoming_framerate_ to capture_framerate_ in screenshare_layers.
Avoids confusion about the meaning of "incoming".

BUG=webrtc:6897

Review-Url: https://codereview.webrtc.org/2624073003
Cr-Commit-Position: refs/heads/master@{#16007}
2017-01-11 13:01:32 +00:00
bb377517cd RTCMediaStreamTrackStats.ssrcIds removed.
As per recent spec change:
https://github.com/w3c/webrtc-stats/pull/129

BUG=chromium:659137, chromium:627816

Review-Url: https://codereview.webrtc.org/2628573002
Cr-Commit-Position: refs/heads/master@{#16006}
2017-01-11 12:47:23 +00:00
c999a08128 Revert of Android: Add field trial for Intel HW Vp8 encoder (patchset #1 id:1 of https://codereview.webrtc.org/2614373004/ )
Reason for revert:
Breaks external test code.

Original issue's description:
> Android: Add field trial for Intel HW Vp8 encoder
>
> Also enable Intel HW Vp8 encoder by default in AppRTCMobile.
>
> BUG=webrtc:6683
>
> Review-Url: https://codereview.webrtc.org/2614373004
> Cr-Commit-Position: refs/heads/master@{#16002}
> Committed: cecf86e9b0

TBR=sakal@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6683

Review-Url: https://codereview.webrtc.org/2624143002
Cr-Commit-Position: refs/heads/master@{#16005}
2017-01-11 11:02:13 +00:00
ea142f8de3 Don't detect a new frame if a previous packet is used in a previous frame.
In this CL:
 - Removed unused variable |last_seq_num_|.
 - Fixed bug where a new incomplete frame was detected as a complete frame.
 - Added fuzzer to video_coding::PacketBuffer.

BUG=chromium:677101

Review-Url: https://codereview.webrtc.org/2613833003
Cr-Commit-Position: refs/heads/master@{#16003}
2017-01-11 10:01:56 +00:00
cecf86e9b0 Android: Add field trial for Intel HW Vp8 encoder
Also enable Intel HW Vp8 encoder by default in AppRTCMobile.

BUG=webrtc:6683

Review-Url: https://codereview.webrtc.org/2614373004
Cr-Commit-Position: refs/heads/master@{#16002}
2017-01-11 08:57:43 +00:00
284542b882 Make OverheadObserver::OnOverheadChanged count RTP headers only
This lets the RTP code be unaware of lower layers, and the
SetTransportOverhead method is deleted from RTPSender and RtpRtcp.

Instead, that method is added to CongestionController and
TransportFeedbackAdapter, where it is more appropriate.

BUG=wertc:6847

Review-Url: https://codereview.webrtc.org/2589743002
Cr-Commit-Position: refs/heads/master@{#15995}
2017-01-10 16:58:32 +00:00
c0ce6cc85e Android: Wrap webrtc::field_trial::FindFullName in Java
The purpose is to be able to add field trials in Java code.

BUG=webrtc:6683

Review-Url: https://codereview.webrtc.org/2621003002
Cr-Commit-Position: refs/heads/master@{#15994}
2017-01-10 16:02:03 +00:00
af916899cc Move VideoFrame and related declarations to webrtc/api/video.
Moves webrtc/common_video/rotation.h and parts of
webrtc/common_video/include/video_frame_buffer.h and
webrtc/video_frame.h, and adds to a new GN target api:video_frame_api.

BUG=webrtc:5880

Review-Url: https://codereview.webrtc.org/2517173004
Cr-Commit-Position: refs/heads/master@{#15993}
2017-01-10 15:44:26 +00:00