Commit Graph

1309 Commits

Author SHA1 Message Date
57a0049e25 VCM: Removing frame drop enable from Reset call
BUG = 1387

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3500 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 21:23:23 +00:00
00ab7cf4fd Fix perf output for audioproc and iSAC fixed-point tests
The measurement and trace entries had been mixed up in the calls to webrtc::test::PrintResult, resulting in the plotted graphs were named after the metric. The parameter names are quite confusing which probably led to this.

BUG=none
TEST=none

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3496 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 12:33:03 +00:00
0cb48a0a18 Set SingleStream BWE in unittests.
TEST=trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3494 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 08:30:23 +00:00
63066f7200 Set qpMax to 56 in for all VP8 tests. Fixes buildbot breakage.
TBR=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3493 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 08:27:33 +00:00
3d305c64b4 Updates to send side streaming mode:
1. Disabling frame-droppers from the vie encoder and not the channel.
2. Accounting for qpMax in the VP8 wrapper.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3492 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-10 18:42:55 +00:00
b64732abfc Fix Win64 build breakage
This is for landing https://webrtc-codereview.appspot.com/1096006/ by Justin Schuh.

Stable will be updated after this has landed.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3484 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-07 10:14:05 +00:00
d83b9fdf45 Fixed a bug in iSAC transform functions on ARM-Neon platform. Performance unchanged.
Bugs=none
Test=trybots, and file bit-exact tests; passed.

Description of the bug: Neon registers q4-q7 not saved before calling the outside FFT routines in the assembly functions.
Review URL: https://webrtc-codereview.appspot.com/1097006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3480 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-06 23:53:13 +00:00
959da8d286 Added labels in transform_neon.S in iSAC-fix, so the tables be shared with other files in iOS build. Also, moved several code lines in the same file, in case register values cannot be preserved after a function call which could cause a crash in some platforms (e.g. iOS etc.).
Bugs: none
Review URL: https://webrtc-codereview.appspot.com/1072007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3473 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-05 20:46:55 +00:00
a7303bdfb5 Lint-cleaned video and audio receivers.
BUG=
TESTED=trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3471 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-05 15:12:39 +00:00
244251a9cd Moved almost all payload-related stuff to the payload registry.
The big benefit is we no longer have a circular dependency between the media receiver and the payload registry. The payload registry is starting to take a bit more place on the stage, and now knows how to do different things depending on audio or video.

BUG=
TESTED=rtp_rtcp_unittests, vie_auto_test, voe_auto_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3465 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-04 13:23:07 +00:00
fa53d8717c Fixing/disabling Windows x64 warnings
Disabled MSVC #4267 warnings in common.gypi to enable x64 builds
for Windows.
Fixed MSVC #4267 warnings in test/testsupport.
Added third_party/directxsdk to .gitignore.

With http://review.webrtc.org/1070008 landed, this should make it possible
to build for x64 on Windows.

BUG=1348
TEST=Compiling with http://review.webrtc.org/1070008 applied:
set GYP_DEFINES="target_arch=x64"
set GYP_GENERATORS=ninja
gclient sync
ninja -C out\Debug_x64

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3464 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-04 10:07:17 +00:00
254d85af54 Exchange TRY by enumerating image formats in Linux video capture
ISSUE = issue 529
TEST  = unittest on Linux
Review URL: https://webrtc-codereview.appspot.com/1066011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3463 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-04 07:53:53 +00:00
becf9c897c Fix mismatch between different NACK list lengths and packet buffers.
This is a second version of http://review.webrtc.org/1065006/ which passes the parameters via methods instead of via constructors.

BUG=1289

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3456 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 15:09:57 +00:00
b586507986 Break out RemoteBitrateEstimator from RtpRtcp module and make RemoteBitrateEstimator::Process trigger new REMB messages.
Also make sure RTT is computed independently of whether it's time to send RTCP messages or not.

BUG=1298

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3455 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 14:33:42 +00:00
46d90dcd74 Adding three frame sizes to Opus
Adding support for 10, 40 and 60 ms packet sizes for Opus.

