180 Commits

Author SHA1 Message Date
Mirko Bonadei
fc52b912a3 Implicitly suppress //build/config/clang:find_bad_constructs.
Since there is no way to enable/disable these diagnostics at runtime,
this CL moves the suppression into the rtc_* templates in order to
remove the need to explicitly add the snippet of code needed to
suppress it (currently copy/pasted in 144 locations).

The diagnostic that causes the most problems is the one about "complex
class/struct explicit ctor/dtor" [1] because WebRTC doesn't find
it useful enough.

Other diagnostics are good (for example the one that warns about
using "virtual" instead of "override", but that will be covered by
this clang-tidy check [2]) while others are Chromium related so
they have never triggered.

[1] - https://cs.chromium.org/chromium/src/tools/clang/plugins/FindBadConstructsConsumer.cpp?l=147-167&rcl=b4bebe1aa15dba7ca5fcc6456a81a55665327c3a
[2] - https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html

Bug: webrtc:163
Change-Id: Icbf27efa5b369100a31e6a32df1a0913729b3b34
Reviewed-on: https://webrtc-review.googlesource.com/c/125088
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26918}
2019-03-01 10:18:17 +00:00
Sebastian Jansson
fb14c5d8b9 Allow injection of TaskQueueFactory in FrameGeneratorCapturer.
Bug: webrtc:10365
Change-Id: I7ea496f479a948c17c40c0da572656eb926811ae
Reviewed-on: https://webrtc-review.googlesource.com/c/124985
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26907}
2019-02-28 17:28:25 +00:00
Elad Alon
d8d3248d95 Reland "Delete test/constants.h"
This reverts commit 4f36b7a478c2763463c7a9ea970548ec68bc3ea6.

Reason for revert: Failing tests fixed.

Original change's description:
> Revert "Delete test/constants.h"
>
> This reverts commit 389b1672a32f2dd49af6c6ed40e8ddf394b986de.
>
> Reason for revert: Causes failure (and empty result list) in CallPerfTest.PadsToMinTransmitBitrate
>
> Original change's description:
> > Delete test/constants.h
> >
> > It's not possible to use constants.h for all RTP extensions
> > after the number of extensions exceeds 14, which is the maximum
> > number of one-byte RTP extensions. This is because some extensions
> > would have to be assigned a number greater than 14, even if the
> > test only involves 14 extensions or less.
> >
> > For uniformity's sake, this CL also edits some files to use an
> > enum as the files involved in this CL, rather than free-floating
> > const-ints.
> >
> > Bug: webrtc:10288
> > Change-Id: Ib5e58ad72c4d3756f4c4f6521f140ec59617f3f5
> > Reviewed-on: https://webrtc-review.googlesource.com/c/123048
> > Commit-Queue: Elad Alon <eladalon@webrtc.org>
> > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#26728}
>
> TBR=danilchap@webrtc.org,kwiberg@webrtc.org,eladalon@webrtc.org,sprang@webrtc.org
>
> Bug: webrtc:10288, chromium:933127
> Change-Id: If1de0bd8992137c52bf0b877b3cb0a2bafc809d4
> Reviewed-on: https://webrtc-review.googlesource.com/c/123381
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26744}

TBR=danilchap@webrtc.org,oprypin@webrtc.org,kwiberg@webrtc.org,eladalon@webrtc.org,sprang@webrtc.org

Change-Id: I65e391325d3a6df6db3c0739185e2002e70fb954
Bug: webrtc:10288, chromium:933127
Reviewed-on: https://webrtc-review.googlesource.com/c/123384
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26750}
2019-02-19 08:51:20 +00:00
Oleh Prypin
4f36b7a478 Revert "Delete test/constants.h"
This reverts commit 389b1672a32f2dd49af6c6ed40e8ddf394b986de.

Reason for revert: Causes failure (and empty result list) in CallPerfTest.PadsToMinTransmitBitrate

