Commit Graph

9304 Commits

Author SHA1 Message Date
c06a716d59 Android: Add new renderer SurfaceViewRenderer
BUG=webrtc:4742,webrtc:4910
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9922}
2015-09-11 07:51:59 +00:00
df1a171def Remove unused event in video_capture_input.cc.
Review URL: https://codereview.webrtc.org/1331833003

Cr-Commit-Position: refs/heads/master@{#9921}
2015-09-11 05:50:47 +00:00
d12140a68e Revert change which removes GICE.
There are still dependencies on this functionality.

TBR=pthatcher@webrtc.org

BUG=526399

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

Cr-Commit-Position: refs/heads/master@{#9920}
2015-09-10 20:32:21 +00:00
fab882b193 Remove obsolete typingmonitor.cc/.h files.
To be committed once https://codereview.webrtc.org/1327033002/ has propagated to Chromium, and Chromium's libjingle.gyp has been updated.

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9919}
2015-09-10 15:38:21 +00:00
4ed3658b78 Avoids crashes in Java-based InitRecording().
This CL ensures that we return -1 in cases where InitRecording() fails. It ensures that we don't crash applications.

BUG=b/22849644
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9918}
2015-09-10 13:18:33 +00:00
39720f2669 ACM CodecOwner: Test that we reset speech encoder when enabling CNG or RED
If we don't, we'll end up crashing if they're enabled when the speech
encoder is in the middle of encoding a packet, since CNG and RED
assume that the speech encoder starts out with an empty buffer
(because they need to be in sync with it).

BUG=chromium:490368

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