BUG=issue1015

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3454 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 14:20:06 +00:00
aaad6134b9 Implementing stereo support for G.722
This CL implements stereo support for G.722 through a new class
AudioDecoderG722Stereo derived from AudioDecoderG722.

Also implementing tests for G.722 stereo.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3452 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 11:49:28 +00:00
ac46c6dac3 Replaced relative path to reference from <(webrtc_root).
Changed to proper include paths in AECM and NSX.
Tested on trybots.

BUG=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3450 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 21:06:16 +00:00
763faeab4e Removing a codec from NetEq database has a bug. |funcDurationEst| is not updated.
This is discovered during a test for controlling delay. It is not simple to reproduce it. 

Bug=
test=manual test verified that |functionDurationEst| is correctly updated.
Review URL: https://webrtc-codereview.appspot.com/1074013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3448 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 18:21:58 +00:00
c0ada864b2 fix for issue 281.
A reverse copy is removed. The index to src buffer could be -1, this happens very often. The reverse copy is not needed as the content of the destination is overwritten further down in "WebRtcIlbcfix_CbConstruct()" 


Bug=issue281
TEST=manual test over 1600 files TIMIT database, all outputs are bit-exact with the ones generated from head revision. Local run of asan does not generate any warning.
 
Review URL: https://webrtc-codereview.appspot.com/1063013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3447 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 18:21:06 +00:00
119c67df36 Adding a max jitter filter to the JB estimate - allowing two modes, one will return the last estimate (current setting), and another will return the max value seen, and allow setting an initial value.
This cl also includes tests and some clean up.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3445 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 17:18:02 +00:00
e07c661a29 VP8: Making key frame interval a tunnable parameter
Review URL: https://webrtc-codereview.appspot.com/1070006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3444 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 16:37:13 +00:00
6e3968f62a Fix NetEq4 unit tests for VS2012
This merges the changes from r3199.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3443 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 15:07:30 +00:00
73deaadd0e Removing a hack for CNG
However, two other "hacks" had to be added to maintain bit-exactness
with legacy.

Note that this change requires a new version of the universal.rtp test
input, although the output reference stays the same.

Moving reference files, and using a new input vector for NetEq4.
The new input vector neteq_universal_new.rtp is identical to the old
neteq_universal.rtp, except that the payload type for CNG packets that
follows a wideband codec is changed to 98.

Update to resources revision 15 where the new reference files are.

Also changing a faulty log error.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3442 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 13:32:51 +00:00
ac59dba3f7 Adding iSAC-fb support
Adding tests, too.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3440 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 09:55:24 +00:00
73a702c979 This is a change in the iOS audio device to use VoiceProcessingIO API instead of RemoteIO. This way we don't need to use WebRTC EC and NS because it happens on the device hardware.
Review URL: https://webrtc-codereview.appspot.com/1061007
Patch from Gil Osher <gil.osher@vonage.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3437 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-30 21:18:31 +00:00
7ded92b71e Re-committing r3428
TBR=ajm
BUG=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3436 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-30 16:16:59 +00:00
51f11eb5ae Fixing problems in audio_decoder_unittests
The tests did not work in Release mode because of the asserts.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3435 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-30 13:00:33 +00:00
ddf981c789 Disable iSAC fix test in audio_decoder_unittests
The test AudioDecoderIsacFixTest.EncodeDecode was disabled since it
triggers a valgrind warning. The issue is tracked in
https://code.google.com/p/webrtc/issues/detail?id=1353

BUG=1353

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3434 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-30 12:29:48 +00:00
4892448c74 Re-enabling NetEqDecodingTest.TestBitExactness and .TestNetworkStatistics
This will fail on the asan bots, but that will be handled separately.

TBR=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3433 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-30 09:57:33 +00:00
63464a9354 Enabling unit tests for NetEq4 in the bots
The unit tests for NetEq4 are made a part of audio_coding_unittests.

The bit-exactness tests are disabled due to problems in iLBC. See
https://code.google.com/p/webrtc/issues/detail?id=281.

