Commit Graph

9048 Commits

Author SHA1 Message Date
7c5304c791 Allow webrtc compilation with stlport
Android has not yet finalized its libc++ build. Allow compilation with
stlport by removing several C++11 library usages.

BUG=427718,487341,webrtc:4866
R=andrew@webrtc.org

Review URL: https://codereview.webrtc.org/1250663007 .

Patch from Jared Duke <jdduke@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#9616}
2015-07-22 20:04:30 +00:00
934119111e Provides log sinks for rotating logs. Intended for use on mobile devices to record call logs.
BUG=4838

Review URL: https://codereview.webrtc.org/1230823009

Cr-Commit-Position: refs/heads/master@{#9615}
2015-07-22 19:12:22 +00:00
f24b2bc48c Modified histogram shell plot script, added python dynamics plot script
Supports:

- bwe_plot.sh
---- Histogram plots
---- Baseline histograms
---- Vertical error lines
---- Dashed horizontal lines
---- Different colors for different algorithms
---- Legends read as input
---- Extra horizontal space in case there are TCP flows plotted
---- Multiple windows
---- Auto vertical scale, except for latency plots which are kept constant for all plots

- plot_dynamics.py
---- Dynamic plots
---- Different colors for different flows and algorithms
---- Dashed line plot for available capacity
---- Throughput, latency and loss on separated boxes

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1237903003 .

Cr-Commit-Position: refs/heads/master@{#9614}
2015-07-22 15:41:14 +00:00
235c35f292 Implement store as an explicit atomic operation.
Using explicit atomic operations permits TSan to understand them and
prevents false positives.

Downgrading the atomic Load to acquire semantics. This reduces the
number of memory barriers inserted from two down to one at most.

Also renaming Load/Store to AcquireLoad/ReleaseStore.

BUG=chromium:512382
R=dvyukov@chromium.org, glider@chromium.org
TBR=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1246073002

Cr-Commit-Position: refs/heads/master@{#9613}
2015-07-22 15:35:04 +00:00
085856cd35 Extend full stack tests with more stats
BUG=
R=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1216613002 .

Cr-Commit-Position: refs/heads/master@{#9612}
2015-07-22 15:18:10 +00:00
d89920b74a Add resolution and fps stats to histograms:
- "WebRTC.Video.InputWidthInPixels"
- "WebRTC.Video.InputHeightInPixels"
- "WebRTC.Video.SentWidthInPixels"
- "WebRTC.Video.SentHeightInPixels"
- "WebRTC.Video.ReceivedWidthInPixels"
- "WebRTC.Video.ReceivedHeightInPixels"
- "WebRTC.Video.RenderFramesPerSecond"

BUG=chromium:512752

Review URL: https://codereview.webrtc.org/1228393008

Cr-Commit-Position: refs/heads/master@{#9611}
2015-07-22 13:52:03 +00:00
65eb1c3df9 Disable testcase NatTcpTest.TestConnectOut
TBR=pthatcher
BUG=webrtc:4863

Review URL: https://codereview.webrtc.org/1248123002

Cr-Commit-Position: refs/heads/master@{#9610}
2015-07-22 13:28:33 +00:00
d60a7993bf Mark WebRTC project as public in luci-config
NOTRY=true
R=kjellander@chromium.org, nodir@chromium.org
BUG=497093

Review URL: https://codereview.webrtc.org/1247793002

Cr-Commit-Position: refs/heads/master@{#9609}
2015-07-22 13:12:18 +00:00
b69ab79338 VideoCapturerAndroid: Add function to change capture format while camera is running
Review URL: https://codereview.webrtc.org/1178703009

Cr-Commit-Position: refs/heads/master@{#9608}
2015-07-22 09:32:04 +00:00
496019c596 If the array size is even, the median should be average of its two middlemost elements.
NADA unittests updated accordingly.

BUG=webrtc:4550
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1246083006 .

Cr-Commit-Position: refs/heads/master@{#9607}
2015-07-22 09:30:36 +00:00
83d6b0c254 Ignore genperf lib in merge_libs.py.
It's built as a part of the chromium build(?), but causes problems with XCode 7's new bitcode intermediate format. It should really never been included, but it never caused link failures before.

BUG=

Review URL: https://codereview.webrtc.org/1236383002

Cr-Commit-Position: refs/heads/master@{#9606}
2015-07-21 19:54:44 +00:00
343714eb06 Fix the problom that on Linux no external audio device can be selected since #9243.
In #9243 we added some thread_checker. But it shouldn't be added into PlayoutDevices() and RecordingDevices(), since these two will be invoked from RecThread and PlayoutThread too, other than the main thread.

BUG=webrtc:4852
TEST=voe_cmd_test
R=henrika@webrtc.org

Review URL: https://codereview.webrtc.org/1249573002 .

Cr-Commit-Position: refs/heads/master@{#9605}
2015-07-21 10:27:52 +00:00
2981945bcf Moved arrray_util include to beamformer.h
Review URL: https://codereview.webrtc.org/1244813003

Cr-Commit-Position: refs/heads/master@{#9604}
2015-07-20 20:22:27 +00:00
8ff04d6b3b Remove UpdateSsrcs from EncoderStateFeedback.
Removes ability to modify set SSRCs from EncoderStateFeedback after
construction.

BUG=webrtc:1695
R=sprang@webrtc.org
TBR=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1241123002

Cr-Commit-Position: refs/heads/master@{#9603}
2015-07-20 15:01:25 +00:00
324d9c9a86 Avoids error message about unknown selected data source for Port iPhone Microphone
TBR=tkchin
BUG=webrtc:4845
TEST=modules_unittests

Review URL: https://codereview.webrtc.org/1237233003 .

Cr-Commit-Position: refs/heads/master@{#9602}
2015-07-20 11:09:34 +00:00
f421bdc68d Fix an NPE when creating TurnPort with a NULL socket.
BUG=4827

Review URL: https://codereview.webrtc.org/1241943002

Cr-Commit-Position: refs/heads/master@{#9601}
2015-07-17 23:22:02 +00:00
be37888b6d Fixing scenario where track is rejected and later un-rejected.
Added `RestartLocalTracks` and `RestartRemoteTracks` methods to
`MediaStreamHandlerContainer` which will redo the track handlers'
initial setup; most importantly, this will re-connect the
renderer/capturer/etc. to a channel which was destroyed and then
re-created.

Also added `AcceptRemoteTracks` method to MediaStreamSignaling, which
does the inverse of `RejectRemoteTracks`. Effectively this will notify
sinks that the track is live again, after previously being set to
`kEnded` when it was rejected.

BUG=webrtc:2136

Review URL: https://codereview.webrtc.org/1231613002

Cr-Commit-Position: refs/heads/master@{#9600}
2015-07-17 17:30:53 +00:00
b947f287a6 Add pcap support to bwe tools. Allow filtering on SSRCs.
Also switches the command line interface to gflags.

Review URL: https://codereview.webrtc.org/1235433005

Cr-Commit-Position: refs/heads/master@{#9599}
2015-07-17 12:27:27 +00:00
fabe2c961f Remove deprecated functions.
This CL removes some functions that are marked as deprecated. Chromium
has been updated in https://crrev.com/7dee3f68b7699ad72c7fc4d75332f72703313849
to call the new functions.

Review URL: https://codereview.webrtc.org/1237613003

Cr-Commit-Position: refs/heads/master@{#9598}
2015-07-16 20:43:27 +00:00
c27d89fdc6 Let WebRtcVideoChannel2::WebRtcVideoSendStream::InputFrame carry the input frame's timestamp to output frame.
Essentially we are carrying over the capture timestamp to the encoded frame sent out, so the frame lengths will contain no noise.

Review URL: https://codereview.webrtc.org/1225153002

Cr-Commit-Position: refs/heads/master@{#9597}
2015-07-16 17:27:23 +00:00
c5d0d95fd8 Ensuring that UDP TURN servers are always used as STUN servers.
This was already working in most cases, but not for some corner cases:
* If the PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is not set
* If both a STUN server and TURN server are configured

I added unit tests for these cases, and centralized the code that gets
STUN server addresses in order to fix these and any related issues.

BUG=webrtc:4215

Review URL: https://codereview.webrtc.org/1215713003

Cr-Commit-Position: refs/heads/master@{#9596}
2015-07-16 17:22:28 +00:00
d848d5e74a Enable cropping window capturing for Win7 when Aero is disabled.
BUG=webrtc:496110
R=sergeyu@chromium.org

Review URL: https://codereview.webrtc.org/1199073002 .

Cr-Commit-Position: refs/heads/master@{#9595}
2015-07-16 15:49:46 +00:00
bd38428089 Don't use result of "field_trial::FindFullName" as string reference.
"field_trial::FindFullName" can return "std::string()" which should not
be referenced by the caller.

Review URL: https://codereview.webrtc.org/1238943003

Cr-Commit-Position: refs/heads/master@{#9594}
2015-07-16 11:06:02 +00:00
a9b4c32052 Nuke buffered latency mode. It's not actually working, and it's not used. It's just dead code complexity.
R=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1226093010 .

Cr-Commit-Position: refs/heads/master@{#9593}
2015-07-16 10:47:39 +00:00
083b73fb95 Use std::string references instead of copying contents.
This CL improves the memory footprint a bit by using string references
instead of creating a copy.

Review URL: https://codereview.webrtc.org/1241973002

Cr-Commit-Position: refs/heads/master@{#9592}
2015-07-16 09:46:43 +00:00
cd6702282a Define Stream base classes
BUG=webrtc:4690

Defined classes Stream, SendStream and ReceiveStream. Inherited existing stream classes from either SendStream or ReceiveStream.
This is a step towards having a Transport associated with streams instead of a Call. It will allow a lot of code in the Call to be media type agnostic.

R=henrika@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1226123005 .

Cr-Commit-Position: refs/heads/master@{#9591}
2015-07-16 07:30:20 +00:00
cddb3676e3 Remove unused metric in overuse detector.
BUG=
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1237963002 .

Cr-Commit-Position: refs/heads/master@{#9590}
2015-07-16 06:08:20 +00:00
f393829434 Use "UDP/TLS/RTP/SAVPF" profile in offer when DTLS-SRTP is used.
Tested that this doesn't break compatibility with Firefox or older
versions of Chrome, no matter which side generates the initial offer.

BUG=webrtc:2796

Review URL: https://codereview.webrtc.org/1219333002

Cr-Commit-Position: refs/heads/master@{#9589}
2015-07-15 19:20:56 +00:00
fb19f49c14 Replaced uint32_t with standard uint16_t for sequence_number variables.
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1232373004 .

Cr-Commit-Position: refs/heads/master@{#9588}
2015-07-15 17:52:18 +00:00
bf40b42af5 Modified Simulation Framework Jitter Model.
Using a right-sided (absolute value), truncated gaussian distribution originally with zero mean.

Currently truncated at x = 3 * std_dev.

Added expected value computation.

Modified jitter unittests accordingly.

BUG=webrtc:4848
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1237303002 .

Cr-Commit-Position: refs/heads/master@{#9587}
2015-07-15 17:47:22 +00:00
8fc7fa798f Base A/V synchronization on sync_labels.
Groups of streams that should be synchronized are signalled through
SDP. These should be used rather than synchronizing the first-added
video stream to the first-added audio stream implicitly.

BUG=webrtc:4667
R=hta@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org
TBR=mflodman@webrtc.org

Review URL: https://codereview.webrtc.org/1181653002

Cr-Commit-Position: refs/heads/master@{#9586}
2015-07-15 15:03:04 +00:00
9c261f2d13 Supports logging for dynamic and histogram plots on Simulation Framework.
---- Dynamic receiving rate.
---- Dynamic packet-loss.
---- Dynamic objective function.
---- Dynamic available capacity.
---- Dynamic available capacity per flow.
---- Average delay Histogram with standard deviation or 5th/95th percentiles.
---- Average bitrate Histogram with error bars.
---- Optimal average bitrate dashed line.
---- Average packet-loss Histogram.
---- Total objective function Histogram.

Added media Pause/Resume methods to Video and TcpSender.
Modified LinkedSet: computing GlobalPacketLossRatio even if packet's sequence_number overflows.
Added small randomization to frame send times, modified bwe_test_framework_unittest accordingly.
Taking offset time into account for plotting.

Added nada_unittests.
Added bwe_unittests.
Added a RateCounter to BweReceiver (replaced ReceivingRate)
Added LossAccount.

Fixed NadaBweReceiver issue: using sender_timestamp instead of creation_time.
Fixed memory leaks.
Fixed int division rounding issues.

Supporting plots on bandwidth Estimators:
Logging received packet information on on SubClassesBweReceiver::ReceivePacket
Updating RateCounter, updating packet loss account and relieving LinkedSet when necessary.

R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1202253003 .

Cr-Commit-Position: refs/heads/master@{#9585}
2015-07-15 14:31:27 +00:00
a4a8d4ad27 Base padding bitrate for an encoder on the bitrate allocated for that encoder, rather than the total bitrate of the channel group.
Review URL: https://codereview.webrtc.org/1231273004

Cr-Commit-Position: refs/heads/master@{#9584}
2015-07-15 11:39:29 +00:00
3258db26ed Split iSAC encoder/decoder: Test more cases (and make sure they work)
This patch tests separate iSAC encoder and decoder in more cases (32
kHz in addition to 16 kHz, and 30 ms adaptive and 60 ms nonadaptive).

In order to handle 32 kHz adaptive, the decoder needs to be told of
the encoder's sample rate (16 kHz worked already because that's the
default). And since we can't set the encoder's frame size without also
setting its bit rate, we need a way to set the decoder's bit rate as
well.

It turned out to be way too messy to continue verifying that the
bandwidth estimator does something reasonable in all these cases,
because it seems it doesn't. So the GetSetBandwidthInfo is now just
responsible for ensuring that split encoder/decoder behaves the same
as conjoined encoder/decoder; the job of verifying that the bandwidth
estimator does its job properly falls on some other test (that doesn't
exist yet).

Review URL: https://codereview.webrtc.org/1225093005

Cr-Commit-Position: refs/heads/master@{#9583}
2015-07-15 01:54:43 +00:00
2d3b7e2173 AppRTCDemo file logging.
Adds logging macros to log logs to a file. Undeletes CircularFileStream
for that purpose.

BUG=
R=jiayl@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1217473011 .

Cr-Commit-Position: refs/heads/master@{#9582}
2015-07-14 19:55:56 +00:00
43e7d3bc15 Avoid overflow in checking for emulation bytes in rbsp.
Also fixed an arithmetic issue where a 0 0 3 at the end of the rbsp would include the 3 (that's not a legal bitstream anyway, so it probably wasn't a real bug, but it was incorrect).

This maintains the underflow fix from an earlier CL (https://codereview.webrtc.org/1219493004/). The overflow fix is virtually impossible to hit (hence no unit tests), but is there for strict correctness.

BUG=

Review URL: https://codereview.webrtc.org/1226203002

Cr-Commit-Position: refs/heads/master@{#9581}
2015-07-14 17:45:07 +00:00
ba8c15b857 Merge methods for configuring NACK/FEC/hybrid.
BUG=webrtc:1695
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1226143013

Cr-Commit-Position: refs/heads/master@{#9580}
2015-07-14 16:36:37 +00:00
caa498abbf Make sure RTCP is sent in tests when receiving packets even if REMB is delayed.
BUG=chromium:509821

Review URL: https://codereview.webrtc.org/1238703002

Cr-Commit-Position: refs/heads/master@{#9579}
2015-07-14 16:14:57 +00:00
ba35d05a49 Cleanup of iOS AudioDevice implementation
TBR=tkchin
BUG=webrtc:4789
TEST=modules_unittests --gtest_filter=AudioDeviceTest* and AppRTCDemo

Review URL: https://codereview.webrtc.org/1206783002 .

Cr-Commit-Position: refs/heads/master@{#9578}
2015-07-14 15:04:19 +00:00
d6f1a38165 Remove ViEChannel simulcast lock.
Since the number of streams is now known on construction we can
initialize all RTP modules on construction. They are internally locked
so we don't nede a simulcast lock anymore.

BUG=1695
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/52639004 .

Cr-Commit-Position: refs/heads/master@{#9577}
2015-07-14 14:08:14 +00:00
4988ca50df Removed unused variables and the need to include the d3dx9.h file.
BUG=webrtc:3667

Review URL: https://codereview.webrtc.org/1232713002

Cr-Commit-Position: refs/heads/master@{#9576}
2015-07-14 12:35:15 +00:00
870eee4b17 Fix simulator issue where chokes didn't apply to non-congested packets.
Review URL: https://codereview.webrtc.org/1235143002

Cr-Commit-Position: refs/heads/master@{#9575}
2015-07-14 10:54:04 +00:00
a03cd3fdef 1. Override and virtual has to be consistent.
2. provide an implementation for SetIceConnectionReceivingTimeout so that Chrome does not complain.

BUG=

Review URL: https://codereview.webrtc.org/1227843006

Cr-Commit-Position: refs/heads/master@{#9574}
2015-07-14 00:08:11 +00:00
6e2ce6e1ae Allow for framerate reduction for HW encoder.
R=pbos@webrtc.org, stefan@webrtc.org
TBR=glaznev@google.com

Review URL: https://webrtc-codereview.appspot.com/51159004 .

Cr-Commit-Position: refs/heads/master@{#9573}
2015-07-13 23:26:40 +00:00
900996290c Add methods to set the ICE connection receiving_timeout values.
BUG=

Review URL: https://codereview.webrtc.org/1231913003

Cr-Commit-Position: refs/heads/master@{#9572}
2015-07-13 19:19:42 +00:00
45d1fdee9d Revert of Fix simulator issue where chokes didn't apply to non-congested packets. (patchset #2 id:20001 of https://codereview.webrtc.org/1233853002/)
Reason for revert:
Breaks bots.

Original issue's description:
> Fix simulator issue where chokes didn't apply to non-congested packets.
>
> R=magalhaesc@google.com
>
> Committed: 662ae00efa

TBR=magalhaesc@webrtc.org,magalhaesc@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1230383003

Cr-Commit-Position: refs/heads/master@{#9571}
2015-07-13 15:37:56 +00:00
662ae00efa Fix simulator issue where chokes didn't apply to non-congested packets.
R=magalhaesc@google.com

Review URL: https://codereview.webrtc.org/1233853002 .

Cr-Commit-Position: refs/heads/master@{#9570}
2015-07-13 15:32:36 +00:00
5d6e58e76e Improvements to rtc::Bind
BUG=webrtc:4690

Support for rtc::scoped_ptr as return type.
Support for up to 6 input parameters.

R=pthatcher@webrtc.org, solenberg@webrtc.org

Review URL: https://codereview.webrtc.org/1226153003 .

Cr-Commit-Position: refs/heads/master@{#9569}
2015-07-13 09:16:47 +00:00
30409b4dca Add statistics gathering for packet loss.
Adds a class used to classify whether packet loss events are a single packet or multiple packets as well as how many packets have been lost. Also exposes a new function in the RtpRtcp interface to retrieve these statistics.

BUG=

Review URL: https://codereview.webrtc.org/1198853004

Cr-Commit-Position: refs/heads/master@{#9568}
2015-07-11 01:10:08 +00:00
ekm
35b72fbceb Add new variance update option and unittests for intelligibility
- New option for computing variance that is more adaptive with lower complexity.
- Fixed related off-by-one errors.
- Added intelligibility unittests.
- Do not enhance if experiencing variance underflow.

R=andrew@webrtc.org, henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1207353002 .

Cr-Commit-Position: refs/heads/master@{#9567}
2015-07-10 21:11:57 +00:00