Original change's description:
> Delete test/constants.h
>
> It's not possible to use constants.h for all RTP extensions
> after the number of extensions exceeds 14, which is the maximum
> number of one-byte RTP extensions. This is because some extensions
> would have to be assigned a number greater than 14, even if the
> test only involves 14 extensions or less.
>
> For uniformity's sake, this CL also edits some files to use an
> enum as the files involved in this CL, rather than free-floating
> const-ints.
>
> Bug: webrtc:10288
> Change-Id: Ib5e58ad72c4d3756f4c4f6521f140ec59617f3f5
> Reviewed-on: https://webrtc-review.googlesource.com/c/123048
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26728}

TBR=danilchap@webrtc.org,kwiberg@webrtc.org,eladalon@webrtc.org,sprang@webrtc.org

No-Presubmit: True
Bug: webrtc:10288, chromium:933127
Change-Id: If1de0bd8992137c52bf0b877b3cb0a2bafc809d4
Reviewed-on: https://webrtc-review.googlesource.com/c/123381
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26744}
2019-02-18 18:09:22 +00:00
Elad Alon
389b1672a3 Delete test/constants.h
It's not possible to use constants.h for all RTP extensions
after the number of extensions exceeds 14, which is the maximum
number of one-byte RTP extensions. This is because some extensions
would have to be assigned a number greater than 14, even if the
test only involves 14 extensions or less.

For uniformity's sake, this CL also edits some files to use an
enum as the files involved in this CL, rather than free-floating
const-ints.

Bug: webrtc:10288
Change-Id: Ib5e58ad72c4d3756f4c4f6521f140ec59617f3f5
Reviewed-on: https://webrtc-review.googlesource.com/c/123048
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26728}
2019-02-17 21:47:41 +00:00
Mirko Bonadei
98bcd321c5 Remove always_passing_unittest.cc.
Bug: None
Change-Id: I14b24d28c1469ad58b8657cd8e7e630be866a502
Reviewed-on: https://webrtc-review.googlesource.com/c/122081
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26658}
2019-02-13 10:16:38 +00:00
Ilya Nikolaevskiy
6df89cc13c Revert "Partial frame capture API part 2"
This reverts commit 5054f544575b1a0471b241266c6fc8c2ccf93af0.

Reason for revert: Partial Capture API is not needed, according to new info from the Chrome team.

Original change's description:
> Partial frame capture API part 2
>
> Implement test utility for extracting changed part of video frames.
>
> Bug: webrtc:10152
> Change-Id: Iead052d2a18384aaa828cd7821be961b8614568e
> Reviewed-on: https://webrtc-review.googlesource.com/c/120407
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26496}

TBR=ilnik@webrtc.org,sprang@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10152
Change-Id: I80cae8a7d352b4ee67b42f5388fd8c1883ab2e7c
Reviewed-on: https://webrtc-review.googlesource.com/c/122091
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26632}
2019-02-11 12:28:52 +00:00
Niels Möller
b7edf69e9a Delete rtc::File, usage replaced with FileWrapper
Bug: webrtc:6463
Change-Id: Ia0767a2e6bbacc43e63c30ed3bd3edb10ff6e645
Reviewed-on: https://webrtc-review.googlesource.com/c/121943
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26613}
2019-02-08 16:23:53 +00:00
Ilya Nikolaevskiy
5054f54457 Partial frame capture API part 2
Implement test utility for extracting changed part of video frames.

Bug: webrtc:10152
Change-Id: Iead052d2a18384aaa828cd7821be961b8614568e
Reviewed-on: https://webrtc-review.googlesource.com/c/120407
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26496}
2019-01-31 14:44:40 +00:00
Steve Anton
f380284035 (7) Rename files to snake_case: remove forwarding headers
Bug: webrtc:10159
Change-Id: I2ba899e0283b953538c7941c8790213e36d7c70e
Reviewed-on: https://webrtc-review.googlesource.com/c/118561
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26417}
2019-01-26 00:33:46 +00:00
Mirko Bonadei
d970807e0c Remove rtc_base/scoped_ref_ptr.h.
The type rtc::scoped_refptr<T> is now part of api/. Please include it from
api/scoped_refptr.h.

More info: See: https://groups.google.com/forum/#!topic/discuss-webrtc/Mme2MSz4z4o.