A few smaller fixes for valgrind errors and bot failures are included.
Some of the fixes are adpted from
http://webrtc-codereview.appspot.com/1072008/.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3432 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-30 09:41:56 +00:00
e1d468c019 Fix a few small nits in NetEq4
TEST=try bots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3431 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-30 07:37:20 +00:00
c21988f423 Remove codereview.settings
This file was included by mistake.

TBR=turajs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3430 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-29 21:37:25 +00:00
e12b1b562c Revert 3428
> Delay estimator wrapper API changes. This should finalize the changes to delay estimator making it work for multi-probe.
> 
> The changes are summarized here:
> 
> delay_estimator.*
> -----------------
> Replaced assert() with correct error check. This is consistent with previous versions of the delay_estimator, i.e., to check for valid parameters where they are actually used and not high up in a wrapper layer.
> 
> delay_estimator_internal.h
> --------------------------
> Pulled out the far-end part of DelayEstimator struct and put it in DelayEstimatorFarend. The only common parameter is spectrum_size, which we store in both and thereby avoiding having a Farend pointer in DelayEstimator.
> 
> delay_estimator_wrapper.*
> -------------------------
> Added and updated descriptions. From Free(), Create(), Init() the far-end parts have been put in separate Farend versions. Same goes for the Process() which now has an AddFarSpectrum() version.
> The flow of calls should be something like (in pseudo-code)
> 
> far* = CreateFarend(history_size)
> near* = Create(far, lookahead)
> InitFarend(far)
> Init(near)
> while call ongoing
>   AddFarSpectrum(far, far_spectrum)
>   Process(near, near_spectrum)
> end while
> Free(near)
> FreeFarend(far)
> 
> delay_estimator_unittest.cc
> ---------------------------
> Added farend support setting up calls as mentioned above.
> 
> aecm_core.*
> -----------
> Cleaned up some lint warnings.
> Added delay_estimator_farend pointer. Called Create(), Init() and Free() in above mentioned order.
> If AddFarSpectrumFix() was not successfully done, we end and return -1. This is what we would have done for Process().
> 
> aec_core.*
> ----------
> Cleaned up some lint warnings.
> Added delay_estimator_farend pointer. Calls in proper order. Since we only use the delay estimator for logging there is no error handling. We only call Process() if AddFarSpectrum() was successful though.
> 
> TEST=audioproc_unittest, trybots
> BUG=None
> 
> Review URL: https://webrtc-codereview.appspot.com/1076006

TBR=bjornv@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1062008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3429 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-29 21:30:26 +00:00
61ec7daa57 Delay estimator wrapper API changes. This should finalize the changes to delay estimator making it work for multi-probe.
The changes are summarized here:

delay_estimator.*
-----------------
Replaced assert() with correct error check. This is consistent with previous versions of the delay_estimator, i.e., to check for valid parameters where they are actually used and not high up in a wrapper layer.

delay_estimator_internal.h
--------------------------
Pulled out the far-end part of DelayEstimator struct and put it in DelayEstimatorFarend. The only common parameter is spectrum_size, which we store in both and thereby avoiding having a Farend pointer in DelayEstimator.

delay_estimator_wrapper.*
-------------------------
Added and updated descriptions. From Free(), Create(), Init() the far-end parts have been put in separate Farend versions. Same goes for the Process() which now has an AddFarSpectrum() version.
The flow of calls should be something like (in pseudo-code)

far* = CreateFarend(history_size)
near* = Create(far, lookahead)
InitFarend(far)
Init(near)
while call ongoing
  AddFarSpectrum(far, far_spectrum)
  Process(near, near_spectrum)
end while
Free(near)
FreeFarend(far)

delay_estimator_unittest.cc
---------------------------
Added farend support setting up calls as mentioned above.

aecm_core.*
-----------
Cleaned up some lint warnings.
Added delay_estimator_farend pointer. Called Create(), Init() and Free() in above mentioned order.
If AddFarSpectrumFix() was not successfully done, we end and return -1. This is what we would have done for Process().

