Commit Graph

1342 Commits

Author SHA1 Message Date
Peter Boström
76c53d36bc Remove ViE interface usage from VideoReceiveStream.
References channels and underlying objects directly instead of using
interfaces referenced with channel id. Channel creation is still done as
before for now.

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

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

Cr-Commit-Position: refs/heads/master@{#8958}
2015-04-09 12:35:46 +00:00
Peter Boström
15cf019a00 Add field-trial flag to disable WebRtcVideoEngine2.
BUG=chromium:475164
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8957}
2015-04-09 11:55:47 +00:00
Per
9b3f56ea05 Reland "Remove usage of webrtc::NativeHandle since is just adds an extra level of indirection.""
This reverts commit e41d774c4d.

Original code review: https://webrtc-codereview.appspot.com/43999004/
Reason for reland: There was nothing wrong with this cl as is, but it breaks chrome compatibility. We will now reland this and fix Chrome during roll.

Patset 1: Original cl.
Patchset 2: Removed more code that is no longer needed.

R=magjed@webrtc.org, pbos@webrtc.org
TBR=mflodman@webrtc.org

BUG=1128

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

Cr-Commit-Position: refs/heads/master@{#8956}
2015-04-09 11:44:19 +00:00
Jiayang Liu
d61ebda941 Fix the sigslot type of DtlsIdentityStore::WorkerTask.
BUG=4516
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8954}
2015-04-08 19:34:54 +00:00
Peter Boström
ad1f9b61a3 Remove warning on input frames before config.
Removes log spam for AppRTC when only one client is connected.

BUG=4512
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8947}
2015-04-08 12:04:06 +00:00
Alex Glaznev
9e420afefc Fix potential race conditions in Android video renderer.
- Check texture properties update flag using the same lock under which
the flag value is set.
- Adjust texture properties inside frame queue lock.
- Plus adding extra logging to track video renderer properties updates.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8941}
2015-04-07 17:14:32 +00:00
Per
e41d774c4d Revert "Remove usage of webrtc::NativeHandle since is just adds an extra level of indirection."
This reverts commit 75db861258.

Revert "Fix build breakage in WrappedI420Buffer::native_handle()"

This reverts commit 3211934ebf.

Reason for revert: Breaks chrome build and tests on clank, See https://codereview.chromium.org/1067803002/

BUG=1128
TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8940}
2015-04-07 15:20:56 +00:00
Bjorn Volcker
1d83f1e89f talk/media/webrtc/webrtcvoiceengine: Delay Agnostic AEC should not override HW-AEC
In https://webrtc-codereview.appspot.com/48699004/ I made the audio option delay_agnostic_aec override HW-AEC if such exists. That is not an expected behavior and is fixed in this CL.

In addition we now check if EnableBuiltInAEC() was successful before disabling the SW-AEC. This revealed a bug in that return value, also fixed here.

BUG=4472
R=henrika@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8936}
2015-04-07 13:25:52 +00:00
Per
49a862ec4c Return pending buffers to Java VideoCapturerAndroid if camera is stopping
BUG=4510
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8935}
2015-04-07 12:16:14 +00:00
Per
75db861258 Remove usage of webrtc::NativeHandle since is just adds an extra level of indirection.
BUG=1128
R=magjed@webrtc.org, pbos@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8932}
2015-04-07 10:50:49 +00:00
Alex Glaznev
e095148869 Port some fixes in AppRTCDemo.
- Make PeerConnectionClient a singleton.
- Fix crash in CpuMonitor.
- Remove reading constraints from room response.
- Catch and report camera errors.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8930}
2015-04-06 21:02:34 +00:00
Thiago Farina
ef88309a6e Cleanup: Forward declare AudioFrame type in voiceprocess.h
No need to include this header since the API is just taking a pointer to
it.

BUG=1092
TEST=./webrtc/build/gyp_webrtc && ninja -C out/Debug
R=tommi@webrtc.org

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

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8928}
2015-04-06 10:36:41 +00:00
Per
3354419a2d Zero copy AndroidVideeCapturer.
This cl uses the YV12 buffers from Java without a copy if no rotation is needed. Buffers are returned to the camera when the encoder and renderers no longer needs them.

This add a new frame type WrappedI420Buffer based in  that allows for wrapping existing memory buffers and getting a notification when it is no longer used.