Bug: webrtc:9887, webrtc:8205
No-Try: True
Change-Id: Ic6c7c81e226e59f12f7933e472f573ae097b55bf
Reviewed-on: https://webrtc-review.googlesource.com/c/119041
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26414}
2019-01-25 20:29:58 +00:00
Sebastian Jansson
ecb6897ade Adds repeating task class.
This CL adds a single class to manage the use case of having a task
that repeats itself by a fixed or variable interval. It replaces the
repeating task previously locally defined for rtp transport controller
send as well as the cancelable periodic task. Furthermore, it is
introduced where one off repeating tasks were created before.

It provides the currently used functionality of the cancelable periodic
task, but not some of the unused features, such as allowing cancellation
of tasks before they are started and cancellation of a task after the
owning task queue has been destroyed.

Bug: webrtc:9883
Change-Id: Ifa7edee836c2a64fce16a7d0f682eb09c879eaca
Reviewed-on: https://webrtc-review.googlesource.com/c/116182
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26313}
2019-01-18 10:55:41 +00:00
Artem Titov
08a9b618a6 Introduce VideoFrameWriter.
VideoFrameWriter is designed to accept webrtc::VideoFrame as input and
write it with Y4mFrameWriterImpl to the output file, transforming
webrtc::VideoFrame to the uint8_t* frame_buffer. VideoFrameWriter will
be used to write webrtc::VideoFrames during dumping input and output
video in peer connection level test framework and will be injected
in webrtc::test::FrameGenerator and rtc::VideoSinkInterface<VideoFrame>.

Bug: webrtc:10138
Change-Id: Iadec7d3ad66f226836acbebe070cf88ceb242f62
Reviewed-on: https://webrtc-review.googlesource.com/c/117200
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26305}
2019-01-17 21:41:11 +00:00
Emircan Uysaler
7c03bdc1d3 Reland "Add a high bitrate full stack test with fake codec"
In this reland, I disabled high bitrate webrtc perf test on Android32.

This is a reland of 15df2774f4e85cf8900768c1793edcf17d651dcd

Original change's description:
> This CL adds a fake codec factory  in WebRTC that can be used in tests to
> produce target bitrate output.

> We also add a high bitrate test that makes use of fake codec. This test assumes
> ideal network conditions with target bandwidth being available and exercises
> WebRTC calls with a high target bitrate(100 Mbps) end-to-end.

TBR=sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org,emircan@webrtc.org,kron@webrtc.org

Bug: chromium:879723
Change-Id: I31a4b48d986bef9ca003ae71afeb567ae3e562c9
Reviewed-on: https://webrtc-review.googlesource.com/c/117980
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26285}
2019-01-16 21:03:22 +00:00
Artem Titov
66a29b9953 Introduce CopyToFileAudioCapturer.
It will be used to dump generated audio from TestAudioDeviceModule into
user defuned file in peer connection level test framework.

Bug: webrtc:10138
Change-Id: I6e3db36aaf1303ab148e8812937c4f9cd1b49315
Reviewed-on: https://webrtc-review.googlesource.com/c/117220
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26267}
2019-01-15 15:06:55 +00:00
Benjamin Wright
9db8b88bd4 Added JSON generator for VideoReceiveStream::Config objects.
This change adds a new way for test code to serialize the important information
from a VideoReceiveStream::Config so that it can be stored as configuration data
for WebRTC fuzzers. This code isn't included in the object itself as it is only
going to be used to generate new configurations for the fuzzer each time a new
error_correction or video format is added to WebRTC.

Bug: webrtc:10117
Change-Id: I9b6fb8e0345890ab16f6d319d91e4e316d1f2888
Reviewed-on: https://webrtc-review.googlesource.com/c/116920
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26255}
2019-01-15 00:51:29 +00:00
Benjamin Wright
8efafdf84b Move VideoStreamReceiver JSON configuration parser to test source_set.
This change moves the configuration parser that converts a JSON representation
of the VideoStreamReceiver::Config structure into a native object into the test
directory so that it can be shared with the new corpus_generator utility that is
being built. This rtc_source_set will have an additional utility function added
in a subsequent CL that will allow the generation of a VideoStreamSender::Config
from a given VideoStreamReceiver::Config and visa versa.