aec_core.*
----------
Cleaned up some lint warnings.
Added delay_estimator_farend pointer. Calls in proper order. Since we only use the delay estimator for logging there is no error handling. We only call Process() if AddFarSpectrum() was successful though.

TEST=audioproc_unittest, trybots
BUG=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3428 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-29 18:55:59 +00:00
d94659dc27 Initial upload of NetEq4
This is the first public upload of the new NetEq, version 4.

It has been through extensive internal review during the course of
the project.

TEST=trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3425 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-29 12:09:21 +00:00
63e0964039 Fix webrtc compilation errors for Chrome Win64
Mostly disabling warnings in the gyp files.

BUG=1348
BUG=http://crbug.com/166496
BUG=http://crbug.com/167187

Review URL: https://webrtc-codereview.appspot.com/1063011
Patch from Justin Schuh <jschuh@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3423 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-29 06:45:22 +00:00
bf535b9b6b Optimize NACK list creation.
- No longer looping through all frame buffers.
- Keeping track of the current nack list index when building the list.
- Don't look for changes in the NACK list if the size has increased.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3420 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-28 08:48:13 +00:00
b2d7497faf Fix Win64 warnings
This change fixes warnings about converting size_t to int.

BUG=webrtc:1323
TEST=trybots passing

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3419 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-26 16:36:40 +00:00
8526459a2e Added tests for multiple near-end support.
TEST=trybots, audioproc_unittest
BUG=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3417 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-25 22:33:17 +00:00
57f3a11958 Short CL: only name change.
From |handle| to |self| for consistency.

BUG=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3416 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-25 22:02:15 +00:00
94c213af1a Separated far-end handling in BinaryDelayEstimator.
This CL is one step in a larger change of the DelayEstimator where we will open up for multiple near-end signals.

This particular CL separates the low level far-end parts without affecting the usage externally. This is a first step towards separating the far-end and near-end parts giving the user the control.

BUG=None
TEST=audioproc_unittests, trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3415 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-25 15:53:41 +00:00
43da54a458 Reformatted rtp_sender: made lint clean.
TESTED=rtp_rtcp_unittests
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3412 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-25 10:53:38 +00:00
c4373bc737 Moved several function pointer declarations in iSAC to isac initialization file.
Fixed clang linker problem of not being able to find symbols.
Review URL: https://webrtc-codereview.appspot.com/1061006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3410 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-25 04:55:21 +00:00
16d540eff1 Fixed text relocation code related to ARM assembly code.
Refer to WebRTC issue 1300.
Review URL: https://webrtc-codereview.appspot.com/1055004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3409 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-25 03:18:05 +00:00
e8482f0e9f Revert 3406
> Moved all function pointer declarations in iSAC to a single place.
> Review URL: https://webrtc-codereview.appspot.com/1057006

TBR=kma@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1074005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3408 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-24 23:57:56 +00:00
cd2f1356ee Revert 3405
TBR=turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1074004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3407 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-24 22:05:30 +00:00
ebef7e4ac1 Moved all function pointer declarations in iSAC to a single place.
Review URL: https://webrtc-codereview.appspot.com/1057006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3406 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-24 21:19:24 +00:00
05e7bfeeea Mainly hlundin's patch.
Review URL: https://webrtc-codereview.appspot.com/1052004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3405 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-24 18:53:43 +00:00
4782911572 Optimized WebRtcIsacfix_Time2Spec() for iSAC-Fix in ARM Neon processor.
Review URL: https://webrtc-codereview.appspot.com/1005004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3404 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-24 01:37:33 +00:00
5dfb1f2cd3 Bug fix in WebRtcOpus_DurationEst
The function WebRtcOpus_DurationEst returned the number of samples
per packet in the native 48 kHz sample rate, while the decoder
function returns data in 32 kHz sample rate. This creates a discrepancy
that makes NetEQ's lip-sync functionality add too little delay.

BUG=1334
TEST=try bots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3403 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-23 11:57:03 +00:00