AndroidVideoCapturer::FrameFactory::CreateAliasedFrame wraps frame received from Java. For each wrapped frame a new reference to AndroidVideoCapturerDelegate is held to ensure that the delegate can not be destroyed until all frames have been returned.

Some overlap exist in webrtcvideoframe.cc and webrtcvideengine.cc with https://webrtc-codereview.appspot.com/47399004/ that is expected to be landed before this cl.

BUG=1128
R=glaznev@webrtc.org, magjed@webrtc.org
TBR=mflodman@webrtc.org // For changes in webrtc/common_video/video_frame_buffer

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

Cr-Commit-Position: refs/heads/master@{#8923}
2015-04-02 10:31:00 +00:00
Henrik Boström
037bad7497 ~CaptureManager: DCHECK(capture_states_.empty()) instead of CHECK until we fix not empty bug.
BUG=chromium:320200
R=perkj@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8922}
2015-04-02 10:10:18 +00:00
Thiago Farina
cb76b89572 Cleanup: Move json.h into rtc namespace.
This should fix the TODO in that header.

BUG=None
TEST=ninja -C out/Debug still compiles everything.
R=tommi@webrtc.org

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

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8921}
2015-04-02 09:59:23 +00:00
Guo-wei Shieh
64c1e8cda5 Enable CVO by default through webrtc pipeline.
All RTP packets from sender side will carry the rotation info. (will file a bug to track this) On the receiving side, only packets with marker bit set will be examined.

Tests completed:
1. android standalone to android standalone
2. android standalone to chrome (with and without this change)
3. android on chrome

BUG=4145
R=glaznev@webrtc.org, mflodman@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

Committed: https://crrev.com/1b1c15cad16de57053bb6aa8a916079e0534bdae
Cr-Commit-Position: refs/heads/master@{#8905}

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

Cr-Commit-Position: refs/heads/master@{#8917}
2015-04-01 22:33:15 +00:00
Henrik Kjellander
722ef1fb59 Remove henrike@ from OWNERS
Since he has left the team.

R=henrike@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8913}
2015-04-01 15:08:49 +00:00
Minyue
31331cfd2d Revert "Enable CVO by default through webrtc pipeline."
This reverts commit 1b1c15cad1.

Due to failure on
http://build.chromium.org/p/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/4092
and following builds (the test hangs and never finishes).
R=kjellander@webrtc.org
TBR=guoweis@chromium.org
TESTED=Local revert + execution of libjingle_peerconnection_java_unittest show that this is the culprit.

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

Cr-Commit-Position: refs/heads/master@{#8911}
2015-04-01 14:20:11 +00:00
Guo-wei Shieh
1b1c15cad1 Enable CVO by default through webrtc pipeline.
All RTP packets from sender side will carry the rotation info. (will file a bug to track this) On the receiving side, only packets with marker bit set will be examined.

Tests completed:
1. android standalone to android standalone
2. android standalone to chrome (with and without this change)
3. android on chrome

BUG=4145
R=glaznev@webrtc.org, mflodman@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8905}
2015-04-01 02:42:50 +00:00
Jiayang Liu
4b3c0d6f34 Use WebRTC API to convert byteorder in srtpfilter.
This CL uses WebRTC API to convert 64bit from big-endian to host-endian,
so the internal "be64_to_cpu" of libsrtp is not used. The code path of
"be64_to_cpu" in newer versions of libsrtp depends on compile-time
defines that are not available in WebRTC.

BUG=https://code.google.com/p/chromium/issues/detail?id=328475
R=juberti@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8904}
2015-03-31 22:02:50 +00:00
Zeke Chin
4825356620 RTCDataChannel: Unregister data channel observer on dealloc.
BUG=4490
R=haysc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8903}
2015-03-31 18:06:27 +00:00
Magnus Jedvert
379069f676 VideoRenderCallback::RenderFrame: Make I420VideoFrame& ref const.
RenderFrame should not modify the I420VideoFrame (and we don't).

This CL changes the declaration of RenderFrame from:
int32_t RenderFrame(const uint32_t streamId, I420VideoFrame& videoFrame)
to:
int32_t RenderFrame(const uint32_t streamId, const I420VideoFrame& videoFrame)

BUG=1128
R=mflodman@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8902}
2015-03-31 17:52:37 +00:00
Peter Boström
23914fe756 Reject RTP one-byte extension ID 0.
Only accept local identifiers in the range 1-14 inclusive.