Bug: webrtc:10117
Change-Id: I3035826f799f8d1fcdeaa76997391f030c855a5c
Reviewed-on: https://webrtc-review.googlesource.com/c/116880
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26252}
2019-01-14 18:40:24 +00:00
Artem Titov
4895b45703 Introduce EncodedImageIdInjector.
EncodedImageIdInjector is responsible for injection of frame id into
encoded image before it will be sent to the transport layer. It will
help to track video frame from capturing on 1st peer side to rendering
on 2nd peer side and will make it possible to calculate video quality
stats between these frames.

This CL also introduces two different implementations for injector:
  1. DefaultEncodedImageIdInjector will prepend all encoded images with
     extra data and then will restore them on another side. This injector
     can work even if peers are running on different devices.
  2. SingleProcessEncodedImageIdInjector can work only when all peers
     are running in the same process, but won't use any extra data
     to propagate frame id between peers, so it won't affect any
     transport level metrics and bitrate estimator.

This CL is first part of new video quality analyzer for end-2-end
peer connection level test framework.

Bug: webrtc:10138
Change-Id: I77defc8e8c95cb244a695a9732980a47bd7a2e9b
Reviewed-on: https://webrtc-review.googlesource.com/c/116682
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26251}
2019-01-14 17:59:42 +00:00
Artem Titov
645df9e3b5 Introduce Y4mFrameReader.
Bug: webrtc:10138
Change-Id: I213a4309a8a4b1a7afd296bf45566c9b3f9a215c
Reviewed-on: https://webrtc-review.googlesource.com/c/117301
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26243}
2019-01-14 14:03:08 +00:00
Steve Anton
aec15aa810 (5) Rename files to snake_case: install forwarding headers
Mechanically generated with this command:

tools_webrtc/do-renames.sh install all-renames.txt && git cl format

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Ic8e99f71f2da62e5c99863c6d24a8cfe311466cd
Reviewed-on: https://webrtc-review.googlesource.com/c/115682
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26227}
2019-01-11 17:13:36 +00:00
Steve Anton
10542f21c8 (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries
Mechanically generated by running this command:

tools_webrtc/do-renames.sh update all-renames.txt && git cl format

Then manually updating:

tools_webrtc/sanitizers/tsan_suppressions_webrtc.cc

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I54824cd91dada8fc3ee3d098f971bc319d477833
Reviewed-on: https://webrtc-review.googlesource.com/c/115653
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26226}
2019-01-11 17:11:39 +00:00
Oskar Sundbom
8984cd61ca Revert "Add a high bitrate full stack test with fake codec"
This reverts commit 15df2774f4e85cf8900768c1793edcf17d651dcd.

Reason for revert: It's causing the Android perf bots to fail. E.g.: https://ci.chromium.org/buildbot/client.webrtc.perf/Android32%20Tests%20%28L%20Nexus4%29/6666

Original change's description:
> Add a high bitrate full stack test with fake codec
> 
> This CL adds a fake codec factory  in WebRTC that can be used in tests to
> produce target bitrate output.
> 
> We also add a high bitrate test that makes use of fake codec. This test assumes
> ideal network conditions with target bandwidth being available and exercises
> WebRTC calls with a high target bitrate(100 Mbps) end-to-end.
> 
> Bug: chromium:879723
> Change-Id: I981124e2087054ed72c5447e239f28aae0878e29
> Reviewed-on: https://webrtc-review.googlesource.com/c/97185
> Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26182}

TBR=sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org,emircan@webrtc.org,kron@webrtc.org

Change-Id: I33cd01ce345d81d66543f9be99750fa100760b5c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:879723
Reviewed-on: https://webrtc-review.googlesource.com/c/116785
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26192}
2019-01-10 11:49:05 +00:00
Emircan Uysaler
15df2774f4 Add a high bitrate full stack test with fake codec
This CL adds a fake codec factory  in WebRTC that can be used in tests to
produce target bitrate output.

We also add a high bitrate test that makes use of fake codec. This test assumes
ideal network conditions with target bandwidth being available and exercises
WebRTC calls with a high target bitrate(100 Mbps) end-to-end.