Cr-Commit-Position: refs/heads/master@{#9917}
2015-09-10 12:44:52 +00:00
9b66d3ba60 MockAudioEncoder: Use a dedicated marker method for test expectations
This makes the sequence of expected calls easier to read. Also, we can
save one line and get rid of a gmock warning by expecting the
MockAudioEncoder object to be destroyed at the end of the test instead
of making a final marker call.

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

Cr-Commit-Position: refs/heads/master@{#9916}
2015-09-10 12:09:49 +00:00
1dd98f3219 - Rename VoiceChannel::MuteStream() -> SetAudioSend() (incl. media channel)
- Rename VideoChannel::MuteStream() -> SetVideoSend() (incl. media channel)
- Collapse NnChannel::SetChannelOptions() into the above.
- Collapse VoiceChannel::SetLocalRenderer into SetAudioSend().

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9915}
2015-09-10 08:57:20 +00:00
9a78d22822 Revert of Consolidate constructormagic macros with Chromium version and remove Chromium override. (patchset #4 id:60001 of https://codereview.webrtc.org/1316363005/ )
Reason for revert:
Had to revert since FYI bots stopped compiling.  Example failure:

[94/9470] CXX obj\third_party\webrtc\modules\video_processing\main\source\video_processing_sse2.content_analysis_sse2.obj
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\video_coding\codecs\h264\webrtc_h264.h264.obj.rsp /c ..\..\third_party\webrtc\modules\video_coding\codecs\h264\h264.cc /Foobj\third_party\webrtc\modules\video_coding\codecs\h264\webrtc_h264.h264.obj /Fdobj\third_party\webrtc\modules\webrtc_h264.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\base\rtc_base_approved.bitbuffer.obj.rsp /c ..\..\third_party\webrtc\base\bitbuffer.cc /Foobj\third_party\webrtc\base\rtc_base_approved.bitbuffer.obj /Fdobj\third_party\webrtc\base\rtc_base_approved.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\audio_processing\logging\audio_processing.aec_logging_file_handling.obj.rsp /c ..\..\third_party\webrtc\modules\audio_processing\logging\aec_logging_file_handling.cc /Foobj\third_party\webrtc\modules\audio_processing\logging\audio_processing.aec_logging_file_handling.obj /Fdobj\third_party\webrtc\modules\audio_processing.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\audio_processing\beamformer\audio_processing.nonlinear_beamformer.obj.rsp /c ..\..\third_party\webrtc\modules\audio_processing\beamformer\nonlinear_beamformer.cc /Foobj\third_party\webrtc\modules\audio_processing\beamformer\audio_processing.nonlinear_beamformer.obj /Fdobj\third_party\webrtc\modules\audio_processing.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'

Original issue's description:
> Consolidate constructormagic macros with Chromium version and remove Chromium override.
>
> Part of work removing dependency on Chromium's base.
>
> Only adds "= delete". From https://codereview.chromium.org/1151443003 :
> "This will guarantee the error to be at compile time, and not rely on the call visibility (private)."
>
> In consequence of that change, fixed an illegal copy and removed a bunch of unused variables.
>
> BUG=chromium:468375 (in particular comment #37)
> NOTRY=true
>
> Committed: https://crrev.com/0de8ff488d92e0bc6b7b65662898ff5e955cda93
> Cr-Commit-Position: refs/heads/master@{#9913}

TBR=andrew@webrtc.org,henrikg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:468375 (in particular comment #37)

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

Cr-Commit-Position: refs/heads/master@{#9914}
2015-09-10 08:42:03 +00:00
0de8ff488d Consolidate constructormagic macros with Chromium version and remove Chromium override.
Part of work removing dependency on Chromium's base.

Only adds "= delete". From https://codereview.chromium.org/1151443003 :
"This will guarantee the error to be at compile time, and not rely on the call visibility (private)."

In consequence of that change, fixed an illegal copy and removed a bunch of unused variables.

BUG=chromium:468375 (in particular comment #37)
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9913}
2015-09-10 06:43:49 +00:00
11e498545b GN: Fix iOS build.
This makes it possible to run GN for the iOS build, which is being
worked on for Chromium.

For the command below to work https://codereview.chromium.org/1314413006/
needs to be rolled into WebRTC.

TESTED=gn gen out/Default --args="build_with_chromium=false target_os=\"ios\""
BUG=chromium:459705
R=dpranke@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9912}
2015-09-09 20:22:40 +00:00
c2db810b89 Remove VideoRendererInterface::CanApplyRotation()
All implementations handle rotation now, both internally in WebRTC and externally in Chromium.

R=glaznev@webrtc.org, guoweis@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9911}
2015-09-09 19:26:19 +00:00
f6901b06b8 Remove NullVideoFrame
This class is not used.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9910}
2015-09-09 16:57:48 +00:00
8ce0bd54e9 Android video rendering: Fix texture matrix multiplication order
BUG=webrtc:4968, webrtc:4742
R=hbos@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9909}
2015-09-09 16:51:17 +00:00
942a699f14 AudioEncoderOpusTest.PacketLossRateOptimized: Fix bug and make prettier
Fix bug 4981, which caused the second half (decreasing loss rates) to
not test anything. In the process, the test is changed slightly to
make it less dependent on the exact rounding behavior of doubles (by
not testing exactly at the the points where the effective loss rate
goes through a step---just very very close). A bunch of symbolic
constants are also replaced with easy-to-read literal numbers.

BUG=4981

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

Cr-Commit-Position: refs/heads/master@{#9908}
2015-09-09 13:43:04 +00:00
2feafdb742 Enable automatic resizing for RTX-enabled senders.
These were accidentally disabled due to checking ssrcs_.size() (which
includes RTX SSRCs) instead of rtp.ssrcs.size() to determine whether a
stream is simulcast or not.

BUG=webrtc:4965
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9907}
2015-09-09 12:32:30 +00:00
77d22fa014 Merge two files with AudioEncoderOpus tests
Merge the contents of audio_encoder_mutable_opus_test.cc into
audio_encoder_opus_unittest.cc, since they're now both testing
AudioEncoderOpus.

(While preparing this CL, I noted a bug in the PacketLossRateOptimized
test. This CL leaves that test essentially unchanged; I've posted bug
4981 about the problem.)

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

Cr-Commit-Position: refs/heads/master@{#9906}
2015-09-09 11:38:37 +00:00
529528cc36 Android video rendering: Apply SurfaceTexture.getTransformationMatrix()
This CL applies the transformation matrix instead of assuming it is always a vertical flip.

BUG=webrtc:4968,webrtc:4742
R=hbos@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9905}
2015-09-09 09:00:14 +00:00
66f43392a3 Remove [Voice|Video]MediaChannel::GetOptions().
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9904}
2015-09-09 08:36:31 +00:00
c99ebc1490 Remove AudioEncoder methods SetMaxBitrate and SetMaxPayloadSize
And the corresponding ACM methods SetISACMaxRate and
SetISACMaxPayloadSize. They were only used in tests.

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

Cr-Commit-Position: refs/heads/master@{#9903}
2015-09-09 07:54:10 +00:00
d944067a03 Disable flaky test (WebRtcVideoChannel2Base.GetStatsMultipleSendStreams) on Dr. Memory.
BUG=webrtc:4963
R=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9902}
2015-09-09 07:53:10 +00:00
b04965ccf8 Hooked up RtcEventLog. It lives in Voice Engine and pointers are propagated to ACM and Call.
An option was added to voe_cmd_test to make a RtcEventLog dump.

BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#9901}
2015-09-09 07:09:49 +00:00
3f5f1c2ad3 Change return type of AudioEncoder::SetMaxPlaybackRate to void
There's no point in returning a status code, since the max playback rate
is only a suggestion that the encoder is free to disregard.

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

Cr-Commit-Position: refs/heads/master@{#9900}
2015-09-09 06:15:41 +00:00
e9e7896293 Turn webrtc::Vad into a pure virtual interface
Review URL: https://codereview.webrtc.org/1317243005

Cr-Commit-Position: refs/heads/master@{#9899}
2015-09-09 06:04:57 +00:00
233bd87d45 Add RemoteEstimatorProxy for capturing receive times
For use when send-side bandwidth estimation is enabled.

Receive times need to be captured, buffered and then sent using
TransportFeedback RTCP messaged back to the send side.

BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#9898}
2015-09-08 20:25:20 +00:00
66c42df4f2 Alphabetize common_audio/OWNERS.
TBR=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9897}
2015-09-08 17:35:51 +00:00
7764973e1d Add magjed@ as owner for talk/app/webrtc/androidtests/ and talk/app/webrtc/java/jni/
magjed@ has done a lot of work in these folders.

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9896}
2015-09-08 15:13:45 +00:00
76b3147bd8 Disable flaky WebRtcVideoChannel2Base, EndToEndTest tests on Dr. Memory.
BUG=webrtc:4963, webrtc:4979
R=kjellander@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9895}
2015-09-08 14:21:44 +00:00
12cfc9b4da Fold AudioEncoderMutable into AudioEncoder
It makes more sense to combine the two interfaces, since there wasn't
a clear line separating them. The result is a combined interface with
just over a dozen methods, half of which need to be implemented by
every subclass, while the other half have sensible (and trivial)
default implementations and are implemented only by the few subclasses
that need non-default behavior.

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