BUG=1788, chromium:471328
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8900}
2015-03-31 13:08:13 +00:00
Alex Glaznev
0194d32873 Add WebRtcAudioManager to peerconnection_jar library
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8896}
2015-03-30 18:20:36 +00:00
Magnus Jedvert
1ecfd55044 videoadapter_unittest.cc: Revert removal of '#if defined(HAVE_WEBRTC_VIDEO)'
This CL reverts some parts of "Delete VideoAdapter::AdaptFrame" https://webrtc-codereview.appspot.com/44769004/.

Reason for revert: Should not touch HAVE_WEBRTC_VIDEO since libjingle_media_unittests does not compile without anyway.

BUG=4317
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8888}
2015-03-30 09:25:04 +00:00
Peter Boström
dfd53fe26b Raise streams for SetMaxSendBitrates above 2000k.
Fixes b=AS effectively not setting bitrates above 2000k.

BUG=1788,4469
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8882}
2015-03-27 14:58:17 +00:00
Peter Boström
53eda3dbd0 Add tests for r8811.
All these tests crashed before r8811. These tests should've been with
that change but r8811 was pushed in before to make bots green.

BUG=1788, 1667
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8881}
2015-03-27 14:53:30 +00:00
Per
75a0255627 Handle borked Android cameras gracefully.
It turns out that Camera.getCameraInfo can throw an exception if the camera does not work.

TESTED=added a throw before all calls to Camera.open and Camera.getCameraInfo and made sure APPRtcDemo does not crash.

BUG=4371
R=glaznev@webrtc.org, magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8876}
2015-03-27 10:15:27 +00:00
Peter Boström
8ed6a4bba4 Remove unused non-standard capture stats.
Removes 'googCaptureJitterMs' and 'googCaptureQueueDelayMsPerS' from
talk/. The overuse-detection method used is based on encoding time,
so these stats aren't useful enough to warrant having them showing up in
GetStats().

BUG=
R=stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8874}
2015-03-27 09:01:11 +00:00
Magnus Jedvert
3954e1dfe1 Remove unused implementations in cricket::VideoFrame
This CL moves dummy implementations from cricket::VideoFrame to NullVideoFrame instead.

R=guoweis@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8873}
2015-03-27 08:48:45 +00:00
Minyue Li
7100dcd317 Adding "usedtx" as Opus codec parameter.
This is according to https://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03

Specifically,

usedtx: specifies if the decoder prefers the use of DTX. values are 1 and 0. If no value is specified, usedtx is assumed to be 0.

BUG=1014
R=juberti@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8872}
2015-03-27 04:06:35 +00:00
Peter Boström
74d9ed7d85 Report send codec name in GetStats().
BUG=4461
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8869}
2015-03-26 15:28:43 +00:00
Peter Boström
d6f4c25eed Reject streams reusing simulcast or RTX SSRCs.
BUG=1788, chromium:470122, chromium:470856
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8868}
2015-03-26 15:23:13 +00:00
Stefan Holmer
e590416722 Moving the pacer and the pacer thread to ChannelGroup.
This means all channels within the same group will share the same pacing queue and scheduler. It also means padding will be computed and sent by a single pacer. To accomplish this I also introduce a PacketRouter which finds the RTP module which owns the packet to be paced out.

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

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

Cr-Commit-Position: refs/heads/master@{#8864}
2015-03-26 10:11:22 +00:00
Brave Yao
5225dd8180 If audio ptime is negotiated in SDP, then we would set the audio codec with negotiated packet size if it's allowed. If the negotiated packet size is not supported by the working codec, then we would use the next smallest size.
BUG=4289
TEST=Manual/Auto Test
R=juberti@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8863}
2015-03-25 23:39:33 +00:00
Bjorn Volcker
bf395c1fc0 Add WebRTC Media Constraint to force using Delay Agnostic AEC on Android
If built-in Echo Cancellation is available on a device it is automatically enabled. The reason is that it in most cases performs better than the WebRTC software echo control for mobile. The drawback is that we can not develop, test and rollout the delay agnostic AEC (DA-AEC) on Android as for desktops.