Bug: chromium:879723
Change-Id: I981124e2087054ed72c5447e239f28aae0878e29
Reviewed-on: https://webrtc-review.googlesource.com/c/97185
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26182}
2019-01-09 23:49:03 +00:00
Artem Titov
b6c6201b0f Introduce peer connection end-2-end quality test fixture interface.
Also introduce interface for video quality analyze and mock interface,
that then will be extended for audio quality analyze.

Bug: webrtc:10138
Change-Id: I0e3957fb2af1b12e796f154765580ddf562c7814
Reviewed-on: https://webrtc-review.googlesource.com/c/116500
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26157}
2019-01-08 14:36:46 +00:00
Sebastian Jansson
7f57788ab7 Removes trial to enable BBR congestion controller.
The BBR controller can still be injected, but the trials
will no longer work. This reduces the binary size.

Bug: webrtc:8415
Change-Id: I2c32c414d08ef0cc16bfd72651535a755cde9916
Reviewed-on: https://webrtc-review.googlesource.com/c/114120
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26077}
2018-12-20 16:42:07 +00:00
Niels Möller
3f651d80a0 Reland "Add AudioDecoderFactory to NetEqTest constructor."
This is a reland of daa970f33e1923c5651a4a63c18e3d5361d0a795

Original change's description:
> Add AudioDecoderFactory to NetEqTest constructor.
>
> Update EventLogAnalyzer to not depend on builtin audio decoders.
>
> Bug: webrtc:8396, webrtc:10080
> Change-Id: Ie02ed9cda6d4f11bfdf2e65eb6482283b7520738
> Reviewed-on: https://webrtc-review.googlesource.com/c/114301
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26026}

Tbr: kwiberg@webrtc.org
Bug: webrtc:8396, webrtc:10080
Change-Id: I598ce1cd41676b1992b0973b09476eeeb0e602d2
Reviewed-on: https://webrtc-review.googlesource.com/c/114940
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26058}
2018-12-19 15:08:47 +00:00
Niels Möller
b7180c09fc Replace RegisterExternalDecoder in NetEq test VerifyTimestampPropagation.
Bug: webrtc:10080
Change-Id: Ie93f130863115c2d288cfd9f3e273a9fbc982ed6
Reviewed-on: https://webrtc-review.googlesource.com/c/112904
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25927}
2018-12-07 09:28:47 +00:00
Niels Möller
a0f4430b3a Replace RegisterExternalDecoder with decoder factory in NetEqImplTest120ms
Change-Id: I86b5f748f556be186f020a97fcc1211f953fd219

Bug: webrtc:10080
Change-Id: I86b5f748f556be186f020a97fcc1211f953fd219
Reviewed-on: https://webrtc-review.googlesource.com/c/112600
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25869}
2018-12-03 08:34:50 +00:00
Yves Gerey
3e70781361 [Cleanup] Add missing #include. Remove useless ones. IWYU part 2.
This is a follow-up to
https://webrtc-review.googlesource.com/c/src/+/106280.
This time the whole code base is covered.
Some files may have not been fixed though, whenever the IWYU tool
was breaking the build.

Bug: webrtc:8311
Change-Id: I2c31f552a87e887d33931d46e87b6208b1e483ef
Reviewed-on: https://webrtc-review.googlesource.com/c/111965
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25830}
2018-11-28 18:25:07 +00:00
Robin Raymond
ce1b140b8d Adding WinUWP compilation support to WebRTC.
Windows UWP allows an application to be built that targets
across all Windows 10 based systems and the Windows store.

Change-Id: I69694bb7e83fb01ad6db2438b065b55738cf01fd
Bug: webrtc:10046
Reviewed-on: https://webrtc-review.googlesource.com/c/110570
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25814}
2018-11-28 08:32:30 +00:00
Jiawei Ou
c2ebe21ba9 Reland "Use the factory instead of using the builtin code path in VideoCodecInitializer"
Compared the original CL: https://webrtc-review.googlesource.com/c/src/+/94782

This new CL added backward compatible functions to WebRtcMediaEngineFactory so that internal projects will not be broken.

