5189 Commits

Author SHA1 Message Date
alessiob
446fb136dc APM configuration files generator.
It generates json files to be used as APM configuration presets.
Useful to avoid manual editing of such files.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2719853006
Cr-Commit-Position: refs/heads/master@{#17013}
2017-03-03 16:20:19 +00:00
alessiob
bf4007dbe9 Evaluation controller, evaluation score abstract class, and score data access.
BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2714543005
Cr-Commit-Position: refs/heads/master@{#17012}
2017-03-03 15:59:31 +00:00
minyue
930ff23261 Fixing a unittest to allow new Opus version.
New Opus version starts to support 120ms frame lengths. AudioEncoderOpusTest had an unnecessary check on the available frame lengths.

It is removed in this CL.

BUG=b/35415318

Review-Url: https://codereview.webrtc.org/2731583003
Cr-Commit-Position: refs/heads/master@{#17011}
2017-03-03 15:34:52 +00:00
alessiob
810025f9e9 Readme file with example that explains how the conversational speech generator tool should work.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2722173003
Cr-Commit-Position: refs/heads/master@{#17010}
2017-03-03 15:31:10 +00:00
tommi
db23ea69b6 Add performance tracing for PlatformThread and parts of the video code.
BUG=webrtc:7219

Review-Url: https://codereview.webrtc.org/2729783004
Cr-Commit-Position: refs/heads/master@{#17009}
2017-03-03 15:21:18 +00:00
alessiob
b4ec8765d8 "audioproc_f" wrapper
- Metadata and AudioProcConfigFile classes
- ApmModuleSimulator constructor updated
- BUILD.gn updated

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2711313004
Cr-Commit-Position: refs/heads/master@{#17008}
2017-03-03 14:53:56 +00:00
alessiob
a4b1d31207 Simulation controller (shell arguments parser and simulation runner) and libraries (data access, noise generators, evaluation scores).
Execution flag added to the .py and .sh scripts.
BUILD.gn files adapted (see :lib), APM config files moved.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2715943002
Cr-Commit-Position: refs/heads/master@{#17007}
2017-03-03 14:48:48 +00:00
kwiberg
65cb70d939 Fix cyclic deps: rent_a_codec<->audio_coding and rent_a_codec<->neteq
In short, what I did was to

  * Remove acm_common_defs.h (the stuff in it was used only by
    acm_codec_database.cc).

  * Move audio_coding_module_typedefs.h to a new build target.

  * Move the NetEqDecoder enum (and the associated
    NetEqDecoderToSdpAudioFormat function) to a new file in a new
    build target.

BUG=webrtc:7243, webrtc:7244

Review-Url: https://codereview.webrtc.org/2723253005
Cr-Commit-Position: refs/heads/master@{#17005}
2017-03-03 14:16:28 +00:00
kwiberg
3a2c803dc3 Multiply in 64 bits to avoid overflow
A fuzzer run caused the operands of this multiplication to be 512 and
5000000, resulting in a product about 20% too large for int32_t. So
change this from a 16x32->32 to a 16x32->64 multiplication. Since we
right shift by 2 at the end, the end result will still fit in int32_t.

I also had to fix a few follow-on add/sub overflows found by the same
fuzzer input once the multiplication was fixed. I chose to saturate
these, since it wasn't just an intermediate value that overflowed.

BUG=chromium:693868

Review-Url: https://codereview.webrtc.org/2729573002
Cr-Commit-Position: refs/heads/master@{#17003}
2017-03-03 13:44:49 +00:00
tommi
dea489f33e Add support for Location (RTC_FROM_HERE) to ProcessThread::RegisterModule.
This makes a few things a lot clearer when looking at perf trace data:

* What module instances (where they were created) are called
* On what thread
* How frequently
* For how long

ProcessThread will be replaced by TaskQueue moving forward and this is a step towards understanding the behavior of the affected code.

BUG=webrtc:7219

Review-Url: https://codereview.webrtc.org/2729053002
Cr-Commit-Position: refs/heads/master@{#16998}
2017-03-03 11:20:24 +00:00
perkj
528a834ef0 Revert of BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame (patchset #7 id:180001 of https://codereview.webrtc.org/2709523003/ )
Reason for revert:
Misses  deps for RTC_HISTOGRAM in Chrome.
email sent separately.

Also see https://codereview.chromium.org/2725143004/.

Original issue's description:
> BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
>
> DXGI capturer highly depends on video adapter and its driver, as well as Windows
> itself. I recently found it cannot work on my virtualbox instance any more,
> which indicates it may not work well on some specific systems. What worse is,
> the APIs do not return a failure in such case.
>
> So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
> pixels in the frame returned by a DesktopCapturer implementation. If all the
> pixels selected are blank, this wrapper returns a failure. A typical usage is to
> combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
> and use GDI capturer in case of failure.
>
> Usually less than 500 pixels are checked, so the
> BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.
>
> This change is expected to resolve bug 682112 in another dimension.
>
> BUG=682112
>
> Review-Url: https://codereview.webrtc.org/2709523003
> Cr-Commit-Position: refs/heads/master@{#16984}
> Committed: c4e9d210b3

TBR=sergeyu@chromium.org,zijiehe@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=682112

Review-Url: https://codereview.webrtc.org/2726983005
Cr-Commit-Position: refs/heads/master@{#16993}
2017-03-03 08:01:48 +00:00
zijiehe
c4e9d210b3 BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
DXGI capturer highly depends on video adapter and its driver, as well as Windows
itself. I recently found it cannot work on my virtualbox instance any more,
which indicates it may not work well on some specific systems. What worse is,
the APIs do not return a failure in such case.

So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
pixels in the frame returned by a DesktopCapturer implementation. If all the
pixels selected are blank, this wrapper returns a failure. A typical usage is to
combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
and use GDI capturer in case of failure.

Usually less than 500 pixels are checked, so the
BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.

This change is expected to resolve bug 682112 in another dimension.

BUG=682112

Review-Url: https://codereview.webrtc.org/2709523003
Cr-Commit-Position: refs/heads/master@{#16984}
2017-03-03 01:38:36 +00:00
sakal
4c6df8893e Revert of Add QP for FFmpeg H264 decoder. (patchset #4 id:200001 of https://codereview.webrtc.org/2649133007/ )
Reason for revert:
Let's revert this while we investigate a problem in H264 bitstream parser.

Original issue's description:
> Add QP for FFmpeg H264 decoder.
>
> BUG=webrtc:6541
>
> Review-Url: https://codereview.webrtc.org/2649133007
> Cr-Commit-Position: refs/heads/master@{#16942}
> Committed: 879f4f6c31

TBR=sprang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6541, chromium:697795

Review-Url: https://codereview.webrtc.org/2726973003
Cr-Commit-Position: refs/heads/master@{#16974}
2017-03-02 15:22:26 +00:00
alessiob
a44ba63cb7 APM Quality Assessment tool, new owners
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2729023002
Cr-Commit-Position: refs/heads/master@{#16969}
2017-03-02 13:41:07 +00:00
asapersson
55eb6d6214 vp8_impl.cc: Enable postproc for arm under field trial.
For resolutions:
<= 320x240: enable full postproc (VP8_MFQE, VP8_DEBLOCK, VP8_DEMACROBLOCK).
> 320x240: enable VP8_MFQE.

TBR=marpan@webrtc.org
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2696403002
Cr-Commit-Position: refs/heads/master@{#16962}
2017-03-02 07:52:16 +00:00
kwiberg
d3edd770ad Introduce dchecked_cast, and start using it
It's the faster, less strict cousin of checked_cast.

BUG=none

Review-Url: https://codereview.webrtc.org/2714063002
Cr-Commit-Position: refs/heads/master@{#16958}
2017-03-02 02:52:48 +00:00
zijiehe
634fcb32e3 DxgiOutputDuplicator AcquireNextFrame timeout can be 0
Timeout of AcquireNextFrame() can be 0. Though MSDN does not state it clear, I
tried it on my laptop, it works well, with almost zero capture time.
The screenshot is at https://drive.google.com/open?id=0B0OFNI4uoZGRNVZxekxCbm0ycmc.

BUG=682112

Review-Url: https://codereview.webrtc.org/2712353002
Cr-Commit-Position: refs/heads/master@{#16953}
2017-03-01 19:45:37 +00:00
elad.alon
f7c26d40ab Small TransportFeedbackAdapterTest efficiency boost and TODO resolved
BUG=None

Review-Url: https://codereview.webrtc.org/2726853002
Cr-Commit-Position: refs/heads/master@{#16950}
2017-03-01 17:05:20 +00:00
johan
0981cd16f2 Resolve inconsistent definition of video's webrtc::CodecSpecificInfo.
Following files define the same classes
- modules/video_coding/codecs/interface/video_codec_interface.h
- modules/video_coding/include/video_codec_interface.h

The first one is deprecated. As long as it is not removed, both files
should provide consistent class declarations. Otherwise any donwstream
project that includes its own codecs could experience memory
corruption issues.

Before this CL member declarations and ctor definition for
webrtc::CodecSpecificInfo diverged between both header files.

BUG=webrtc:7280

Review-Url: https://codereview.webrtc.org/2727633002
Cr-Commit-Position: refs/heads/master@{#16944}
2017-03-01 14:32:01 +00:00
sprang
e5d3a3ea78 Fix quick perf test setting that was accidentally inverted.
Bug was introduced in
https://codereview.webrtc.org/2717973005/
Only affects test output, so omitting bug.

BUG=None

Review-Url: https://codereview.webrtc.org/2723093002
Cr-Commit-Position: refs/heads/master@{#16943}
2017-03-01 14:20:56 +00:00
sakal
879f4f6c31 Add QP for FFmpeg H264 decoder.
BUG=webrtc:6541

Review-Url: https://codereview.webrtc.org/2649133007
Cr-Commit-Position: refs/heads/master@{#16942}
2017-03-01 14:19:09 +00:00
jens.nielsen
228c268065 Support 4 channel mic in Windows Core Audio
BUG=webrtc:7220

Review-Url: https://codereview.webrtc.org/2712743004
Cr-Commit-Position: refs/heads/master@{#16940}
2017-03-01 13:11:22 +00:00
henrik.lundin
a67e5f5de9 Fixing an overflow issue in NetEq::BackgroundNoise
BUG=chromium:676941

Review-Url: https://codereview.webrtc.org/2722533002
Cr-Commit-Position: refs/heads/master@{#16938}
2017-03-01 11:06:50 +00:00
alessiob
b324640855 Owners file added
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2727613002
Cr-Commit-Position: refs/heads/master@{#16935}
2017-03-01 10:05:11 +00:00
sprang
5271ea6571 Switch temporal layer impl used for screenshare upper simulcast stream.
Use default temporal layers instead of the RealtimeTemporalLayers one.
When using low fps, having a single stream with much higher bitrate than
the lower simulcast stream causes poor rampup behavior.

Tested manually.

BUG=webrtc:4172

Review-Url: https://codereview.webrtc.org/2723983002
Cr-Commit-Position: refs/heads/master@{#16934}
2017-03-01 09:58:17 +00:00
danilchap
dc05017fc3 Disable AudioCoding tests on ios
BUG=webrtc:7057
TBR=minyue@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2721323002
Cr-Commit-Position: refs/heads/master@{#16932}
2017-03-01 09:16:51 +00:00
henrik.lundin
deaf6fb071 Opus: Let the decoder interpret 2-byte payloads as DTX/CNG packets
This CL matches the work done in
https://codereview.webrtc.org/2693453003.

BUG=webrtc:7272
TBR=minyue@webrtc.org

Review-Url: https://codereview.webrtc.org/2723893004
Cr-Commit-Position: refs/heads/master@{#16930}
2017-03-01 08:49:18 +00:00
peah
e985b3fe49 Adding metrics to AEC3.
This CL adds metrics reporting to AEC3.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2722453002
Cr-Commit-Position: refs/heads/master@{#16929}
2017-03-01 06:08:53 +00:00
peah
999cf2bd7c Added further tuning of AEC3
TBR=henrik.lundin@webrtc.org
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2720973005
Cr-Commit-Position: refs/heads/master@{#16928}
2017-03-01 06:07:05 +00:00
perkj
16ccfdf457 Reland Move fake_audio_device to its own target.
Patchset 1 is patchset #5 id:80001 of https://codereview.webrtc.org/2717983003/
Patchset 2 fix call_perf_test dep on fake_audio_device.

This reverts commit 985371bda999c6db51286586c5850d2ff58f3511.

Original cl description:

Move fake_audio_device to its own target.
The purpose is to make it usefull for test targets that does not need or can use test_common.

For some reason this also triggered override issues in rtp module tests that are fixed in the same cl.

BUG=none
TBR=kjellander@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718363002
Cr-Commit-Position: refs/heads/master@{#16922}
2017-02-28 22:41:05 +00:00
sprang
c1b57a15bf Test field trial group with startswith rather than equals.
BUG=webrtc:7266

Review-Url: https://codereview.webrtc.org/2717973005
Cr-Commit-Position: refs/heads/master@{#16915}
2017-02-28 16:50:47 +00:00
kjellander
e3e902eef9 Restructure protobuf targets to fit with downstream requirements.
The paths of the protobuf output files needs to match the actual tree path
in order for Bazel builds to work.

BUG=webrtc:6412
NOTRY=True

Review-Url: https://codereview.webrtc.org/2716413004
Cr-Commit-Position: refs/heads/master@{#16912}
2017-02-28 16:01:46 +00:00
sakal
a2508c1e0f Fix reporting QP in FFmpeg H264 encoder.
The QP was previously written after calling OnEncodedImage. This was a
bug.

BUG=webrtc:6541

Review-Url: https://codereview.webrtc.org/2718353003
Cr-Commit-Position: refs/heads/master@{#16911}
2017-02-28 15:57:00 +00:00
brandtr
aebc61e3dc Minor cleanups in VideoProcessor.
This CL is broken out from a future "real" CL, that introduces
support for pipelining HW codecs to VideoProcessor. I order to
simplify the reviewing of that CL a bit, some of the cleanups are
split out here.

No functional changes are intended.

BUG=webrtc::6634

Review-Url: https://codereview.webrtc.org/2709123004
Cr-Commit-Position: refs/heads/master@{#16909}
2017-02-28 15:13:47 +00:00
philipel
b61927c687 Avoid busy looping in case of send failure while probing.
BUG=webrtc:7255

Review-Url: https://codereview.webrtc.org/2719183004
Cr-Commit-Position: refs/heads/master@{#16908}
2017-02-28 15:05:23 +00:00
Henrik Lundin
b1629cf5d6 Avoid overflow in NetEq's TimeStretch::SpeechDetection
BUG=chromium:675193
R=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2718943004 .
Cr-Commit-Position: refs/heads/master@{#16902}
2017-02-28 13:58:30 +00:00
perkj
985371bda9 Revert of Move fake_audio_device to its own target. (patchset #5 id:80001 of https://codereview.webrtc.org/2717983003/ )
Reason for revert:
Breaks build DEPS.

Original issue's description:
> Move fake_audio_device to its own target.
> The purpose is to make it usefull for test targets that does not need or can use test_common.
>
> For some reason this also triggered override issues in rtp module tests that are fixed in the same cl.
>
> BUG=none
>
> Review-Url: https://codereview.webrtc.org/2717983003
> Cr-Commit-Position: refs/heads/master@{#16889}
> Committed: 03d850ddf9

TBR=ehmaldonado@webrtc.org,danilchap@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=none

Review-Url: https://codereview.webrtc.org/2718083003
Cr-Commit-Position: refs/heads/master@{#16890}
2017-02-28 08:56:28 +00:00
perkj
03d850ddf9 Move fake_audio_device to its own target.
The purpose is to make it usefull for test targets that does not need or can use test_common.

For some reason this also triggered override issues in rtp module tests that are fixed in the same cl.

BUG=none

Review-Url: https://codereview.webrtc.org/2717983003
Cr-Commit-Position: refs/heads/master@{#16889}
2017-02-28 08:49:48 +00:00
magjed
21d110fe4e Enable include check for webrtc_h264 target
BUG=webrtc:7242,webrtc:6828

Review-Url: https://codereview.webrtc.org/2718143002
Cr-Commit-Position: refs/heads/master@{#16888}
2017-02-28 08:28:04 +00:00
tommi
f9495c3199 Avoid calling TimeUntilNextProcess() from Process() in BitrateControllerImpl
BUG=none

Review-Url: https://codereview.webrtc.org/2725433002
Cr-Commit-Position: refs/heads/master@{#16887}
2017-02-28 08:05:27 +00:00
peah
ebe7778ce9 Further tuning for AEC3 for initial echo suppression
and handling of echo path changes.

This CL add tuning for the AEC3 that
1) Improves the handling of the initial echo suppression
before the linear filter is reliable.
2) Improves the handling of echo path changes.

There are also minor bugfixes included.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2717353002
Cr-Commit-Position: refs/heads/master@{#16873}
2017-02-27 15:29:21 +00:00
perkj
a8ba195db5 Replace test::FrameGenerator::ChromaGenerator with new FrameGenerator::SquareGenerator The problem with the ChromaGenerator is that the VP8 encoder produce a too low bitrate for each frame. The squaregenerator make the VP8 encoder produce about 600kbit/s at VGA.
SquareGenerator is a FrameGenerator that draws 10 randomly sized and colored
squares. Between each new generated frame, the squares are moved slightly
towards the lower right corner.

BUG=webrtc:7192

Review-Url: https://codereview.webrtc.org/2705973002
Cr-Commit-Position: refs/heads/master@{#16870}
2017-02-27 14:52:10 +00:00
tommi
ea5f06f7e6 Remove extra call to TimeUntilNextProcess from within Process.
I noticed while profiling calls to TimeUntilNextProcess.
It's benign, but the implementation seems to be done to accomodate the
test rather than the other way around, so I'm making the test behave
more like a ProcessThread would.

BUG=None

Review-Url: https://codereview.webrtc.org/2715133002
Cr-Commit-Position: refs/heads/master@{#16867}
2017-02-27 13:41:24 +00:00
henrika
b3ebc1aa59 Simplifies FineAudioBuffer by using rtc::Buffer
BUG=NONE

Review-Url: https://codereview.webrtc.org/2715963002
Cr-Commit-Position: refs/heads/master@{#16864}
2017-02-27 13:14:17 +00:00
philipel
32d0010d86 Add probe logging to RtcEventLog.
In this CL:
 - Add message BweProbeCluster and BweProbeResult to rtc_event_log.proto.
 - Add corresponding log functions to RtcEventLog.
 - Add optional field |probe_cluster_id| to RtpPacket message and added
   an overload function to log with this information.
 - Propagate the probe_cluster_id to where RTP packets are logged.

BUG=webrtc:6984

Review-Url: https://codereview.webrtc.org/2666533002
Cr-Commit-Position: refs/heads/master@{#16857}
2017-02-27 10:18:46 +00:00
tommi
f284b7ff5f Remove |running_| state from NackModule to avoid running a tight loop.
Also reducing locking in NackModule (and by extension RtpStreamReceiver)

BUG=webrtc:7246

Review-Url: https://codereview.webrtc.org/2720603002
Cr-Commit-Position: refs/heads/master@{#16856}
2017-02-27 09:59:36 +00:00
peah
a2376e7db6 Added post-adjustment of the suppression gains
This CL adds correction of the echo suppressor gain
It contains 2 changes:
-Bounds the upper value for the echo suppression gain
for bin 1 to avoid that the high-pass filter causes the
gain to be high for bin 1, which in turn may impact the
realization of any lower gains for the neighboring bins.
-Bounds the upper values for the echo suppression gains
for the higher bins to avoid any impact of the
external anti-aliasing filters.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2718993002
Cr-Commit-Position: refs/heads/master@{#16854}
2017-02-27 09:15:24 +00:00
kjellander
b7d24f6d8d Disable flaky tests on iOS
Tests disabled:
CurrentSpeakerMonitorTest.SpeakerChange
TargetDelayTest.OutOfRangeInput
TargetDelayTest.NoTargetDelayBufferSizeChanges
TargetDelayTest.WithTargetDelayBufferNotChanging
TargetDelayTest.RequiredDelayAtCorrectRange
TargetDelayTest.TargetDelayBufferMinMax

BUG=webrtc:7057
TBR=aleloi@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2717993002
Cr-Commit-Position: refs/heads/master@{#16850}
2017-02-27 06:10:14 +00:00
kjellander
7c85658556 Roll chromium_revision 33a7a547b9..0e44c5e141 (452838:453130)
Some code changes were needed due to webrtc:7236.
Disabling flaky test for iOS and ORTC (on memcheck).

Change log: 33a7a547b9..0e44c5e141
Full diff: 33a7a547b9..0e44c5e141

Changed dependencies:
* src/base: facaa65f73..07e8029830
* src/build: eefc9cc748..c7c2db69cd
* src/ios: f893f94115..75bb86f02a
* src/testing: b40837ba97..e31bd01824
* src/third_party: 55242080a2..285c08d0e2
* src/third_party/catapult: 794fff6c81..47b98570f6
* src/third_party/libyuv: b18fd21d3c..45b176d153
* src/tools: e4e78e0678..6b40c03f7b
DEPS diff: 33a7a547b9..0e44c5e141/DEPS

Clang version changed 289944:295793
Details: 33a7a547b9..0e44c5e141/tools/clang/scripts/update.py

TBR=henrik.lundin@webrtc.org
BUG=webrtc:7236, webrtc:7247, webrtc:7248
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718953002
Cr-Commit-Position: refs/heads/master@{#16849}
2017-02-27 03:53:40 +00:00
tommi
3dda246b69 Revert of Removing unused audio device tests (patchset #1 id:1 of https://codereview.webrtc.org/2716843002/ )
Reason for revert:
I unfortunately have to revert this since trybots are still trying to run these tests and now they fail because the tests aren't there :-/  Before relanding, can you work with engprod to make sure we don't run them?

Original issue's description:
> Removes a test suite that is no longer used or maintained.
>
> BUG=NONE
>
> Review-Url: https://codereview.webrtc.org/2716843002
> Cr-Commit-Position: refs/heads/master@{#16825}
> Committed: bb5136f940

TBR=solenberg@webrtc.org,nisse@webrtc.org,henrika@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=NONE

Review-Url: https://codereview.webrtc.org/2721433002
Cr-Commit-Position: refs/heads/master@{#16845}
2017-02-26 15:12:50 +00:00