Cr-Commit-Position: refs/heads/master@{#9894}
2015-09-08 12:57:59 +00:00
cd3c475407 Updating common_audio/OWNERS
TBR=tina.legrand@webrtc.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9893}
2015-09-08 12:51:21 +00:00
68786d2040 Wire up PacketTime to ReceiveStreams.
BUG=webrtc:4758

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

Cr-Commit-Position: refs/heads/master@{#9892}
2015-09-08 12:36:23 +00:00
e526974759 Make LoadObserver settable per video send stream. Gives client flexibility and makes the implementation slightly simpler. See discussion in: https://codereview.webrtc.org/1269863005/
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9891}
2015-09-08 12:13:25 +00:00
a9839dd037 Use of override keyword to fix chromium trybot
TBR=tommi@webrtc.org, guidou@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9890}
2015-09-08 12:10:15 +00:00
04ada47273 Add third_party/lss and third_party/proguard to .gitignore.
Review URL: https://codereview.webrtc.org/1330823002

Cr-Commit-Position: refs/heads/master@{#9889}
2015-09-08 11:25:30 +00:00
f325d2118c Disable VideoSendStreamTest.VP9FlexMode.
Test is racy and fails on bots.

BUG=webrtc:4969
R=pbos@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9888}
2015-09-08 10:47:14 +00:00
c3aa12d5f2 Add utility class for unwrapping 16 bit sequence numbers
Unwrap uint16_t to int64_t, based on delta and last sequence number.
This can make application logic, putting packets in maps etc, much
simpler.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9887}
2015-09-08 10:43:22 +00:00
caa5f4b3d2 Update to the neteq_rtpplay utility to support RtcEventLog input files.
This CL adds support for simulating neteq using stored RTP packets as well as calls to GetAudio from an RtcEventLog, using the stored timestamps.
The type of the input file is detected automatically.
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#9886}
2015-09-08 10:28:53 +00:00
f3ecdb981c Replacing SSLIdentity* with scoped_refptr<RTCCertificate> in TransportChannel layer.
BUG=webrtc:4927
R=tommi@webrtc.org, torbjorng@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9885}
2015-09-08 10:12:07 +00:00
8006f07592 Remove unused TypingMonitor class.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9884}
2015-09-08 09:57:05 +00:00
7f6a6fc0b2 Enabling spatial layers in VP9Impl. Filter layers in the loopback test.
Handling the case when encoder drops only the higher layer.
Added options to screenshare loopback test to discard high temporal or spatial layers (to view the lower layers).

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