Because of that, now we can revert all the changes to SDK and PeerConnection and do it in following CLs. This makes this CL cleaner.

One temporary disadvantage of this is the media engine now need to take a dependency onto builtin video bitrate factory, but practically it just moved code around and should not result in a large binary size change. We can remove this dependency later if needed.

Bug: webrtc:9513
Change-Id: I38708762ff365e4ca05974b99fac71edc739a756
Reviewed-on: https://webrtc-review.googlesource.com/c/109040
Commit-Queue: Jiawei Ou <ouj@fb.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25574}
2018-11-08 19:10:47 +00:00
Artem Titarenko
34fc346a0c Add support for computing iOS code coverage
Also disable failing PosixSignalDeliveryTest* tests for iOS

Bug: chromium:844647
Change-Id: I64bb233bef2f06f6778f2d475b6d3ad685fb9143
Reviewed-on: https://webrtc-review.googlesource.com/c/105641
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25524}
2018-11-06 15:18:51 +00:00
Qingsi Wang
59844ce57e Revert "Use the factory instead of using the builtin code path in VideoCodecInitializer."
This reverts commit be142178aaf6ab4089b4d81c88c3d59c12cca567.

Reason for revert: breaking internal projects

Original change's description:
> Use the factory instead of using the builtin code path in `VideoCodecInitializer`.
> 
> Bug: webrtc:9513
> Change-Id: Ia299ae1044a3ff4c91e208200938cba540bdcea6
> Reviewed-on: https://webrtc-review.googlesource.com/c/94782
> Commit-Queue: Jiawei Ou <ouj@fb.com>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Seth Hampson <shampson@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25456}

TBR=brandtr@webrtc.org,magjed@webrtc.org,sakal@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,tommi@webrtc.org,kthelgason@webrtc.org,sprang@webrtc.org,srte@webrtc.org,perkj@webrtc.org,tkchin@webrtc.org,shampson@webrtc.org,glaznev@webrtc.org,ouj@fb.com,qingsi@webrtc.org

Change-Id: I8040ccabe3ae6464d72c7696adb663c1dd275b63
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9513
Reviewed-on: https://webrtc-review.googlesource.com/c/108980
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25459}
2018-11-01 04:46:02 +00:00
Jiawei Ou
be142178aa Use the factory instead of using the builtin code path in VideoCodecInitializer.
Bug: webrtc:9513
Change-Id: Ia299ae1044a3ff4c91e208200938cba540bdcea6
Reviewed-on: https://webrtc-review.googlesource.com/c/94782
Commit-Queue: Jiawei Ou <ouj@fb.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25456}
2018-10-31 22:47:02 +00:00
Yves Gerey
21cddffd99 Harmonize paths to dependent targets.
This CL consistently use:
 * relative paths for WebRTC dependent targets (test_support)
 * absolute paths for shared dependent targets (abseil)
This is a necessary (but insufficient) step to build WebRTC tests
from Chromium tree (rtc_include_tests=true), since test/ doesn't
sit anymore in the top level directory.

We also make sure that target declarations and uses are
consistent in regard to build_with_chromium flag.

Bug: webrtc:9943
Bug: webrtc:9855
Change-Id: I21dea98894df2fd4bfe2fd7ee7b71ba971e0ab5b
Reviewed-on: https://webrtc-review.googlesource.com/c/108720
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25445}
2018-10-31 10:04:59 +00:00
Danil Chapovalov
99b71dfd4a Use function_video_(en|de)coder_factory from api
Remove them from test.
It is completion of the move started with
https://webrtc-review.googlesource.com/c/src/+/107705

Bug: None
Change-Id: Ib0b26db04a1ee814322851280ba1e59b4b3f7ce6
Reviewed-on: https://webrtc-review.googlesource.com/c/107891
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25392}
2018-10-26 14:54:19 +00:00
Danil Chapovalov
ddc84e9819 Publish function_video_(en|de)coder_factory into api
Bug: None
Change-Id: Ibdae580c085cfc4b063fdc7f1edb8312de438722
Reviewed-on: https://webrtc-review.googlesource.com/c/107705
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25360}
2018-10-25 12:15:43 +00:00
Artem Titov
8f726be415 Add ability to override detection of resource location and source root
Bug: webrtc:9792
Change-Id: I944d2e1c1b4b4154a90eba6fbe9c417aad17498d
Reviewed-on: https://webrtc-review.googlesource.com/c/107401
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25319}
2018-10-23 14:21:24 +00:00
Mirko Bonadei
bc6a06c058 Adding missing #include on absl/memory/memory.h.
These two files were using absl::make_unique without #including the
header that declares it.

