d7696c4ed1
Compile-out functions only used by the bit-exact test.
...
Causes errors on platforms where the test is unused.
TBR=bjornv
Review URL: https://webrtc-codereview.appspot.com/4869004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5207 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 23:39:16 +00:00
d3865e9124
Don't HANDLE_EINTR(close). Use IGNORE_EINTR(close).
...
It is incorrect to wrap close in HANDLE_EINTR on Linux.
BUG=chromium:269623
R=fischman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4759004
Patch from Mark Mentovai <mark@chromium.org >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5206 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 19:10:20 +00:00
812dd11f8c
Add baseline generation/verification to BWE test framework.
...
Updating resource file separately, once LGTM. Generates ~628k of files for current tests, highly compressable, once/if we need that.
BUG=
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4639004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5204 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 15:11:14 +00:00
499631c1e4
Utility class for reading/writing network-byte-ordered integers.
...
BUG=
R=holmer@google.com , mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2151008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5203 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 13:22:48 +00:00
37968a9be7
Change BitrateStats to more generalized RateStatistics
...
BUG=2656
R=holmer@google.com , mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4559004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5202 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 10:31:59 +00:00
5ecdef11cc
Do not use recursive calling in NetEq test tools
...
This CL removes recursive calling in:
- NETEQTEST_DummyRTPpacket::readFromFile,
- NETEQTEST_RTPpacket::readFromFile.
The files currently exist for both NetEq3 and NetEq4, and all are
changed with this CL.
R=turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4699004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5200 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 08:26:49 +00:00
8418e9696b
Fixing NetEq tests for new Opus version
...
The new version of Opus doesn't generate the same number of bytes encoding the test vectors in audio_decoder_unittest. Therefore the test was updated not to check the length of the encoded packet, to prepare for the coming roll of Opus. Same change was applied to iSAC, which can also generate different number of bytes on different platforms.
BUG=1459
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4609004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5195 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-29 09:30:43 +00:00
bd41a84694
This CL adds an API to enable robust validation of delay estimates.
...
Added is
- a member variable for turning robust validation on and off.
- API to enable/disable feature.
- API to check if enabled.
- unit tests for these APIs.
Not added is
- the actual functionality (separate CL), hence turning feature on/off has no impact currently.
- calls in AEC and AEC, where the delay estimator is used. This is also done in a separate CL when we know if it should be turned on in both components.
TESTED=trybots, module_unittest
BUG=
R=aluebs@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4609005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5191 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 14:58:35 +00:00
b627f676b3
Fixes a crash in the pacer where it fails to find a normal prio packet if there are no high prio packets, given that the queue has grown too large.
...
BUG=2682
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4599005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5190 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 14:00:09 +00:00
d1a1c353ac
Recommit CL5184
...
TBR=aluebs@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/4599004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5187 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 11:45:05 +00:00
c8f76ddc19
Refactor Remote Estimators Test into a more reusable form.
...
BUG=
R=andresp@webrtc.org , mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4359004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5186 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 10:11:35 +00:00
82eb3a690e
Revert 5184 "Small refactoring change in delay_estimator."
...
> Small refactoring change in delay_estimator.
>
> This CL produce the bit exact output and is a preparing step for an upcoming robust validation scheme.
>
> TESTED=trybots, module_unittest
> BUG=None
> R=aluebs@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/4549004
TBR=bjornv@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4589004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5185 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 09:44:47 +00:00
eea079a376
Small refactoring change in delay_estimator.
...
This CL produce the bit exact output and is a preparing step for an upcoming robust validation scheme.
TESTED=trybots, module_unittest
BUG=None
R=aluebs@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4549004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5184 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 07:59:04 +00:00
19a40ff05b
Ensure that no packet stays in the pacer queue for longer than 2 seconds.
...
BUG=2682
TEST=trybots
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4519004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5182 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-27 14:16:20 +00:00
4070935f4f
Implement and test EncodedImageCallback in new ViE API.
...
R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4059004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5179 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-26 11:41:59 +00:00
d89b52af80
Faster implementation of BitRateStats.
...
Landing cl for hguihot.
At high bitrate, EraseOld() could account for a significant part of
the total CPU usage on certain platforms. The new implementation
eliminates per-packet memory allocations and records the number of
bytes in buckets (one bucket per millisecond in window).
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4269004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5175 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-25 17:49:28 +00:00
47fadba750
Add include stdlib.h to files using abs.
...
abs function is declared in stdlib.h
Committing for alextaran@chromium.org .
Reviewed here: http://review.webrtc.org/4239004/
TBR=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4349004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5170 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-25 12:03:56 +00:00
b5bc098e20
Clear empty video frames in unittest so DrMemory will allow them to be read without an uninitialized read error.
...
BUG=libyuv:263
TESTED=drmemory out\Debug\modules_unittests.exe --gtest_filter=*PreprocessorLogic
R=kjellander@webrtc.org , mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4319004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5168 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-25 09:06:33 +00:00
5272eb8d83
Don't register iSAC-swb and iSAC-fb in NetEqDecodingTest.
...
Android bots break due to r5164. This CL patches that issue.
BUG=
TEST=modules_unittests on local device.
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4309004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5166 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-23 00:11:32 +00:00
e839da02c1
Fix MouseCursor to MouseCursorShape conversion in ScreenCapturerWin.
...
BUG=crbug.com/322596
R=dcaiafa@chromium.org , wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/4279005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5165 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 20:39:16 +00:00
78b41a09bd
Fix issues with sequence number wrap-around in jitter statistics.
...
Related CL for NetEq 3 is https://code.google.com/p/webrtc/source/detail?r=5150
Jitter statistics was not very sensitive to timestamp warp-around, and NetEqDecodingTest.TimestampWrap *DID NOT* fail before fixes applied. However, we still keep the test.
The criteria for the tests are not satisfied for first few packets, before any wrap-around happens. We could either relax the bound or ignore the first few packets. We chose the latter.
BUG=2662
TEST=modules_unittests,trybots
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4219004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5164 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 20:27:07 +00:00
1e8c93c953
Distinguish instances of ACM1 from ACM2 by a version string. This is fpr testing purposes and will be removed when the experiment is done and ACM1 is fade out.
...
BUG=
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4069006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5161 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 17:04:49 +00:00
2ffb149c2c
Replace VideoFrameI420 with I420VideoFrame.
...
Gives one less struct/class for I420 video frames.
BUG=2657
R=mflodman@webrtc.org , wu@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4149004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5160 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 13:10:13 +00:00
b0ed8f8a08
Don't reset the AEC filter in extended mode.
...
I don't believe I've witnessed this "feature" ever provide a benefit,
and have now collected some evidence of its harm when using the
extended filter mode. It can cause erroneous resets in two cases:
1. Some preprocessing noise suppression is enabled in the system (i.e.
"audio enhancements") that push the noise floor very low, possibly to
zero. If the filter is non-zero this condition can be triggered very
easily, and erroneously.
2. Non-zero energy in the filter before the peak impulse response can
cause a slight (and harmless) "pre-echo" in the error signal. This
becomes more significant as the peak is set further back in the filter.
This effect can cause needless resets during echo onsets.
In short, this isn't a great criterion for filter reset and has the
potential to cause serious harm. Ideally we would remove it entirely,
but in the interests of safety, can start with the extended mode.
BUG=1261
R=aluebs@webrtc.org , bjornv@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3959004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5159 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 06:39:42 +00:00
ef2d55461b
Increase size of pacer window to 500 ms as that better matches the encoder.
...
BUG=1812
R=andresp@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4129006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5154 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 14:37:11 +00:00
ffe1b17b57
Lock access to ModuleRtpRtcpImpl::simulcast_.
...
Fixes race between RegisterSendPayload and SendOutgoingData.
BUG=
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4099006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5152 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 13:53:13 +00:00
6f6ba6edee
Fix issues with sequence number wrap-around in jitter statistics
...
Wrap-arounds in sequence numbers (and in timestamps) were not always
treated correctly. This is fixed by introducing two helper functions
for correct comparisons, and by casting to the right word size.
Also added a new member variable to AutomodeInst_t. The new member keeps
track of when the first packet has been registered in the automode code.
This was previously done implicitly (and not very good) using the fact
that the lastSeqNo and lastTimestamp members were initialized to zero.
Two new unit tests were added as part of this CL.
NetEqDecodingTest.SequenceNumberWrap was failing before the fixes were
made; now it is ok.
BUG=2654
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4139004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5150 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 13:17:29 +00:00
8d02f5dc71
Added API for enabling/disabling RTCP Receiver Reference Time extension.
...
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3419005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5147 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 08:57:04 +00:00
a750044396
Fixes a crash in VoE when unregistering JNI hooks.
...
BUG=11695087
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3939004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5144 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-20 22:32:12 +00:00
1ae1d0c471
Add possibility to get the last processed RTT from the call stats class (to be used by RTP/RTCP module).
...
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2383004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5139 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-20 12:46:11 +00:00
0b72f5863b
Add experimental noise suppression dummy API.
...
Add this flag to the voe_cmd_test.
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3879004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5134 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-19 15:17:51 +00:00
5d85819dd2
Fix DesktopAndCursorComposer to restore frames to the original state.
...
Screen capturers may reuse frame buffers and they expect that the
frame content isn't changed by the frame consumer.
DesktopAndCursorComposer draws mouse cursor on generated frames and
it was releasing the frames with the mouse cursor on them. Fixed
it to restore frame content erasing mouse cursor before returning
desktop frames.
BUG=crbug.com/316297
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/3899004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5133 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-19 02:15:47 +00:00
7a05ae5c69
Adding back main() to the test. Now it is possible to choose between ACM1 and ACM2, furthermore, the test can simulate a channel with packet loss and FEC can be activated. Packet loss pattern is based on channel implementation in Channel{.cc,.h}, which currently is a determenistic pattern with 1 every 3rd packet is discarded.
...
The main() was deleted in r4731.
BUG=
R=andrew@webrtc.org , minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2370004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5132 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 18:16:53 +00:00
ce8e0936d9
Rename AutoMute to SuspendBelowMinBitrate
...
Changes all instances throughout the WebRTC stack.
BUG=2436
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3919004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5130 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 12:18:43 +00:00
b082ade3db
Hook up audio/video sync to Call.
...
Adds an end-to-end audio/video sync test.
BUG=2530, 2608
TEST=trybots
R=henrika@webrtc.org , mflodman@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3699004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5128 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 11:45:11 +00:00
6e95d7afab
Increment RTP timestamps for padding packets
...
This CL makes the padding packets get their own RTP timestamps,
rather than having the same timestamp as the last sent video
packet. The purpose is to solve Issue 2611, where the overuse-
detector does not react to padding packets.
A test was implemented to verify that the padding packets do
get their own timestamps.
BUG=2611
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3869004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5125 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-15 08:59:19 +00:00
9b82f5a6ed
Fix for RTX in combination with pacing.
...
Retransmissions didn't get sent over RTX when pacing was enabled since
the pacer didn't keep track of whether a packet was a retransmit or not.
BUG=1811
TEST=trybots
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3779004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5117 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-13 15:29:21 +00:00
e8433eb115
Reimplementing NetEq4's AudioVector
...
The current implementation using std::vector is too slow.
This CL introduces a new implementation, using a regular
array as data container.
In AudioMultiVector::ReadInterleavedFromIndex, a special case for
1 channel was implemented, to further reduce runtime. Finally,
AudioMultiVector::Channels was reimplemented.
The changes in this CL reduces the runtime of neteq4_speed_test
by 33%.
BUG=1363
R=turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3509004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5115 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-12 13:15:02 +00:00
38599510df
Parse next RTCP XR report block after an unsupported block type.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2649004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5114 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-12 08:08:26 +00:00
3e427263ee
Reducing opus_test runtime to pass Android test
...
BUG=2609
R=solenberg@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3639004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5111 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-11 22:03:52 +00:00
e03cafaebc
MIPS optimizations for AECM audio processing module
...
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2279005
Patch from Ljubomir Papuga <lpapuga@mips.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5110 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-11 20:10:01 +00:00
b0730108a2
Move audio_processing dependencies to a variable.
...
R=aluebs@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3679004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5108 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-11 17:20:27 +00:00
57eb858698
Remove ".." from include_dirs in build/common.
...
BUG=1662
TEST=compile on trybots
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2332004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5107 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-11 10:20:27 +00:00
6e908b3adf
Remove unnecessary include_dirs from audio_processing.
...
TBR=aluebs
TESTED=trybots
Review URL: https://webrtc-codereview.appspot.com/3659004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5106 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-08 19:52:05 +00:00
48df38114d
Fix for making sure that the packet in order checks are done prior to updating the last received packet state.
...
Without this fix all packets are considered out-of-order by the rtp receiver, causing the last received state
in the rtp receiver to never get valid.
Also makes sure that only valid timestamps and receive times are used for audio/video sync.
BUG=2608
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3609004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5102 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-08 15:18:52 +00:00
bde3056567
Fix for video_processor_intergration_tests to run in parallel.
...
BUG=2601.
R=pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3519004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5091 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-06 20:59:29 +00:00
7a36cb408b
Add missing dependencies to .isolate files
...
Also fix invalid paths in video_engine_tests.isolate.
TEST=trybots passing compile step (no .isolate use is deployed on them yet)
BUG=chromium:300017
R=pbos@webrtc.org
TBR=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3399005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5084 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-05 14:28:57 +00:00
b8cb85b348
Fix broken build on x86 Android
...
BUG=2545
R=fischman@webrtc.org , henrike@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3019004
Patch from Lu Quiang <qiang.lu@intel.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5081 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-04 19:06:08 +00:00
766154aa1d
Removed unused code.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3219004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5073 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-04 08:35:50 +00:00
5dd2ecb32d
Revert "Remove extra copy in VideoCaptureImpl::IncomingFrameI420"
...
This reverts commit f4ca3808bd9ec2293ec205f2f4a7d9739ce1f2df.
TBR=niklas.emblom@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/3269004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5071 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-31 23:41:04 +00:00