This CL includes
- adding a media constraint to enable/disable DA-AEC.
- automatically turning on echo cancellation if DA-AEC is enabled.
- a fix in the AEC that enables delay estimation when DA-AEC is enabled, but delay metrics is disabled.
- sets the Config struct ReportedDelay, which controls DA-AEC internally in the AEC.

The test code to verify that it works in AppRTCDemo can be found here:
https://webrtc-codereview.appspot.com/50479004/

BUG=4472
TESTED=locally on N7, N6, Android One
R=glaznev@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8861}
2015-03-25 21:46:10 +00:00
Chuck Hays
caae5d47c1 Bye request should use POST not GET
AppRTCDemo is failing to cleanly exit a room because it sends a GET request to /bye. The request to /bye should be a POST request. Because the /bye request is failing, the room is still marked as "full" and rejoining will fail.

BUG=
R=tkchin@webrtc.org

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

Patch from Chuck Hays <haysc@webrtc.org>.

Cr-Commit-Position: refs/heads/master@{#8860}
2015-03-25 20:01:29 +00:00
Peter Boström
d4362cd336 Reject StreamParams with RTX SSRCs not in ssrcs.
BUG=1788, chromium:470122
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8855}
2015-03-25 13:17:33 +00:00
Donald Curtis
0e209b03bf Update bundle behavior to match BundlePolicy spec in http://rtcweb-wg.github.io/jsep/.
BUG=1574
R=juberti@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8851}
2015-03-24 16:30:02 +00:00
Magnus Jedvert
e61c64dbb1 Delete NullVideoRenderer
NullVideoRenderer is not used.

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8850}
2015-03-24 15:11:24 +00:00
Niklas Enbom
07a4ba5d1a Simulcast settings for 1080p. Using same bit rates for all 3 modes since only one is used in reality, and the plan is to unify them.
BUG=
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8849}
2015-03-24 14:48:03 +00:00
Magnus Jedvert
ac27e20477 Delete VideoAdapter::AdaptFrame
This CL deletes VideoAdapter::AdaptFrame and replaces the remaining calls with AdaptFrameResolution instead.

I do not expect this CL to fix the flaky VideoAdapterTests yet. I intend to replace FileVideoCapturer with a deterministic FakeVideoCapturer in a follow-up CL.

BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8848}
2015-03-24 14:18:52 +00:00
kwiberg@webrtc.org
eebcab5ce9 rtc::Buffer: Rename length to size, for conformance with the STL
And add a constructor for creating an uninitialized Buffer of a
specified size.

(I intend to follow up with more Buffer changes, but since it's rather
widely used, the rename is quite noisy and works better as a separate
CL.)

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8841}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8841 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-24 09:20:19 +00:00
glaznev@webrtc.org
e815290828 Update README instructions for Android AppRTCDemo.
R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8840}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8840 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 22:35:41 +00:00
pbos@webrtc.org
a5f6fb53ba Permit single-stream max bitrates above 2000k.
BUG=4463
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8839}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8839 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 22:30:11 +00:00
jiayl@webrtc.org
a197a5eed6 Update libsrtp includes in preparation of roll into Chromium.
This CL is in preparation to roll the libsrtp update which landed in
https://codereview.chromium.org/936663005/ into Chromium.

BUG=https://code.google.com/p/chromium/issues/detail?id=328475
R=juberti@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8838}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8838 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 22:12:19 +00:00
henrik.lundin@webrtc.org
39fc1d3d48 Disable PeerConnectionClientTest.testLoopbackVp9
The test is flaky on Nexus 9.

BUG=4430
TBR=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8836}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8836 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 19:57:52 +00:00
henrik.lundin@webrtc.org
0b44b58a3c Limit disabling of PeerConnectionEndToEndTest.Call to Windows
The test seems to be flaky only on Windows.

BUG=4464
TBR=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8835}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8835 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 19:48:19 +00:00
tkchin@webrtc.org
64eb2ff0b9 iOS library build script
Script for building iOS fat libraries with armv7/arm64/x86_64.

BUG=4119
R=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8834}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8834 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 19:08:15 +00:00
henrik.lundin@webrtc.org
82e8ae4ee8 Disable PeerConnectionEndToEndTest.Call in libjingle_peerconnection_unittest
The test has been flaky recently.

BUG=4464
TBR=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8832}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8832 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 14:25:50 +00:00