Commit Graph

13052 Commits

Author SHA1 Message Date
d36df89d40 Adding a some checks and switching out a few assert for RTC_[D]CHECK.
These changes are around use of AudioFrame.data_ to help us catch issues earlier since assert() is left out in release builds, including builds with DCHECK enabled.  I've also added a few full-on CHECKs to avoid reading past buffer boundaries or continuing on in a failed state.

BUG=chromium:613482
NOTRY=true
(using notry due to offline android_arm64_rel bot)

Review-Url: https://codereview.webrtc.org/2007563002
Cr-Commit-Position: refs/heads/master@{#12870}
2016-05-24 12:49:10 +00:00
32e80e4b2e Separate out xml dependencies and tests from rtc_unittests into a separate target.
NOTRY=true
(using notry due to offline android_arm64_rel bot)

Review-Url: https://codereview.webrtc.org/2007773003
Cr-Commit-Position: refs/heads/master@{#12869}
2016-05-24 12:48:02 +00:00
48831cd8a4 Remove xmllite and xmpp dependencies from merge_libs.gyp.
I looked around and couldn't find any use of these dependencies.

NOTRY=true
(setting NOTRY since merge_libs.gyp isn't actually referenced by any gyp file, it's only used downstream)

Review-Url: https://codereview.webrtc.org/2007883002
Cr-Commit-Position: refs/heads/master@{#12868}
2016-05-24 12:46:25 +00:00
e23e760643 Integrate QualityScaler into VideoToolboxEncoder.
Improves visual quality and framerate during low bitrates by
dropping resolution.

BUG=webrtc:5678
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12867}
2016-05-24 10:24:14 +00:00
cc1543abf3 Move H264BitstreamParser to video_coding.
Moves parser, used in video_coding/ from rtp_rtcp where it is unused.

BUG=webrtc:5678
R=asapersson@webrtc.org
TBR=glaznev@webrt.org

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

Cr-Commit-Position: refs/heads/master@{#12866}
2016-05-24 10:16:39 +00:00
3ede7be00a Remove xmllite and xmpp dependencies from media.gyp
BUG=

Review-Url: https://codereview.webrtc.org/2008593003
Cr-Commit-Position: refs/heads/master@{#12865}
2016-05-24 09:33:55 +00:00
49c0869825 Revert of Change initial DTLS retransmission timer from 1 second to 50ms. (patchset #2 id:20001 of https://codereview.webrtc.org/1981463002/ )
Reason for revert:
Seems like this CL cause
DtlsTransportChannelTest.TestReceiveClientHelloBeforeRemoteFingerprint
DtlsTransportChannelTest.TestReceiveClientHelloBeforeWritable
to consistently fail on Win DrMemory Full and for
DtlsTransportChannelTest.TestReceiveClientHelloBeforeRemoteFingerprint
DtlsTransportChannelTest.TestReceiveClientHelloBeforeWritable
to consistently fail on Linux Memcheck

Original issue's description:
> Change initial DTLS retransmission timer from 1 second to 50ms.
>
> This will help ensure a timely DTLS handshake when there's packet
> loss. It will likely result in spurious retransmissions (since the
> RTT is usually > 50ms), but since exponential backoff is still used,
> there will at most be ~4 extra retransmissions. For a time-sensitive
> application like WebRTC this seems like a reasonable tradeoff.
>
> R=juberti@chromium.org, juberti@webrtc.org, pthatcher@webrtc.org
>
> Committed: https://crrev.com/1e435628366fb9fed71632369f05928ed857d8ef
> Cr-Commit-Position: refs/heads/master@{#12853}

TBR=pthatcher@webrtc.org,juberti@webrtc.org,juberti@chromium.org,deadbeef@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2002403002
Cr-Commit-Position: refs/heads/master@{#12864}
2016-05-24 08:49:46 +00:00
5ceaaae368 PacketBuffer now can save how many times a packet has been nacked.
Also save size/max nack count in the FrameObject/RtpFrameObject.

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

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

Cr-Commit-Position: refs/heads/master@{#12863}
2016-05-24 08:21:00 +00:00
f1a9a545ff Improved error checking for file errors in RtcEventLog.
Review-Url: https://codereview.webrtc.org/1997393002
Cr-Commit-Position: refs/heads/master@{#12862}
2016-05-24 08:04:02 +00:00
05cdb85012 UI for AppRTC Android demo that doesn't require Design Support Library
For simplicity, this CL removes the need for Design Support Library.
UI is slightly changed for this to be possible. Floating Action Button
for adding favorite is removed and instead there's a button next to the
TextView.

Review-Url: https://codereview.webrtc.org/2003983002
Cr-Commit-Position: refs/heads/master@{#12861}
2016-05-24 07:18:18 +00:00
47456803d9 Make Android MediaEncoder loop not run when there aren't any frames left.
This CL makes the loop stop when all frames have been delivered and
start again when a new frame is inserted.

BUG=webrtc:5680

Review-Url: https://codereview.webrtc.org/2000103002
Cr-Commit-Position: refs/heads/master@{#12860}
2016-05-24 07:17:06 +00:00
94cd3fa03a Eliminate use of IsZeroSize method
Check for dropped frames by instead checking the
frame_buffer pointer directly.

Also add RTC_DCHECK to verify that a webrtc::VideoFrame never
has video_frame_buffer_ set to nullptr (except by the default
constructor).

BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/1995343002
Cr-Commit-Position: refs/heads/master@{#12859}
2016-05-24 06:36:00 +00:00
7e9274638e iOS: Replace find with actual filenames listed.
Some build tools downstream breaks since find on Linux
doesn't support the -E flag.
Shell commands also shouldn't be executed as part of GYP unless there's
no other way around the problem.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2008693002
Cr-Commit-Position: refs/heads/master@{#12858}
2016-05-24 05:13:51 +00:00
afb8d92d25 Remove stale link to libvpx_new
It seems this link creeped in with the revert in
35c5336e60
somehow (probably related to .gitignore).

NOTRY=True
TBR=henrika@webrtc.org

Review-Url: https://codereview.webrtc.org/1987713002
Cr-Commit-Position: refs/heads/master@{#12857}
2016-05-24 05:11:04 +00:00
417eebe5dd Fixing the behavior of the candidate filter with pooled candidates.
According to JSEP, the candidate filter does not affect pooled
candidates because they can be filtered once they're ready to be
surfaced to the application.

So, pooled port allocator sessions will use a filter of CF_ALL, with a
new filter applied when the session is taken by a P2PTransportChannel.

When the filter is applied:
* Some candidates may no longer be returned by ReadyCandidates()
* Some candidates may no longer have a "related address" (for privacy)
* Some ports may no longer be returned by ReadyPorts()

To simplify this, the candidate filtering logic is now moved up from
the Ports to the BasicPortAllocator, with some helper methods to perform
the filtering and stripping out of data.

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

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

Cr-Commit-Position: refs/heads/master@{#12856}
2016-05-23 23:02:29 +00:00
5b53b0eeb4 Remove timing dependent packet checks from socket tests.
This avoids flaky tests and the check itself doesn't provide much value anyway.

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12855}
2016-05-23 20:56:22 +00:00
8fcf414846 Attempting to fix flaky tests that deal with STUN timeout.
The STUN timeout is 9500ms, and the tests are waiting for 10000ms.

The 500ms margin of error is not enough for some bots (such as UBSan).

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12854}
2016-05-23 19:49:35 +00:00
1e43562836 Change initial DTLS retransmission timer from 1 second to 50ms.
This will help ensure a timely DTLS handshake when there's packet
loss. It will likely result in spurious retransmissions (since the
RTT is usually > 50ms), but since exponential backoff is still used,
there will at most be ~4 extra retransmissions. For a time-sensitive
application like WebRTC this seems like a reasonable tradeoff.

R=juberti@chromium.org, juberti@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12853}
2016-05-23 19:49:00 +00:00
da2ba4dcba Pass around the candidate removals events in IOS clients
When local candidates are removed, signal to RTCPeerConnection
and eventually send to the remote client.
When a candidate-removal message is received, notify the native PeerConnection.

BUG=
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12852}
2016-05-23 18:53:26 +00:00
3ebb3efd13 Don't read socket timestamps when building native client.
BUG=webrtc:5773
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12851}
2016-05-23 18:26:25 +00:00
9131efdb30 Read recv timestamps from socket (posix only).
This helps a lot on Android devices where the user threads can be scheduled with low priority when the app is in the background, causing spurious significantly delayed before a packet can be read from the socket. With this patch the timestamp is taken by the kernel when the packet actually arrives.

R=juberti@chromium.org
TBR=juberti@webrtc.org

BUG=webrtc:5773

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

Cr-Commit-Position: refs/heads/master@{#12850}
2016-05-23 16:19:37 +00:00
181310fb6f Android: Drop old frame in SurfaceTextureHelper.startListening()
Drop any pending texture frame when SurfaceTextureHelper.startListening()
is called because the frame might be from the previous
startListening()/stopListening() capture session. This typically happens
when switching between the front/back camera, and an old frame will get
incorrect rotation and mirroring because of the front/back camera
mismatch.

Dropping the frame in SurfaceTextureHelper also removes the need for
the |dropNextFrame| logic in VideoCapturerAndroid.

R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12849}
2016-05-23 14:26:59 +00:00
b432b26b5f Android: Add API for getting native histograms.
The function getAndReset returns a map which holds the name of a histogram and its samples.

This CL depends on: https://codereview.webrtc.org/1915523002/

BUG=

Review-Url: https://codereview.webrtc.org/1952223007
Cr-Commit-Position: refs/heads/master@{#12848}
2016-05-23 13:49:41 +00:00
0e9d6d9e0c Add class which periodically computes statistics.
During a period (e.g. 2 seconds), different metrics can be computed, e.g.:
- average of samples
- percentage/permille of samples
- units per second

Each periodic metric can be either:
- reported to an observer each period
- aggregated during the call (e.g. min, max, average)

BUG=webrtc:5283

Review-Url: https://codereview.webrtc.org/1640053003
Cr-Commit-Position: refs/heads/master@{#12847}
2016-05-23 13:08:05 +00:00
bca568bfc5 Fix an UBSan error (signed overflow) in saturating addition and subtraction
Of course, functions called WebRtcSpl_AddSatW32 and WebRtcSpl_SubSatW32 are supposed to handle overflow gracefully, and they probably did. But since the overflow handling depended on undefined behavior, a sufficiently smart optimizing compiler would have realized that it could just ignore the possibility of overflow and omit all the overflow handling code, leaving only the unadorned addition or subtraction.

Also, the new implementations, unlike the old ones, result in branch-free code (tested with clang 3.9 with -O2).

BUG=chromium:601728

Review-Url: https://codereview.webrtc.org/2002523002
Cr-Commit-Position: refs/heads/master@{#12846}
2016-05-23 11:07:10 +00:00
64208e5523 Fix UBSan errors (left shift of negative value)
I've settled on replacing x << n with x * (1 << n); this gets rid of
the "left shift of negative value" warning, but will still trigger
undefined behavior if the multiplication overflows. It also still
looks like a left shift, which is good for the readability of the
fixed-point code.

(The compiler is smart enough to recognize that the
multiplication+shift is just a shift, for both variable and constant
shift amounts, so the generated code should not change.)

BUG=chromium:603491

Review-Url: https://codereview.webrtc.org/1989803002
Cr-Commit-Position: refs/heads/master@{#12845}
2016-05-23 10:28:35 +00:00
c82d0902e1 Don't do a thread jump for incoming frames.
We're now supposed to accept incoming frames from any thread.

BUG=webrtc:5902

Review-Url: https://codereview.webrtc.org/1987663002
Cr-Commit-Position: refs/heads/master@{#12844}
2016-05-23 07:39:45 +00:00
bab3ea202b Roll chromium_revision 61b254913a..5eb3649952 (395276:395279)
Change log: 61b254913a..5eb3649952
Full diff: 61b254913a..5eb3649952

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2002863002
Cr-Commit-Position: refs/heads/master@{#12843}
2016-05-23 03:05:29 +00:00
07df20b51a Fix building of bwe_test_logging.cc in gyp and gn builds
bwe_test_logging.cc is supposed to be conditionally built in gyp builds
but, due to a path error in the sources! expressions it was always
compiled.

Meanwhile, compilation of bwe_test_logging.cc was never set up for gn
builds.

This fixes both of these problems.

BUG=604060

Review-Url: https://codereview.webrtc.org/1990373002
Cr-Commit-Position: refs/heads/master@{#12842}
2016-05-23 00:15:11 +00:00
77db86fac7 Roll chromium_revision af2d6e1462..61b254913a (395273:395276)
Change log: af2d6e1462..61b254913a
Full diff: af2d6e1462..61b254913a

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/1999373002
Cr-Commit-Position: refs/heads/master@{#12841}
2016-05-22 19:05:45 +00:00
f62e3d6ba3 Roll chromium_revision 4698dd6159..af2d6e1462 (395269:395273)
Change log: 4698dd6159..af2d6e1462
Full diff: 4698dd6159..af2d6e1462

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2004783002
Cr-Commit-Position: refs/heads/master@{#12840}
2016-05-22 11:04:58 +00:00
f15892c03a Roll chromium_revision bf2181075f..4698dd6159 (395261:395269)
Change log: bf2181075f..4698dd6159
Full diff: bf2181075f..4698dd6159

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2005663003
Cr-Commit-Position: refs/heads/master@{#12839}
2016-05-22 03:04:37 +00:00
b2f5d8b674 Roll chromium_revision b6cdc627ba..bf2181075f (395256:395261)
Change log: b6cdc627ba..bf2181075f
Full diff: b6cdc627ba..bf2181075f

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2002833002
Cr-Commit-Position: refs/heads/master@{#12838}
2016-05-21 19:06:37 +00:00
6a1a8ce668 [rtcp] in Tmmbn/tmmbr packets bitrate updated to 64bit
to match packet format.

Review-Url: https://codereview.webrtc.org/1991223002
Cr-Commit-Position: refs/heads/master@{#12837}
2016-05-21 16:54:50 +00:00
1abfc2a7f3 Roll chromium_revision fa269315e7..b6cdc627ba (395044:395256)
Change log: fa269315e7..b6cdc627ba
Full diff: fa269315e7..b6cdc627ba

No dependencies changed.
No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2000933002
Cr-Commit-Position: refs/heads/master@{#12836}
2016-05-21 11:04:14 +00:00
2970c2a237 DirectX based screen capturer logic
BUG=595530,314516

Review-Url: https://codereview.webrtc.org/1845113002
Cr-Commit-Position: refs/heads/master@{#12835}
2016-05-21 05:08:08 +00:00
54f1d9bafd Removing PORTALLOCATOR_ENABLE_SHAKER.
It's not used by anything, and is obsoleted by connection pruning,
candidate pruning, timeouts, etc.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12834}
2016-05-20 22:38:00 +00:00
351d77b702 Update the type and cost of existing networks
if the network monitor detects it after the native code does.

Also set the network cost for ethernet, wifi, unknown, cellular network type to be 0, 10, 50, 900,
so that unknown networks will have lower precedence than known networks with low cost (like Wifi) but  higher precedence than known networks with high cost.

And third, infer network type based on limited name matching in Android if there is no network monitor or network monitor did not find the type.

BUG=webrtc:5890
R=pthatcher@chromium.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12833}
2016-05-20 22:08:37 +00:00
f7f62902c2 Roll chromium_revision 9db5a0e3f5..fa269315e7 (394957:395044)
Change log: 9db5a0e3f5..fa269315e7
Full diff: 9db5a0e3f5..fa269315e7

Changed dependencies:
* src/third_party/ffmpeg: fa382f21a6..7f03319b9d
DEPS diff: 9db5a0e3f5..fa269315e7/DEPS

No update to Clang.

TBR=

Review-Url: https://codereview.webrtc.org/2003523002
Cr-Commit-Position: refs/heads/master@{#12832}
2016-05-20 17:21:52 +00:00
cac94aae3e Clang format on AGC legacy code.
BUG=

Review-Url: https://codereview.webrtc.org/1998183002
Cr-Commit-Position: refs/heads/master@{#12831}
2016-05-20 15:42:30 +00:00
a8eab866a1 Reland of Android: Make base interface for camera1 and camera2 (patchset #1 id:1 of https://codereview.webrtc.org/1994013004/ )
Reason for revert:
Downstream code has been updated.

Original issue's description:
> Revert of Android: Make base interface for camera1 and camera2 (patchset #1 id:1 of https://codereview.webrtc.org/1994893002/ )
>
> Reason for revert:
> Still breaks downstream import.
>
> Original issue's description:
> > Reland of Android: Make base interface for camera1 and camera2 (patchset #1 id:1 of https://codereview.webrtc.org/1979583002/ )
> >
> > Reason for revert:
> > Downstream code has been updated.
> >
> > Original issue's description:
> > > Revert of Android: Make base interface for camera1 and camera2 (patchset #3 id:80001 of https://codereview.webrtc.org/1895483002/ )
> > >
> > > Reason for revert:
> > > Breaks downstream import.
> > >
> > > Original issue's description:
> > > > Android: Make base interface for camera1 and camera2
> > > >
> > > > This CL adds a new interface CameraVideoCapturer that extends VideoCapturer with a switchCamera() function. It also moves moves CameraEventsHandler, CameraStatistics, and CameraSwitchHandler from VideoCapturerAndroid to this new interface. The purpose is to prepare for a camera2 implementation that will use the same interfaces and helper class.
> > > >
> > > > BUG=webrtc:5519
> > > >
> > > > Committed: https://crrev.com/6bdacaddfb18edef1f0cdd778209f6b05a8f9210
> > > > Cr-Commit-Position: refs/heads/master@{#12723}
> > >
> > > TBR=perkj@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:5519
> > >
> > > Committed: https://crrev.com/181b5ffdf036427d92929667d9d43bbcff560435
> > > Cr-Commit-Position: refs/heads/master@{#12727}
> >
> > TBR=perkj@webrtc.org
> > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > BUG=webrtc:5519
> >
> > Committed: https://crrev.com/d269b023bfe1c321798fe9c8dbd631a562914fe1
> > Cr-Commit-Position: refs/heads/master@{#12807}
>
> TBR=perkj@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5519
>
> Committed: https://crrev.com/bd76607abb712f98c01709f240f147e4bd49df6d
> Cr-Commit-Position: refs/heads/master@{#12809}

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

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

Cr-Commit-Position: refs/heads/master@{#12830}
2016-05-20 15:22:25 +00:00
01d70a3978 Add a default implementation in metrics_default.cc of histograms methods in system_wrappers/interface/metrics.h.
Updated tests to use the default implementation and removed the test implementation (webrtc/test/histograms.h).

BUG=

Review-Url: https://codereview.webrtc.org/1915523002
Cr-Commit-Position: refs/heads/master@{#12829}
2016-05-20 13:29:50 +00:00
7268f28520 General cleanup on AppRTC Android Demo codebase
Review-Url: https://codereview.webrtc.org/1998483003
Cr-Commit-Position: refs/heads/master@{#12828}
2016-05-20 13:28:37 +00:00
2036135620 AudioEncoderOpus: Default to 32 kbit/s for mono, 64 kbit/s for stereo
When this class was created, we inadvertently set the default to 64
kbit/s for both cases, failing to preserve the previous behavior. This
patch restores the old behavior.

From what I've been able to dig up, this problem did not affect Opus
encoders created internally in the Audio Coding Module. Those have
always used the bitrate from the supplied CodecInst.

Review-Url: https://codereview.webrtc.org/1942193002
Cr-Commit-Position: refs/heads/master@{#12827}
2016-05-20 11:57:08 +00:00
3fc8e8dde3 Fix UBSan errors (left shift of negative value)
BUG=chromium:604803

Review-Url: https://codereview.webrtc.org/1988113003
Cr-Commit-Position: refs/heads/master@{#12826}
2016-05-20 11:40:33 +00:00
f8312cb45a Convert LooperExecutorTest in AppRTC Demo into JUnit test
LooperExecutorTest now uses Robolectric instead of being instrumentation
test. This allows the test to be run faster and easier.

Review-Url: https://codereview.webrtc.org/1989813002
Cr-Commit-Position: refs/heads/master@{#12825}
2016-05-20 10:56:54 +00:00
2d285ca150 Remove AppRTCUtils.NonThreadSafe in AppRTC Android Demo
ThreadUtils.ThreadChecker in WebRTC does the same thing. No point in
having a duplicate implementation.

Review-Url: https://codereview.webrtc.org/1992813007
Cr-Commit-Position: refs/heads/master@{#12824}
2016-05-20 10:16:04 +00:00
7cf11476b9 Replace LooperExecutor with built-in class in Android AppRTC Demo
LooperExecutor is only truly needed in WebSocketChannelClient because of
WebSocketClient from autobanh requiring thread to have a looper. So
LooperExecutor was left there but replaced everywhere else with built-in
singleThreadExecutor/singleThreadScheduledExecutor.

Motivation behind this change is that built-in class behaves better
under testing environment and doesn't require hacky
RobolectricLooperExecutor.

Review-Url: https://codereview.webrtc.org/1992213002
Cr-Commit-Position: refs/heads/master@{#12823}
2016-05-20 09:41:08 +00:00
04ebea3629 Delete obsolete cricket::VideoFrame methods.
GetWidth and GetHeight (renamed to width and height),

GetNativeHandle (replaced by video_frame_buffer()->native_handle).

TBR=tkchin@webrtc.org (trivial changes to objc RTCVideoFrame and VideoRendererAdapter)

BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/1990063005
Cr-Commit-Position: refs/heads/master@{#12822}
2016-05-20 08:48:53 +00:00
94616b3b0b Disabled flaky test TestFrameBuffer2.OneLayerStreamReordered
TBR=stefan@webrtc.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#12821}
2016-05-20 08:43:50 +00:00