Cr-Commit-Position: refs/heads/master@{#9883}
2015-09-08 09:40:36 +00:00
e313e02783 Remove unnecessary fields from VoE SharedData.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#9882}
2015-09-08 09:16:11 +00:00
746210f46d Remove unused overuse detection metric (capture jitter).
BUG=
R=pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9881}
2015-09-08 08:52:54 +00:00
3dfe5d3d41 Remove arraysize.h gcc hack and Chromium override.
Part of work removing dependency on Chromium's base.

BUG=468375 (in particular comment #37)

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

Cr-Commit-Position: refs/heads/master@{#9880}
2015-09-08 07:57:41 +00:00
e9ad18b6e1 Remove obsolete soundclip.cc/.h files.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9879}
2015-09-08 07:45:00 +00:00
1c7d48d431 Let max default bitrate depend on resolution when configuring one video stream (was previously always 2Mbps).
Is now set to:
<= 320x240: 600kbps
<= 640x480: 1.7Mbps
<= 960x540: 2Mbps
>  960x540: 2.5Mbps

For QVGA and VGA, the qp was around 10 at the selected thresholds when running some tests. The change in qp declined above the selected bitrates.

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

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

Cr-Commit-Position: refs/heads/master@{#9878}
2015-09-08 07:21:55 +00:00
632246792f PRESUBMIT: Exclude some files from 80-character limit check.
Exclude the following files from 80-characters line limit check:
* DEPS
* GN files (.gn and .gni)
* GYP files (.gyp and .gypi)

BUG=webrtc:4794
TESTED=Ran the presubmit check with a modified DEPS and GYP file before this change and verified it failed. Re-ran after these changes and verified it passed. I also tested editing a .cc file to be >80 chars and verified the check found it.
R=andrew@webrtc.org, sergiyb@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9877}
2015-09-08 06:04:08 +00:00
81db11aa50 copy-red: Fill an rtc::Buffer with bytes the easy way
The easy way also happens to be more efficient if we have to
reallocate, but that's a minor concern here.

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

Cr-Commit-Position: refs/heads/master@{#9876}
2015-09-08 03:14:40 +00:00
86d907cffd Refactor the AudioDevice for iOS and improve the performance and stability
This CL contains major modifications of the audio output parts for WebRTC on iOS:
- general code cleanup
- improves thread handling (added thread checks, remove critical section, atomic ops etc.)
- reduces loopback latency of iPhone 6 from ~90ms to ~60ms ;-)
- improves selection of audio parameters on iOS
- reduces complexity by removing complex and redundant delay estimates
- now instead uses fixed delay estimates if for some reason the SW EAC must be used
- adds AudioFineBuffer to compensate for differences in native output buffer size and
  the 10ms size used by WebRTC. Same class as is used today on Android and we have unit tests for
  this class (the old code was buggy and we have several issue reports of crashes related to it)

Similar improvements will be done for the recording sid as well in a separate CL.
I will also add support for 48kHz in an upcoming CL since that will improve Opus performance.

BUG=webrtc:4796,webrtc:4817,webrtc:4954, webrtc:4212
TEST=AppRTC demo and iOS modules_unittests using --gtest_filter=AudioDevice*
R=pbos@webrtc.org, tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9875}
2015-09-07 14:10:10 +00:00
05cfcd3469 Full stack graphs
Updating full stack test to optionally save metadata for each frame and save it
to a file with given filename (controlled from the new full_stack_samples
executable).
Adding a Python script that reads the output generated by full stack test
and plots the graph(s).

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

Cr-Commit-Position: refs/heads/master@{#9874}
2015-09-07 13:04:23 +00:00
110443c1ec Fix for frame resolution in encoded frame callback.
Scaled resolution for down scaled frames by the quality scaler is not used.

BUG=webrtc:4966
R=pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9873}
2015-09-07 13:04:00 +00:00