11193 Commits

Author SHA1 Message Date
philipel
8c61924b56 video_coding::PacketBuffer now group all H264 packets with the same timestamp into the same frame.
Since we can't know when a H264 frame really starts we instead group all packets together by timestamp when a frame seems to be complete (only in the case of H264).

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2675693002
Cr-Commit-Position: refs/heads/master@{#16419}
2017-02-02 16:51:29 +00:00
ehmaldonado
1dffc62843 Remove all occurrences of "using std::string".
BUG=webrtc:7104
NOTRY=True

Review-Url: https://codereview.webrtc.org/2675723002
Cr-Commit-Position: refs/heads/master@{#16418}
2017-02-02 16:10:00 +00:00
stefan
e372d3c519 Add event log visualization of rtp timestamps over time.
BUG=None

Review-Url: https://codereview.webrtc.org/2658073002
Cr-Commit-Position: refs/heads/master@{#16417}
2017-02-02 16:04:18 +00:00
michaelt
a55f021d43 Add 120ms frame ability to ANA
BUG=webrtc:7093

Review-Url: https://codereview.webrtc.org/2669733002
Cr-Commit-Position: refs/heads/master@{#16416}
2017-02-02 15:47:19 +00:00
solenberg
ed01647ea9 Remove bad DCHECK added as part of https://codereview.webrtc.org/2452163004/
BUG=webrtc:4690
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2668413005
Cr-Commit-Position: refs/heads/master@{#16415}
2017-02-02 12:23:24 +00:00
stefan
b33eed2e42 Fix perf issue when timinig out receiver infos in RTCP.
BUG=b/33270241

Review-Url: https://codereview.webrtc.org/2664163002
Cr-Commit-Position: refs/heads/master@{#16414}
2017-02-02 11:57:02 +00:00
nisse
cc99bc25d8 Change StunMessage::AddAttribute return type from bool to void.
Proper error handling was missing, using VERIFY to crash in debug
builds, while release builds would ignore the error and leak the
attribute memory. The check of attribute type consistency was changed
to a RTC_DCHECK.

Also removes a large number of uses of the deprecated VERIFY macro.

BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2665343002
Cr-Commit-Position: refs/heads/master@{#16413}
2017-02-02 09:31:30 +00:00
sakal
f7826d668a Remove InlinedApi lint ignore.
Adds ignore for all lint errors in Chromium code. Changes minimum SDK for
instrumentation tests to 16 from 14. Adds TargetApi annotations.

BUG=webrtc:6597

Review-Url: https://codereview.webrtc.org/2670473004
Cr-Commit-Position: refs/heads/master@{#16412}
2017-02-02 08:53:33 +00:00
kjellander
a29d5ec613 Make 'webrtc' target a complete static library on Linux, Android and Windows
It's currently not possible on Mac and iOS due to libtool. See webrtc:6418
for more info.

BUG=webrtc:6418
NOTRY=True

Review-Url: https://codereview.webrtc.org/2367313002
Cr-Commit-Position: refs/heads/master@{#16411}
2017-02-02 07:51:13 +00:00
deadbeef
24af66397e Adding Java wrapper for DtmfSender.
BUG=webrtc:4180

Review-Url: https://codereview.webrtc.org/2666873002
Cr-Commit-Position: refs/heads/master@{#16410}
2017-02-02 05:53:09 +00:00
deadbeef
20cb0c1c85 Move DTMF sender to RtpSender (as opposed to WebRtcSession).
Previously in the spec, there was a createDtmfSender method on
PeerConnection, but that's been replaced by a "dtmf" attribute
on RtpSender, which allows getting a DTMF sender without having
an audio track.

This also simplifies the code slightly, since tracks are now not
necessary for identification.

BUG=webrtc:4180

Review-Url: https://codereview.webrtc.org/2666853002
Cr-Commit-Position: refs/heads/master@{#16409}
2017-02-02 04:27:00 +00:00
minyue
2e03c66119 Adding build switch for Opus that supports 120ms ptime.
BUG=webrtc:7097

TEST=Set "ptime=120", try WebRTC calls over custom build Chromium with and without Opus 120ms. Try both Chromium w <-> Chromium w and Chromium w <-> Chromium w/o

Review-Url: https://codereview.webrtc.org/2668633004
Cr-Commit-Position: refs/heads/master@{#16408}
2017-02-02 01:31:11 +00:00
deadbeef
d3d3ba5159 Revert of Enable audio streams to send padding. (patchset #4 id:60001 of https://codereview.webrtc.org/2652893004/ )
Reason for revert:
Speculatively reverting, since Android end-to-end tests (such as https://build.chromium.org/p/client.webrtc/builders/Android64%20%28M%20Nexus5X%29) started failing.

Original issue's description:
> Enable audio streams to send padding.
>
> Useful if bitrate probing is to be used with audio streams.
>
> BUG=webrtc:7043
>
> Review-Url: https://codereview.webrtc.org/2652893004
> Cr-Commit-Position: refs/heads/master@{#16404}
> Committed: e35f89a484

TBR=mflodman@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7043

Review-Url: https://codereview.webrtc.org/2669033003
Cr-Commit-Position: refs/heads/master@{#16407}
2017-02-01 23:45:53 +00:00
stefan
e35f89a484 Enable audio streams to send padding.
Useful if bitrate probing is to be used with audio streams.

BUG=webrtc:7043

Review-Url: https://codereview.webrtc.org/2652893004
Cr-Commit-Position: refs/heads/master@{#16404}
2017-02-01 17:06:25 +00:00
sprang
b1ca073db4 Rename adaptation api methods, extended vie_encoder unit test.
Use AdaptDown/AdaptUp instead of ScaleDown/ScaleUp, since we may want to
adapt using other means than resolution.

Also, extend vie_encoder with unit test that actually uses frames scaled
to resolution as determined by VideoAdapter, since that seems to be the
default implementation.

BUG=webrtc:4172

Review-Url: https://codereview.webrtc.org/2652893015
Cr-Commit-Position: refs/heads/master@{#16402}
2017-02-01 16:38:12 +00:00
elad.alon
d83b9670a6 Replace consecutive-losses count by a calculation of first-order-FEC recoverability.
Note:
* PLR is calculated over all of the known packets.
* RPLR is calculated over all of the known packet *pairs*. That is, only over sets of subsequent packets where the reception status is known for both.

BUG=webrtc:7058

Review-Url: https://codereview.webrtc.org/2629883003
Cr-Commit-Position: refs/heads/master@{#16401}
2017-02-01 16:36:09 +00:00
nisse
14245cc939 Revert of Always call RemoteBitrateEstimator::IncomingPacket from Call. (patchset #9 id:160001 of https://codereview.webrtc.org/2659563002/ )
Reason for revert:
This change causes excessive logging when running tests, and possibly also broke perf tests, see https://build.chromium.org/p/client.webrtc.perf/builders/Linux%20Trusty/builds/1040/steps/webrtc_perf_tests/logs/stdio

Original issue's description:
> Always call RemoteBitrateEstimator::IncomingPacket from Call.
>
> Delete the calls from RtpStreamReceiver (for video) and
> AudioReceiveStream.
>
> BUG=webrtc:6847
>
> Review-Url: https://codereview.webrtc.org/2659563002
> Cr-Commit-Position: refs/heads/master@{#16393}
> Committed: 6d4dd593a8

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

Review-Url: https://codereview.webrtc.org/2668973003
Cr-Commit-Position: refs/heads/master@{#16400}
2017-02-01 16:10:36 +00:00
terelius
77f0580f83 Add new step graph type to event log visualization tool. Currently used for bitrate estimate and accumulated packet count, but could in general be used for any metric that is piecewise constant.
BUG=None

Review-Url: https://codereview.webrtc.org/2653343004
Cr-Commit-Position: refs/heads/master@{#16399}
2017-02-01 14:34:53 +00:00
stefan
099110cf4b Don't send audio packets if the network is down.
BUG=webrtc:7083

Review-Url: https://codereview.webrtc.org/2664213002
Cr-Commit-Position: refs/heads/master@{#16397}
2017-02-01 11:57:42 +00:00
aleloi
4637b6afca Consistent 30% improvement in audio mixer running time.
(Or, in less flattering terms, fixing a performance issue introduced
a few months ago by me).

In GN release mode (is_debug = false), the version of the mixer code
before this CL generated code that multiplied each sample (tens of
thousands/second for each input stream) with a floating point number.
This number is almost always exactly 1.0f. The only situation when it's
not 1 is when an audio steam is added or removed.

For one input stream early return leads to a 30% improvement of audio
mixing time profiled on x86-64 under a release build (is_debug = false,
enable_profiling, enable_full_stack_frames_for_profiling) with 16kHz and no
APM limiter. There can be up to 3 streams.

BUG=chromium:687502

Review-Url: https://codereview.webrtc.org/2659423002
Cr-Commit-Position: refs/heads/master@{#16396}
2017-02-01 11:43:31 +00:00
minyue
35fc2aa82f Revert of Drop frames until specified bitrate is achieved. (patchset #12 id:240001 of https://codereview.webrtc.org/2630333002/ )
Reason for revert:
due to failures on perf tests (not on perf stats, but fails running due to dcheck failures), see e.g., https://build.chromium.org/p/client.webrtc.perf/builders/Android32%20Tests%20(K%20Nexus5)

Original issue's description:
> Drop frames until specified bitrate is achieved.
>
> This CL fixes a regression introduced with the new quality scaler
> where the video would no longer start in a scaled mode. This CL adds
> code that compares incoming captured frames to the target bitrate,
> and if they are found to be too large, they are dropped and sinkWants
> set to a lower resolution. The number of dropped frames should be low
> (0-4 in most cases) and should not introduce a noticeable delay, or
> at least should be preferrable to having the first 2-4 seconds of video
> have very low quality.
>
> BUG=webrtc:6953
>
> Review-Url: https://codereview.webrtc.org/2630333002
> Cr-Commit-Position: refs/heads/master@{#16391}
> Committed: 83399caec5

TBR=perkj@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,kthelgason@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6953

Review-Url: https://codereview.webrtc.org/2666303002
Cr-Commit-Position: refs/heads/master@{#16395}
2017-02-01 11:14:00 +00:00
nisse
6d4dd593a8 Always call RemoteBitrateEstimator::IncomingPacket from Call.
Delete the calls from RtpStreamReceiver (for video) and
AudioReceiveStream.

BUG=webrtc:6847

Review-Url: https://codereview.webrtc.org/2659563002
Cr-Commit-Position: refs/heads/master@{#16393}
2017-02-01 11:06:58 +00:00
oprypin
803dc29bb6 Enable cpplint and fix cpplint errors in webrtc/api
Adding 'explicit' to these constructors has a low risk of causing
compatibility problems:
explicit RTCConfiguration(RTCConfigurationType type)
explicit IdBase(StatsType type)

BUG=webrtc:5267
TESTED=Fixed issues reported by:
find webrtc/api -type f -name *.cc -o -name *.h | xargs cpplint.py
followed by 'git cl presubmit'.

Review-Url: https://codereview.webrtc.org/2663063003
Cr-Commit-Position: refs/heads/master@{#16392}
2017-02-01 09:55:59 +00:00
kthelgason
83399caec5 Drop frames until specified bitrate is achieved.
This CL fixes a regression introduced with the new quality scaler
where the video would no longer start in a scaled mode. This CL adds
code that compares incoming captured frames to the target bitrate,
and if they are found to be too large, they are dropped and sinkWants
set to a lower resolution. The number of dropped frames should be low
(0-4 in most cases) and should not introduce a noticeable delay, or
at least should be preferrable to having the first 2-4 seconds of video
have very low quality.

BUG=webrtc:6953

Review-Url: https://codereview.webrtc.org/2630333002
Cr-Commit-Position: refs/heads/master@{#16391}
2017-02-01 09:31:52 +00:00
deadbeef
dc20e26594 Use correct calling convention for CreateThread callback on Windows.
It appears that thread.cc was the only thing in the webrtc codebase that was
doing this incorrectly (platform_thread.cc, for instance, is ok).

BUG=chromium:687251

Review-Url: https://codereview.webrtc.org/2668693005
Cr-Commit-Position: refs/heads/master@{#16387}
2017-01-31 23:10:44 +00:00
perkj
ac61b745df Refactor FakeAudioDevice to have separate methods for starting recording and playout.
Also, change FakeAudioDevice to generate a sine tone instead of using a file.

TBR=henrika@webrtc.org, stefan@webrtc.org

BUG=webrtc:7080

Review-Url: https://codereview.webrtc.org/2652803002
Cr-Commit-Position: refs/heads/master@{#16385}
2017-01-31 21:32:49 +00:00
philipel
1c056254a6 Fix race condition in FrameBuffer2
If the frame buffer is cleared while the decoding thread is waiting to acquire
the lock in order to return the |next_frame_it| will be invalidated.

BUG=chromium:679306

Review-Url: https://codereview.webrtc.org/2668743002
Cr-Commit-Position: refs/heads/master@{#16384}
2017-01-31 17:53:12 +00:00
michaelt
54340d8e75 Change opus min bitrate.
BUG=webrtc:7087

Review-Url: https://codereview.webrtc.org/2668693003
Cr-Commit-Position: refs/heads/master@{#16383}
2017-01-31 17:06:53 +00:00
stefan
7f08e82251 Fix per regression in probing.
BUG=chromium:687030

Review-Url: https://codereview.webrtc.org/2664193002
Cr-Commit-Position: refs/heads/master@{#16381}
2017-01-31 15:49:28 +00:00
oprypin
6fb4f5696d Reland of move usage of deprecated g_type_init API (patchset #1 id:1 of https://codereview.webrtc.org/2666103002/ )
Reason for revert:
Relanding because breakage was not related to this change.

Original issue's description:
> Revert of Remove usage of deprecated g_type_init API (patchset #1 id:1 of https://codereview.webrtc.org/2660823003/ )
>
> Reason for revert:
> Reverting due to internal breakage. Will investigate and re-land
>
> Original issue's description:
> > Remove usage of deprecated g_type_init API
> >
> > BUG=webrtc:7024
> >
> > Review-Url: https://codereview.webrtc.org/2660823003
> > Cr-Commit-Position: refs/heads/master@{#16376}
> > Committed: b2caab7f60
>
> TBR=kjellander@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:7024
>
> Review-Url: https://codereview.webrtc.org/2666103002
> Cr-Commit-Position: refs/heads/master@{#16379}
> Committed: d1685ab547

TBR=kjellander@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:7024

Review-Url: https://codereview.webrtc.org/2666923002
Cr-Commit-Position: refs/heads/master@{#16380}
2017-01-31 14:50:14 +00:00
oprypin
d1685ab547 Revert of Remove usage of deprecated g_type_init API (patchset #1 id:1 of https://codereview.webrtc.org/2660823003/ )
Reason for revert:
Reverting due to internal breakage. Will investigate and re-land

Original issue's description:
> Remove usage of deprecated g_type_init API
>
> BUG=webrtc:7024
>
> Review-Url: https://codereview.webrtc.org/2660823003
> Cr-Commit-Position: refs/heads/master@{#16376}
> Committed: b2caab7f60

TBR=kjellander@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:7024

Review-Url: https://codereview.webrtc.org/2666103002
Cr-Commit-Position: refs/heads/master@{#16379}
2017-01-31 14:09:30 +00:00
elad.alon
0fe1216c9c Move more calls to webrtc::field_trial::FindFullName into ctor, thereby minimizing the non-trivial cost of repeated string comparisons.
BUG=webrtc:7059

Review-Url: https://codereview.webrtc.org/2657863002
Cr-Commit-Position: refs/heads/master@{#16378}
2017-01-31 13:48:37 +00:00
oprypin
b2caab7f60 Remove usage of deprecated g_type_init API
BUG=webrtc:7024

Review-Url: https://codereview.webrtc.org/2660823003
Cr-Commit-Position: refs/heads/master@{#16376}
2017-01-31 13:16:13 +00:00
solenberg
3ebbcb528b Stop using VoEVideoSync in Call/VideoReceiveStream.
BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2452163004
Cr-Commit-Position: refs/heads/master@{#16375}
2017-01-31 11:58:40 +00:00
nisse
63b14b7d15 Add override declarations to PeerConnectionObserver subclasses, and delete obsolete methods.
BUG=None

Review-Url: https://codereview.webrtc.org/2660223002
Cr-Commit-Position: refs/heads/master@{#16374}
2017-01-31 11:34:01 +00:00
kwiberg
1e4e8cb43d Add CreatePeerConnectionFactory overloads that take audio codec factory args
BUG=5805

Review-Url: https://codereview.webrtc.org/2653343003
Cr-Commit-Position: refs/heads/master@{#16371}
2017-01-31 09:48:08 +00:00
nisse
7ce109acd3 Replace the easy cases of VERIFY usage.
BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2652653012
Cr-Commit-Position: refs/heads/master@{#16370}
2017-01-31 08:57:56 +00:00
mbonadei
96a9fa0291 Removing webrtc/build folder
This is the last CL in webrtc:7030, we have moved all the content
of the folder and we can get rid of it.

BUG=webrtc:7030
TBR=stefan@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2661503004
Cr-Commit-Position: refs/heads/master@{#16369}
2017-01-31 08:53:25 +00:00
kwiberg
c14b7ed479 iSAC float decoder: Don't read past end of initialized part of buffer
We read past the end of the initialized part of the buffer, seemingly
on purpose (no one knows the details of this code anymore). The right
thing to do is probably to zero that part of the buffer.

(The *right* right thing to would be to rewrite this so that it was
easier to see what data was supposed to be where when, but
priorities...)

BUG=chromium:683040

Review-Url: https://codereview.webrtc.org/2659383002
Cr-Commit-Position: refs/heads/master@{#16365}
2017-01-30 20:17:05 +00:00
minyue
a6a6d65278 Instantly pass network changes to controllers in audio network adaptor.
This allows controllers to do internal logic upon the network metric changes, e.g., filtering.

BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2643133003
Cr-Commit-Position: refs/heads/master@{#16363}
2017-01-30 18:50:00 +00:00
terelius
4c9b4af53a Compute packet loss for event log visualization similar to how it is defined in RFC 3550.
The main difference to the old computation is that the expected number of packets during an interval is now computed as the change in highest sequence number encountered, rather than the sequence number difference between the first and last packet in the interval.

BUG=webrtc:7046

Review-Url: https://codereview.webrtc.org/2656333002
Cr-Commit-Position: refs/heads/master@{#16361}
2017-01-30 16:44:51 +00:00
ossu
aa4b0775aa Simplify IsFmtpParam according to RFC 4855.
This should help pave the way for injectable audio codecs, since
external implementations need to be able to signal arbitrary fmtp
parameters.

BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2661453003
Cr-Commit-Position: refs/heads/master@{#16360}
2017-01-30 15:41:18 +00:00
kwiberg
a6ca518dd5 iSAC: Untangle some cyclic dependencies
BUG=webrtc:6828, webrtc:7042

Review-Url: https://codereview.webrtc.org/2656823005
Cr-Commit-Position: refs/heads/master@{#16358}
2017-01-30 13:28:54 +00:00
ehmaldonado
9cbb0a16e5 Reland of GN: Refactor modules_unittests to eliminate package boundary violations. (patchset #1 id:1 of https://codereview.webrtc.org/2651023005/ )
Reason for revert:
Will change the name from bwe_simulator to bwe_simulator_test.

Original issue's description:
> Revert of GN: Refactor modules_unittests to eliminate package boundary violations. (patchset #4 id:130001 of https://codereview.webrtc.org/2649563002/ )
>
> Reason for revert:
> Did break the bots.
> https://build.chromium.org/p/client.webrtc/builders/iOS32%20Release/builds/9807
>
> Original issue's description:
> > GN: Refactor modules_unittests to eliminate package boundary violations.
> >
> > Also move bwe_simulator to webrtc/modules/remote_bitrate_estimator
> >
> > BUG=webrtc:6954
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2649563002
> > Cr-Commit-Position: refs/heads/master@{#16270}
> > Committed: 36cb55d715
>
> TBR=kjellander@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6954
>
> Review-Url: https://codereview.webrtc.org/2651023005
> Cr-Commit-Position: refs/heads/master@{#16271}
> Committed: 3373eaa577

R=kjellander@webrtc.org
NOTRY=true
BUG=webrtc:6954

Review-Url: https://codereview.webrtc.org/2653173003
Cr-Commit-Position: refs/heads/master@{#16356}
2017-01-30 11:07:03 +00:00
nisse
1c0dea8675 Delete VideoFrame::set_render_time_ms.
Also mark the render_time_ms getter function and the ntp timestamp
as deprecated.

BUG=webrtc:6977

Review-Url: https://codereview.webrtc.org/2633493002
Cr-Commit-Position: refs/heads/master@{#16354}
2017-01-30 10:43:18 +00:00
agouaillard
a26330ac6f Only define NO_RETURN if undefined
WebRTC's NO_RETURN definition conflicts with WebKit's. This can be avoided by
only defining it if not already defined.

BUG=webrtc:7054

Review-Url: https://codereview.webrtc.org/2657823004
Cr-Commit-Position: refs/heads/master@{#16353}
2017-01-30 08:54:19 +00:00
magjed
93f01be4fd Android AppRTCMobile: Fix SDP video codec reordering for multiple H264 profiles
Since we can now have multiple H264 payload type, we need to move all of them to the beginning of the codec list, instead of greedily taking the first payload type that matches the preferred codec name.

BUG=webrtc:6738

Review-Url: https://codereview.webrtc.org/2658573009
Cr-Commit-Position: refs/heads/master@{#16349}
2017-01-29 23:14:17 +00:00
philipel
bd26ba7c8b Only update VCMTiming on every received frame instead of every received packet.
BUG=webrtc:5514, chromium:682636

Review-Url: https://codereview.webrtc.org/2663513003
Cr-Commit-Position: refs/heads/master@{#16345}
2017-01-29 12:04:47 +00:00
glaznev
0c1d060b24 Enable Android H264 High profile decoder
Based on Magnus's
https://codereview.webrtc.org/2646423002/

BUG=webrtc:6337

Review-Url: https://codereview.webrtc.org/2654003005
Cr-Commit-Position: refs/heads/master@{#16332}
2017-01-27 20:24:24 +00:00
stefan
16b02211a9 Prioritize video packets when sending padding or preemptive retransmits.
Video modules are added in reverse order to ensure that the padding order is the same as before, prioritizing high resolution streams.

BUG=webrtc:7043

Review-Url: https://codereview.webrtc.org/2655033002
Cr-Commit-Position: refs/heads/master@{#16329}
2017-01-27 15:12:16 +00:00