Bug: None
Change-Id: I03019c9a7e06370631680b474d04dd33716b0fe3
Reviewed-on: https://webrtc-review.googlesource.com/c/107041
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25266}
2018-10-19 09:14:01 +00:00
Artem Titov
40a7a35eaa Extract functionality of test_main into separate library.
Extract functionality of test_main into separate library to be able to
reuse it if another main will be required.

Bug: webrtc:5996
Change-Id: I2925b4240bd0e4fb884b43bb16667ca2d6216bbd
Reviewed-on: https://webrtc-review.googlesource.com/c/105921
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25172}
2018-10-15 14:13:06 +00:00
Erik Språng
4529fbcfab Move TemporalLayers to api/video_codecs.
Also renaming it Vp8TemporalLayers to show that it is codec specific.

Bug: webrtc:9012
Change-Id: I18187538b8142cdd7538f1a4ed1bada09d040f1f
Reviewed-on: https://webrtc-review.googlesource.com/c/104643
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25137}
2018-10-12 09:15:21 +00:00
Patrik Höglund
7730193a49 Remove SetExecutablePath, simplify ResourcePath
SetExecutablePath isn't used anymore.

Nobody was using the fancy select-per-platform functionality, and the
documentation was wrong anyway. In the cases somebody needed an
override per platform, they were using defines in their own test
instead. I think that is more verbose but more predictable and easy
to understand (see how it's done in audio_processing_unittest.cc
when loading output_data_mac, for instance).

Bug: webrtc:9792
Change-Id: I7289bf5883fe43852638922d7c7583eae0c08601
Reviewed-on: https://webrtc-review.googlesource.com/c/104482
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25062}
2018-10-09 14:01:16 +00:00
Per Kjellander
841c912ddd Changed FakeVp8Encoder to write dimensions in payload.
Add FakeVp8Decoder that parse width and height from the payload.
Add unit test for testing that width and height is set when decoding frames.


Bug: none
Change-Id: Ifbfff4f62f99625309ce0ef21cf89c76448769d8
Reviewed-on: https://webrtc-review.googlesource.com/c/103140
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25038}
2018-10-08 08:37:38 +00:00
Niels Möller
4dc66c53d0 Move EncodedImage class to api/video/
Bug: webrtc:9378
Change-Id: I8fb3b19cad0ad428abc6c8e6b507180d461882ba
Reviewed-on: https://webrtc-review.googlesource.com/c/104002
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25033}
2018-10-08 07:37:10 +00:00
Patrik Höglund
8434aeb3a7 Use Chromium's code for locating the src dir.
This code is much more sophisticated in that it doesn't rely
on argv[0], but rather asks the OS where our executable is.
We can then simply go two steps up since we count on running
in out/Whatever relative to the src dir. This is how Chromium
does it.

The aim here is to get rid of SetExecutablePath, which will
be the next CL.

Bug: webrtc:9792
Change-Id: I7da027b7391e759b1f612de12f27a244fe884c09
Reviewed-on: https://webrtc-review.googlesource.com/c/103121
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25017}
2018-10-05 14:09:57 +00:00
Oleh Prypin
d136b2884e Prevent NaN and Inf values in webrtc_perf_test
That is, cause a fatal error when a test produces such a result.

Bug: webrtc:9767
Change-Id: I588a34aa1e7e34b3036d5661e894676b21072862
Reviewed-on: https://webrtc-review.googlesource.com/c/101320
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24950}
2018-10-03 12:36:31 +00:00
Mirko Bonadei
e0d455b409 Remove runtime_enabled_feature.
This features is not needed anymore, with this CL it is also possible
to address two issues:
- The need to pick a default implementation.
- The need to use -Wno-global-constructors.

