Commit Graph

11283 Commits

Author SHA1 Message Date
ad7cad8aba An example of Unity native plugin of webrtc for Windows OS
Unity native plugin has to use Pinvoke technology in its APIs
This plugin dll can also be used by Windows C# applications other than
Unity.

BUG=webrtc:7389

Review-Url: https://codereview.webrtc.org/2823783002
Cr-Commit-Position: refs/heads/master@{#18108}
2017-05-11 23:10:03 +00:00
38605965bd Make AudioSinkInterface::Data hold a const pointer to the audio buffer.
This is in preparation for https://codereview.webrtc.org/2750783004/, where
requiring a non-const pointer for AudioSinkInterface would force an unmuting
and zeroing of every frame.

BUG=webrtc:7343

Review-Url: https://codereview.webrtc.org/2873803002
Cr-Commit-Position: refs/heads/master@{#18107}
2017-05-11 20:35:28 +00:00
d2ef314292 Make Call::OnRecoveredPacket parse RTP header and call OnRtpPacket.
To make the distinction for stats, add a |recovered| flag to
RtpPacketReceived.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2693123002
Cr-Commit-Position: refs/heads/master@{#18103}
2017-05-11 15:00:58 +00:00
a8e2c63a99 Add untracked header files to GN targets in audio_coding
BUG=webrtc:7619

Review-Url: https://codereview.webrtc.org/2875033002
Cr-Commit-Position: refs/heads/master@{#18101}
2017-05-11 14:18:06 +00:00
8a329652de DCHECK that we don't insert nullptr into event log.
BUG=None

Review-Url: https://codereview.webrtc.org/2874753003
Cr-Commit-Position: refs/heads/master@{#18100}
2017-05-11 13:05:27 +00:00
2077f2f9fc Add some unit tests to ReceiveStatsticsProxy.
Add logging of some histogram stats at the end of a call.

BUG=none

Review-Url: https://codereview.webrtc.org/2873303002
Cr-Commit-Position: refs/heads/master@{#18099}
2017-05-11 12:37:35 +00:00
712338eed2 Add support for I444 in VideoFrameBuffer
VideoFrameBuffer is currently hard coded to be either I420 or Native.
This CL makes VideoFrameBuffer more generic by moving the I420 specific
functions into their own class, and adds an enum tag that represents the
format and storage type of the buffer. Each buffer type is then
represented as a subclass. See webrtc/api/video/video_frame_buffer.h for
more info.

This CL also adds support for representing I444 in VideoFrameBuffer
using the new interface. Possible future buffer type candidates are
RGB and NV12.

BUG=webrtc:7632
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2847383002
Cr-Commit-Position: refs/heads/master@{#18098}
2017-05-11 12:11:57 +00:00
27ce02eb06 Do not delete temporary directory if user specified it manually.
This prevents user from accidentally specifying a directory that contains
files that the user wants to keep.

BUG=webrtc:7608
NOTRY=True

Review-Url: https://codereview.webrtc.org/2876803002
Cr-Commit-Position: refs/heads/master@{#18096}
2017-05-11 10:36:21 +00:00
e6b16194c7 Add write support for the RtpStreamId and RepairedRtpStreamId header extensions.
BUG=webrtc:7433

Review-Url: https://codereview.webrtc.org/2871813003
Cr-Commit-Position: refs/heads/master@{#18093}
2017-05-11 09:36:32 +00:00
221cc56684 Updating VCM owners to reflect current active persons in the project.
BUG=none
R=asapersson@webrtc.org, brandtr@google.com

Review-Url: https://codereview.webrtc.org/2877713002 .
Cr-Commit-Position: refs/heads/master@{#18091}
2017-05-11 07:28:18 +00:00
0f23fa8768 Disable the residual echo detector in audio mixer.
The audio mixer has a subcomponent called FrameCombiner, which uses an
AudioProcessing instance as a limiter. The limiter smoothly increases
the volume to avoid causing clipping.

The limiter was created in a default configuration causing the
ResidualEchoDetector submodule of AudioProcessing to be
activated. That submodule operates in the band-split domain (see
AudioProcessingImpl::ApmSubmoduleStates::RenderMultiBandSubModulesActive()).

There is a goal to remove the (expensive and unnecessary)
band-splitting from AudioMixer. This change helps accomplish that. (It
can't be done yet, because the actual limiter sub-component of APM
also operates in the band-split domain).

BUG=webrtc:6185

Review-Url: https://codereview.webrtc.org/2875623002
Cr-Commit-Position: refs/heads/master@{#18090}
2017-05-11 07:25:45 +00:00
c4b126d70e Fix audio device excessive logging on Windows
In the windows audio device implementation, play block size should be
number of samples per 10ms times the number of channels. Meanwhile
RequestPlayoutData is expecting number of samples per channel in a
block, and we should pass in the per channel number here to avoid debug
check.

BUG=7627

Review-Url: https://codereview.webrtc.org/2876593003
Cr-Commit-Position: refs/heads/master@{#18088}
2017-05-11 01:08:24 +00:00
b2a318bb8e Configured VCMTiming with sender defining delay times.
BUG=webrtc:7590

Review-Url: https://codereview.webrtc.org/2870823003
Cr-Commit-Position: refs/heads/master@{#18086}
2017-05-10 16:21:33 +00:00
2d9d21f328 Add untracked headers in modules/rtp_rtcp
BUG=webrtc:7623

Review-Url: https://codereview.webrtc.org/2876533003
Cr-Commit-Position: refs/heads/master@{#18085}
2017-05-10 15:41:13 +00:00
b8c55b15a3 Handle padded audio packets correctly
RTP packets can be padded with extra data at the end of the payload. The usable
payload length of the packet should then be reduced with the padding length,
since the padding must be discarded. This was not the case; instead, the entire
payload, including padding data, was forwarded to the audio channel and in the
end to the decoder.

A special case of padding is packets which are empty except for the padding.
That is, they carry no usable payload. These packets are sometimes used for
probing the network and were discarded in
RTPReceiverAudio::ParseAudioCodecSpecific. The result is that NetEq never sees
those empty packets, just the holes in the sequence number series; this can
throw off the target buffer calculations.

With this change, the empty (after removing the padding) packets are let through,
all the way down to NetEq, to a new method called NetEq::InsertEmptyPacket. This
method notifies the DelayManager that an empty packet was received.

BUG=webrtc:7610, webrtc:7625

Review-Url: https://codereview.webrtc.org/2870043003
Cr-Commit-Position: refs/heads/master@{#18083}
2017-05-10 14:38:01 +00:00
423a288a12 Delete left-over declaration of AdjustCurrentProcessPrivilege.
Implementation was deleted in https://codereview.webrtc.org/2571763002.

BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2872303002
Cr-Commit-Position: refs/heads/master@{#18082}
2017-05-10 13:04:45 +00:00
f93752a2ee Reland of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2853383005/ )
Reason for revert:
Downstream projects have been fixed.

Original issue's description:
> Revert of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2854873003/ )
>
> Reason for revert:
> More downstream breakage discovered.
>
> Original issue's description:
> > Reland of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2854883002/ )
> >
> > Reason for revert:
> > Will make another attempt to track down and fix downstream projects.
> >
> > Original issue's description:
> > > Revert of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2852303002/ )
> > >
> > > Reason for revert:
> > > Unfortunately, more downstream updates needed.
> > >
> > > Original issue's description:
> > > > Reland of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2845333002/ )
> > > >
> > > > Reason for revert:
> > > > Downstream projects being updated.
> > > >
> > > > For Chrome, relanding depends on cl
> > > > https://codereview.chromium.org/2855783003/
> > > >
> > > > Original issue's description:
> > > > > Revert of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #17 id:320001 of https://codereview.webrtc.org/2622263002/ )
> > > > >
> > > > > Reason for revert:
> > > > > Broke Chrome build, see, e.g.,
> > > > > http://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/16237
> > > > >
> > > > > Original issue's description:
> > > > > > Delete deprecated and transitional stuff related to video frame refactoring.
> > > > > >
> > > > > > BUG=webrtc:5880
> > > > > >
> > > > > > Review-Url: https://codereview.webrtc.org/2622263002
> > > > > > Cr-Commit-Position: refs/heads/master@{#17928}
> > > > > > Committed: 713a3bbcc7
> > > > >
> > > > > TBR=mflodman@webrtc.org,perkj@webrtc.org
> > > > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > > > NOPRESUBMIT=true
> > > > > NOTREECHECKS=true
> > > > > NOTRY=true
> > > > > BUG=webrtc:5880
> > > > >
> > > > > Review-Url: https://codereview.webrtc.org/2845333002
> > > > > Cr-Commit-Position: refs/heads/master@{#17929}
> > > > > Committed: aec49d2b49
> > > >
> > > > TBR=mflodman@webrtc.org,perkj@webrtc.org
> > > > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > > > BUG=webrtc:5880
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2852303002
> > > > Cr-Commit-Position: refs/heads/master@{#17974}
> > > > Committed: d71ebd70f6
> > >
> > > TBR=mflodman@webrtc.org,perkj@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:5880
> > >
> > > Review-Url: https://codereview.webrtc.org/2854883002
> > > Cr-Commit-Position: refs/heads/master@{#17978}
> > > Committed: 6e6a485a02
> >
> > TBR=mflodman@webrtc.org,perkj@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> >
> > BUG=webrtc:5880
> >
> > Review-Url: https://codereview.webrtc.org/2854873003
> > Cr-Commit-Position: refs/heads/master@{#18006}
> > Committed: 3870a071c4
>
> TBR=mflodman@webrtc.org,perkj@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5880
>
> Review-Url: https://codereview.webrtc.org/2853383005
> Cr-Commit-Position: refs/heads/master@{#18008}
> Committed: 61b22dde13

TBR=mflodman@webrtc.org,perkj@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5880

Review-Url: https://codereview.webrtc.org/2867703002
Cr-Commit-Position: refs/heads/master@{#18081}
2017-05-10 12:25:59 +00:00
48368ad6c6 Fixing video loopback test with encoder factory.
BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2870123002
Cr-Commit-Position: refs/heads/master@{#18079}
2017-05-10 11:06:11 +00:00
e077ee472a Deleted unused method EstimateMTU, and the WinPing class.
BUG=None

Review-Url: https://codereview.webrtc.org/2866183004
Cr-Commit-Position: refs/heads/master@{#18077}
2017-05-10 08:56:54 +00:00
5171a7f58c iOS audio session isInterrupted flag does not get reset correctly:
BUG=webrtc:7605

Review-Url: https://codereview.webrtc.org/2872953002
Cr-Commit-Position: refs/heads/master@{#18072}
2017-05-09 22:09:37 +00:00
c467520fb9 Delete helper class MediaTypePacketReceiver.
Unneeded thanks to cl https://codereview.webrtc.org/2794243002.

BUG=None

Review-Url: https://codereview.webrtc.org/2870713003
Cr-Commit-Position: refs/heads/master@{#18066}
2017-05-09 12:12:00 +00:00
99d9f61ad7 Drop deprecated AudioFrameOperations::Scale method signatures
Context:
https://codereview.webrtc.org/2739073003/diff/280003/webrtc/audio/utility/audio_frame_operations.h
To satisfy cpplint, the signature of the Scale* methods needed to be changed from a reference to a pointer. However, not to break internal users, the old signature was kept temporarily. Now it can be removed because it's not used anymore.

BUG=webrtc:5268

Review-Url: https://codereview.webrtc.org/2861003004
Cr-Commit-Position: refs/heads/master@{#18064}
2017-05-09 09:43:51 +00:00
2e3574dd18 Test for Gradle project generation.
BUG=webrtc:7608

Review-Url: https://codereview.webrtc.org/2858043006
Cr-Commit-Position: refs/heads/master@{#18063}
2017-05-09 09:10:57 +00:00
9e5841a1d8 Moving scripts to download and build apprtc/collider.
We are starting to move code to setup our tests from [1].
We are moving only scripts to download and build apprtc, collider and node
(scripts that work on firefox have not been copied by this CL).

[1] - https://chromium.googlesource.com/chromium/deps/webrtc/webrtc.DEPS/

BUG=webrtc:7602
NOTRY=True

Review-Url: https://codereview.webrtc.org/2861653005
Cr-Commit-Position: refs/heads/master@{#18060}
2017-05-09 07:13:47 +00:00
90fd7d84fd Rename tools-webrtc -> tools_webrtc
This aligns with established naming convention for all
other directories.

BUG=webrtc:7593
NOTRY=True
NOTREECHECKS=True
R=ehmaldonado@webrtc.org, mbonadei@webrtc.org
TBR=henrika@webrtc.org

Review-Url: https://codereview.webrtc.org/2864213004 .
Cr-Commit-Position: refs/heads/master@{#18059}
2017-05-09 06:30:13 +00:00
7cb69d5cc7 This will allow me to test that Call invokes SendSideCongestionController::SetBweBitrates as expected (for https://codereview.chromium.org/2793913008).
FakeRtpTransportController moves to a common header and its constructor is changed to take a SendSideCongestionController to enable injecting the mock.

BUG=webrtc:7395

Review-Url: https://codereview.webrtc.org/2834663003
Cr-Commit-Position: refs/heads/master@{#18055}
2017-05-08 18:52:38 +00:00
966963ac7d Fixing invalid IPv6 address parsing stack underflow on Windows.
Occurred when parsing an address with more than 7 colons. For example:
1::2:3:4:5:6:7::8

BUG=webrtc:7592

Review-Url: https://codereview.webrtc.org/2867653002
Cr-Commit-Position: refs/heads/master@{#18054}
2017-05-08 18:35:56 +00:00
90bdb3d138 Make WebRtcAudioEffects and its create method public.
This allows it to be reused with Android AudioRecords created outside
WebRtcAudioRecord.  WebRtcAudioEffects provides useful methods for enabling
hardware effects (such as echo cancellation) only on appropriate devices.  It
also allows some control of these effects through WebRtcAudioUtils.

BUG=webrtc:7448

Review-Url: https://codereview.webrtc.org/2786603004
Cr-Commit-Position: refs/heads/master@{#18053}
2017-05-08 17:21:30 +00:00
3f580e24cc Delete unused class SharedExclusiveLock.
Unused since cl https://codereview.webrtc.org/2828223002/

BUG=webrtc:7501

Review-Url: https://codereview.webrtc.org/2865083002
Cr-Commit-Position: refs/heads/master@{#18050}
2017-05-08 13:24:29 +00:00
e61103dc6c Don't add or rename files in webrtc/ and webrtc/api/ without a proper review
NOTRY=true
BUG=none

Review-Url: https://codereview.webrtc.org/2862343002
Cr-Commit-Position: refs/heads/master@{#18049}
2017-05-08 13:01:54 +00:00
3149e09156 Actually move CoreVideoFrameBuffer from webrtc/common_video/ to webrtc/sdk/objc/
The previous reland https://codereview.webrtc.org/2860033002/ didn't
actually move CoreVideoFrameBuffer because of a rebase mistake. This CL
moves the files.

BUG=None

Review-Url: https://codereview.webrtc.org/2864303002
Cr-Commit-Position: refs/heads/master@{#18048}
2017-05-08 12:32:05 +00:00
7eaa4ea75f Delete method MessageQueue::set_socketserver
Instead, make the pointer to the associated socket server a
construction time const, and delete its lock.

Introduces a helper class AutoSocketServerThread for code
(mainly tests) which need a socket server associated with
the current thread.

BUG=webrtc:7501

Review-Url: https://codereview.webrtc.org/2828223002
Cr-Commit-Position: refs/heads/master@{#18047}
2017-05-08 12:25:41 +00:00
528b7931f8 Update comments for removal of MediaController.
Comment-only changes.

TBR=deadbeef@webrtc.org
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2869703002
Cr-Commit-Position: refs/heads/master@{#18045}
2017-05-08 10:21:43 +00:00
fc0acc44e6 Remove deprecated API
BUG=none

Review-Url: https://codereview.webrtc.org/2865663002
Cr-Commit-Position: refs/heads/master@{#18044}
2017-05-08 09:59:38 +00:00
32f2505185 Refactor TestClient to use std::unique_ptr, and fix VirtualSocketServerTest leaks.
BUG=None

Review-Url: https://codereview.webrtc.org/2859373003
Cr-Commit-Position: refs/heads/master@{#18043}
2017-05-08 08:57:18 +00:00
7145280954 Unflaking PeerConnectionIntegrationTest.DtmfSenderObserver.
The test attempted to call InsertDtmf before verifying that the DTLS
handshake was complete. Unlike a data channel, the DTMF sender doesn't
do any buffering, so this isn't reliable.

BUG=webrtc:7547
NOTRY=True

Review-Url: https://codereview.webrtc.org/2855573004
Cr-Commit-Position: refs/heads/master@{#18041}
2017-05-08 00:21:01 +00:00
610800baa7 Add myself as OWNER of webrtc/api/ and webrtc/base/
I'm already a root OWNER, but people tend to pick reviewers from the
most specific OWNERS file, so I should probably be in these two.

NOTRY=true
BUG=none

Review-Url: https://codereview.webrtc.org/2869443002
Cr-Commit-Position: refs/heads/master@{#18038}
2017-05-05 21:04:54 +00:00
e2d8c01ba3 Create an OWNERS file in webrtc/api/audio_codecs/
So that it's easier to find the right reviewers.

NOTRY=true
BUG=none

Review-Url: https://codereview.webrtc.org/2860093005
Cr-Commit-Position: refs/heads/master@{#18037}
2017-05-05 19:41:15 +00:00
121cabbaa6 Fix webrtcsdp_unittest.
The test contained an invalid IPv6 address. It should have ":" instead of "::" as separation.

BUG=webrtc:7565

Review-Url: https://codereview.webrtc.org/2868453002
Cr-Commit-Position: refs/heads/master@{#18035}
2017-05-05 19:04:36 +00:00
299c8e0161 When a data channel fails to be created, return nil instead of crashing.
BUG=webrtc:4619

Review-Url: https://codereview.webrtc.org/2860353002
Cr-Commit-Position: refs/heads/master@{#18034}
2017-05-05 17:00:18 +00:00
8f94cd3419 Prevent residual echo likelihood values greater than 1.0.
The residual echo likelihood should report a likelihood between 0.0 and 1.0. Currently it can happen that echo likelihoods > 1.0 are reported. As a temporary mitigation to stop this, this CL enforces a hard maximum of 1.0 for the echo likelihood while we investigate the issue further.

BUG=b/38014838

Review-Url: https://codereview.webrtc.org/2861123002
Cr-Commit-Position: refs/heads/master@{#18030}
2017-05-05 12:50:10 +00:00
2979f55f95 NetEq: Fix a bug in expand_rate and speech_expand_rate calculation
After a Merge operation, the statistics for number of samples
generated using Expand must be corrected, and the correction can in
fact be negative. However, a bug was introduced in
https://codereview.webrtc.org/1230503003 which uses a size_t to
represent the correction, which leads to wrap-around of the negative
value. This is not a problem in itself, since this value is added to
another size_t, with the effect that the desired subtraction happens
anyway.

The actual problem arises if the statistics are polled/reset before a
subtraction happens -- that is, between an Expand and a Merge
operation. This will lead to an actual wrap-around of the stats value,
and large expand_rate (16384) is reported.

BUG=webrtc:7554

Review-Url: https://codereview.webrtc.org/2859483005
Cr-Commit-Position: refs/heads/master@{#18029}
2017-05-05 12:04:16 +00:00
eaabdf6259 Delete MediaController class, move Call ownership to PeerConnection.
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2794943002
Cr-Commit-Position: refs/heads/master@{#18026}
2017-05-05 09:23:02 +00:00
999445a1bb Blacklisting of HW-AEC/NS and OpenSL must now be done by the WebRTC client.
BUG=NONE

Review-Url: https://codereview.webrtc.org/2858263002
Cr-Commit-Position: refs/heads/master@{#18025}
2017-05-05 09:03:32 +00:00
bac4c8013f Add support for media recorders in Camera1Capturer.
BUG=b/36684011

Review-Url: https://codereview.webrtc.org/2861893003
Cr-Commit-Position: refs/heads/master@{#18024}
2017-05-05 08:48:48 +00:00
ea12f4c5e8 Make fps NSInteger in startCaptureWithDevice.
This is better in line with Obj-C design guidelines.

BUG=None

Review-Url: https://codereview.webrtc.org/2862493003
Cr-Commit-Position: refs/heads/master@{#18023}
2017-05-05 07:45:30 +00:00
70719a773d Fixing pseudotcp_parser_fuzzer crash with NO_MAIN_THREAD_WRAPPING.
The test was trying to solve this problem already with AutoThread, but
the order of variable declaration was causing it to be created after
"rtc::Thread::Current()" was already called.

BUG=chromium:701262
TBR=pbos@webrtc.org

Review-Url: https://codereview.webrtc.org/2858343002
Cr-Commit-Position: refs/heads/master@{#18019}
2017-05-04 19:16:28 +00:00
d1d247fa3c Don't initiate perodic probing if we don't have a bandwidth estimate.
BUG=webrtc:7582

Review-Url: https://codereview.webrtc.org/2861673006
Cr-Commit-Position: refs/heads/master@{#18018}
2017-05-04 15:35:52 +00:00
51f083ccb2 Remove layer_sync from TL frame config.
This is instead derived from pattern_idx inside the frame config.

This also removes active_layer_ use from
ScreenshareLayers::PopulateCodecSpecific and instead ties the layer to
TemporalLayers::FrameConfig.

BUG=chromium:702017, webrtc:7349
R=sprang@webrtc.org

Review-Url: https://codereview.webrtc.org/2860063002
Cr-Commit-Position: refs/heads/master@{#18017}
2017-05-04 13:39:04 +00:00
02739d9149 NetEqTest: Extend the callback structure
This change allows more callbacks to be registered to the test object.
The callbacks are used to give the user of the test object the ability
to instrument the test object. This CL specifically adds
instrumentation points just after a packet is inserted into NetEq, and
just after audio is pulled out of NetEq.

BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2851383004
Cr-Commit-Position: refs/heads/master@{#18014}
2017-05-04 13:09:06 +00:00