Bug: webrtc:9631, webrtc:9693
Change-Id: Id3daf34179fbc8db26969fc701ccbfa7182c6a9b
Reviewed-on: https://webrtc-review.googlesource.com/102543
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24904}
2018-10-01 07:03:25 +00:00
Niels Möller
cbcbc22568 Reland "Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config."
This is a reland of 529d0d9795b81dbed5e4231f15d3752a5fc0df32

Original change's description:
> Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config.
> 
> Preparation for deleting EnableFrameRecordning, and also a step
> towards landing of the new VideoStreamDecoder.
> 
> Bug: webrtc:9106
> Change-Id: I50964ee458b08a702ec69b82a62e4995c57cee82
> Reviewed-on: https://webrtc-review.googlesource.com/97660
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24861}

Bug: webrtc:9106
Change-Id: I2eb894773b3f33ff6a980e8008e8248607e32668
Reviewed-on: https://webrtc-review.googlesource.com/102480
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24882}
2018-09-28 08:48:02 +00:00
Mirko Bonadei
17f4878419 Remove deprecated field_trial_default and metrics_default.
This CL removes some deprecated build targets (and their headers)
from system_wrappers:
- field_trial_api
- field_trial_default
- metrics_api
- metrics_default

It also refreshes all the dependencies on field_trial.h and metrics.h.

A nice side effect is that it is finally possible to remove 'nogncheck'
from the following files (when it was used with field_trial_default
and metrics_default):
- sdk/objc/api/peerconnection/RTCMetricsSampleInfo+Private.h
- sdk/android/src/jni/pc/peerconnectionfactory.cc
- sdk/objc/api/peerconnection/RTCFieldTrials.mm

Bug: webrtc:9631
Change-Id: Ib621f41ef8ad0aba4fe1c1d7e749c044afc956c3
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/100524
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24878}
2018-09-28 07:21:07 +00:00
Sebastian Jansson
377b26ec65 Revert "Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config."
This reverts commit efb94d57eb88638c323d93dddc281390dada5021.

Reason for revert: Investigate and fix build errors.

Original change's description:
> Revert "Revert "Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config.""
>
> This reverts commit 7961dc2dbdb3391a003d63630d5107e258ff3e78.
>
> Reason for revert: WebRTC does not build
>
> Original change's description:
> > Revert "Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config."
> >
> > This reverts commit 529d0d9795b81dbed5e4231f15d3752a5fc0df32.
> >
> > Reason for revert: Seems to break perf tests, likely some breakage in video_quality_tests decoder configuration.
> >
> > Original change's description:
> > > Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config.
> > >
> > > Preparation for deleting EnableFrameRecordning, and also a step
> > > towards landing of the new VideoStreamDecoder.
> > >
> > > Bug: webrtc:9106
> > > Change-Id: I50964ee458b08a702ec69b82a62e4995c57cee82
> > > Reviewed-on: https://webrtc-review.googlesource.com/97660
> > > Commit-Queue: Niels Moller <nisse@webrtc.org>
> > > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#24861}
> >
> > TBR=brandtr@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,sprang@webrtc.org,philipel@webrtc.org,srte@webrtc.org
> >
> > Change-Id: Id34e4a3452a7dbc06167a4df5bb4c2825ebd7bd0
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: webrtc:9106
> > Reviewed-on: https://webrtc-review.googlesource.com/102421
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Commit-Queue: Niels Moller <nisse@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#24866}
>
> TBR=brandtr@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,sprang@webrtc.org,philipel@webrtc.org,srte@webrtc.org
>
> Change-Id: I23a439e1ceef79109b1f966b80b2663203968269
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9106
> Reviewed-on: https://webrtc-review.googlesource.com/102422
> Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24867}

TBR=brandtr@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,sprang@webrtc.org,philipel@webrtc.org,srte@webrtc.org

Change-Id: I9dafbc070e7f39dcb0ddbd61cb620164258fe894
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9106
Reviewed-on: https://webrtc-review.googlesource.com/102460
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24872}
2018-09-27 16:04:50 +00:00