I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`
The only manual edit is to add an include of webrtc/rtc_base/checks.h in
webrtc/modules/audio_device/android/opensles_common.h, which likely
was needed due to changed include paths due to 'git cl format'.
BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True
Review-Url: https://codereview.webrtc.org/2969653002
Cr-Commit-Position: refs/heads/master@{#18871}
(This got reverted because of a problem with the Opus encoder parts.
Re-landing without changes.)
BUG=webrtc:7837
Review-Url: https://codereview.webrtc.org/2950453002
Cr-Commit-Position: refs/heads/master@{#18855}
This was previously reverted, because external projects were using the
internal webrtc::AudioEncoderOpus class and broke when it was renamed.
This re-land avoids renaming it immediately, to give those projects
time to adapt. It also has to revert some of the changes I had made to the
Config struct, since that was also used by the same external projects.
BUG=webrtc:7831
Review-Url: https://codereview.webrtc.org/2948483002
Cr-Commit-Position: refs/heads/master@{#18852}
Some .proto files have newline at the end. This CL levels all our .proto
files. A presubmit check will follow.
NOTRY=True
TBR=minyue@webrtc.org
Bug: None
Change-Id: I988fe94c31abf91c85a45b564c488329d677b958
Reviewed-on: https://chromium-review.googlesource.com/552137
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18823}
We'd like to remove all occurrences of WEBRTC_TRACE and delete the
macro! One logging mechanism is enough.
NOTRY=True
Bug: webrtc:5118
Change-Id: Ic226318e0aebe3a71785fcb4ce07371872ab7128
Reviewed-on: https://chromium-review.googlesource.com/518133
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18712}
The network stats used to be polled from the NetEq object once at the
very end of the simulation. With this change, the stats are polled
once every second, and then aggregated at the end of the run. This
leads to more meaningful numbers.
Bug: webrtc:2692
Change-Id: I9e0f4ddada2f9e42fb9234970deb1af235fffc8c
Reviewed-on: https://chromium-review.googlesource.com/541218
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18682}
This change adds an option to have neteq_rtpplay generate a Matlab
script. When executed in Matlab, the script will generate graphs with
the timing information from the test run.
The script is generated when the flag --matlabplot is passed to
neteq_rtpplay.
The CL also adds better checking and reporting about packets discarded
in the process of finding out the initial sampling rate.
Bug: webrtc:2692, webrtc:7467
Change-Id: I805e7c83b82533142b6e74bf065506e3d60a8170
Reviewed-on: https://chromium-review.googlesource.com/541276
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18680}
BUG=webrtc:7854
Change-Id: I12c33b8558fd49374a55282c391b87fde9e13a28
Reviewed-on: https://chromium-review.googlesource.com/535554
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Michael T <tschumim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18661}
Reason for revert:
Breaking google3 projects
Original issue's description:
> Opus implementation of the AudioEncoderFactoryTemplate API
>
> Now the templated AudioEncoderFactory can create Opus encoders!
>
> BUG=webrtc:7831
>
> Review-Url: https://codereview.webrtc.org/2930243003
> Cr-Commit-Position: refs/heads/master@{#18645}
> Committed: fe1aa82c63TBR=ossu@webrtc.org,solenberg@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7831
Review-Url: https://codereview.webrtc.org/2947563002
Cr-Commit-Position: refs/heads/master@{#18649}
Reason for revert:
breaking downstream projects
Original issue's description:
> Opus implementation of the AudioDecoderFactoryTemplate API
>
> BUG=webrtc:7837
>
> Review-Url: https://codereview.webrtc.org/2942733003
> Cr-Commit-Position: refs/heads/master@{#18646}
> Committed: d053fe4ab3TBR=ossu@webrtc.org,solenberg@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7837
Review-Url: https://codereview.webrtc.org/2944763002
Cr-Commit-Position: refs/heads/master@{#18648}
Now the templated AudioEncoderFactory can create Opus encoders!
BUG=webrtc:7831
Review-Url: https://codereview.webrtc.org/2930243003
Cr-Commit-Position: refs/heads/master@{#18645}
Now the templated AudioEncoderFactory can create G722 encoders!
BUG=webrtc:7833
Review-Url: https://codereview.webrtc.org/2934833002
Cr-Commit-Position: refs/heads/master@{#18644}
Now the templated AudioDecoderFactory can create G722 decoders!
BUG=webrtc:7839
Review-Url: https://codereview.webrtc.org/2940833002
Cr-Commit-Position: refs/heads/master@{#18643}
Imprecisions in floating point representation caused noise in the
graphs. The integer division is in fact exact.
BUG= webrtc:7467
Review-Url: https://codereview.webrtc.org/2933053002
Cr-Commit-Position: refs/heads/master@{#18592}
This CL adds the capability to analyze and plot how NetEq behaves in
response to a network trace.
BUG=webrtc:7467
Review-Url: https://codereview.webrtc.org/2876423002
Cr-Commit-Position: refs/heads/master@{#18590}
LastDecoderError was only used in tests. LastError was only used in
conjunction with RemovePayloadType, and always to distinguish between
"decoder not found" and "other error". In AcmReceiver, "decoder not
found" was not treated as an error.
With this change, calling NetEq::RemovePayloadType with a payload type
that is not registered is no longer considered to be an error. This
allows to rewrite the code in AcmReceiver, such that it no longer has
to call LastError.
The internal member variables NetEqImpl::error_code_ and
NetEqImpl::decoder_error_code_ are removed, since they were no longer
read.
Bug: none
Change-Id: Ibfe97265954a2870c3caea4a34aac958351d7ff1
Reviewed-on: https://chromium-review.googlesource.com/535533
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18588}
const int16_t* data() const;
int16_t* mutable_data();
- data() returns a zeroed static buffer on muted frames (to avoid unnecessary zeroing of the member buffer) and directly returns AudioFrame::data_ on unmuted frames.
- mutable_data(), lazily zeroes AudioFrame::data_ if the frame is currently muted, sets muted=false, and returns AudioFrame::data_.
These accessors serve to "force" callers to be aware of the mute state field, i.e. lazy zeroing is not the primary motivation.
This change only optimizes handling of muted frames where it is somewhat trivial to do so. Other improvements requiring more significant structural changes will come later.
BUG=webrtc:7343
TBR=henrika
Review-Url: https://codereview.webrtc.org/2750783004
Cr-Commit-Position: refs/heads/master@{#18543}
Specifically, just like SafeMin() and SafeMax() it handles all
combinations of integer and all
combinations of floating-point arguments by picking a
result type that is guaranteed to be able to hold the result.
This CL also replaces a bunch of std::min + std:max call pairs with
calls to SafeClamp()---the ones that could easily be found by grep
because "min" and "max" were on the same line. :-)
BUG=webrtc:7459
Review-Url: https://codereview.webrtc.org/2808513003
Cr-Commit-Position: refs/heads/master@{#18542}
This is a minor clean-up made possible by simplifications done in the
past.
Bug: none
Change-Id: Id0ea167572f8da36db5de949441f67a2a18555be
Reviewed-on: https://chromium-review.googlesource.com/528073
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18490}
A recent change (https://codereview.webrtc.org/2855143002/) introduced
a bug in RtcEventLogSource::NextPacket(). The rtp_packet_index_ must
be incremented when a valid packet is found and delivered. Otherwise,
the same packet will be delivered over and over again.
The recent change also altered the way that audio packets are sifted out. Now, the RTP header is always parsed before discarding any non-audio packets. This means that RtpHeaderParser::Parse is always called, also with video packets, which sometimes contain padding. When header-only dumps (such as RtcEventLogs) are created, the payload is stripped, and the payload length is equal to
the RTP header length. However, if the original packet was padded, the
RTP header will carry information about this padding length, and the
parser will check that the pyaload length is at least the header +
padding. This is not the case for header-only dumps, and the parser will return an error. In this CL, we ignore that error when a header-only packet has padding length larger than 0.
BUG=webrtc:7538
Review-Url: https://codereview.webrtc.org/2912323003
Cr-Commit-Position: refs/heads/master@{#18385}
Reason for revert:
Fixing and re-landing.
Original issue's description:
> Revert of Enabling `gn check` on webrtc/test (patchset #9 id:160001 of https://codereview.webrtc.org/2911203002/ )
>
> Reason for revert:
> ERROR at //webrtc/test/testsupport/fileutils_unittest.cc:20:11: Can't include this header from here.
> #include "webrtc/base/checks.h"
> ^-------------------
> The target:
> //webrtc/test:fileutils_unittests
> is including a file from the target:
> //webrtc/base:rtc_base_approved
>
> It's usually best to depend directly on the destination target.
> In some cases, the destination target is considered a subcomponent
> of an intermediate target. In this case, the intermediate target
> should depend publicly on the destination to forward the ability
> to include headers.
>
> Dependency chain (there may also be others):
> //webrtc/test:fileutils_unittests -->
> //webrtc/test:fileutils --[private]-->
> //webrtc/base:rtc_base_approved
>
>
> Original issue's description:
> > Enabling `gn check` on webrtc/test
> >
> > BUG=webrtc:6828
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2911203002
> > Cr-Commit-Position: refs/heads/master@{#18372}
> > Committed: db5bb404b0
>
> TBR=kjellander@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6828
>
> Review-Url: https://codereview.webrtc.org/2920763002
> Cr-Commit-Position: refs/heads/master@{#18375}
> Committed: 1a6f143d07TBR=kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6828
Review-Url: https://codereview.webrtc.org/2918793002
Cr-Commit-Position: refs/heads/master@{#18376}
Reason for revert:
ERROR at //webrtc/test/testsupport/fileutils_unittest.cc:20:11: Can't include this header from here.
#include "webrtc/base/checks.h"
^-------------------
The target:
//webrtc/test:fileutils_unittests
is including a file from the target:
//webrtc/base:rtc_base_approved
It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.
Dependency chain (there may also be others):
//webrtc/test:fileutils_unittests -->
//webrtc/test:fileutils --[private]-->
//webrtc/base:rtc_base_approved
Original issue's description:
> Enabling `gn check` on webrtc/test
>
> BUG=webrtc:6828
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2911203002
> Cr-Commit-Position: refs/heads/master@{#18372}
> Committed: db5bb404b0TBR=kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6828
Review-Url: https://codereview.webrtc.org/2920763002
Cr-Commit-Position: refs/heads/master@{#18375}
Use an overloaded version of UpdateNetworkMetrics() which does not require us to explicitly pass in an rtc::Optional.
BUG=None
Review-Url: https://codereview.webrtc.org/2899313004
Cr-Commit-Position: refs/heads/master@{#18347}
(This CL concerns both the PLR-based as well as the RPLR-based versions of FecController.)
1. Make FecController disable only when below the disabling-threshold, so as to prevent toggling when the enabling-curve and the disabling-curve are identical.
2. Extend unit-test coverage accordingly.
BUG=None
Review-Url: https://codereview.webrtc.org/2906663002
Cr-Commit-Position: refs/heads/master@{#18337}
Biggest change is to Remove MediaType as argument to RtcEventLog::LogRtpHeader and RtcEventLog::LogRtcpHeader.
Since the type is used by tools, these tools are rewritten to figure out the media type from the configurations instead.
BUG=webrtc:7538
TBR=solenberg@webrtc.org // For call.cc and voiceengine.cc
Review-Url: https://codereview.webrtc.org/2855143002
Cr-Commit-Position: refs/heads/master@{#18324}
Negating an int can result in a value that cannot be represented as an int. This is fixed here by using a 64 bit variable.
BUG=chromium:663611
Review-Url: https://codereview.webrtc.org/2879863002
Cr-Commit-Position: refs/heads/master@{#18167}
This header was not tracked by a GN target and in the discussion on
https://bugs.chromium.org/p/webrtc/issues/detail?id=7617 we decided
to also move it under webrtc/base.
I checked in chromium code search and it seems safe to move it
without creating a stub header in webrtc/system_wrappers.
BUG=webrtc:7617
Review-Url: https://codereview.webrtc.org/2882673002
Cr-Commit-Position: refs/heads/master@{#18151}
RTP packets can be padded with extra data at the end of the payload. The usable
payload length of the packet should then be reduced with the padding length,
since the padding must be discarded. This was not the case; instead, the entire
payload, including padding data, was forwarded to the audio channel and in the
end to the decoder.
A special case of padding is packets which are empty except for the padding.
That is, they carry no usable payload. These packets are sometimes used for
probing the network and were discarded in
RTPReceiverAudio::ParseAudioCodecSpecific. The result is that NetEq never sees
those empty packets, just the holes in the sequence number series; this can
throw off the target buffer calculations.
With this change, the empty (after removing the padding) packets are let through,
all the way down to NetEq, to a new method called NetEq::InsertEmptyPacket. This
method notifies the DelayManager that an empty packet was received.
BUG=webrtc:7610, webrtc:7625
Review-Url: https://codereview.webrtc.org/2870043003
Cr-Commit-Position: refs/heads/master@{#18083}
After a Merge operation, the statistics for number of samples
generated using Expand must be corrected, and the correction can in
fact be negative. However, a bug was introduced in
https://codereview.webrtc.org/1230503003 which uses a size_t to
represent the correction, which leads to wrap-around of the negative
value. This is not a problem in itself, since this value is added to
another size_t, with the effect that the desired subtraction happens
anyway.
The actual problem arises if the statistics are polled/reset before a
subtraction happens -- that is, between an Expand and a Merge
operation. This will lead to an actual wrap-around of the stats value,
and large expand_rate (16384) is reported.
BUG=webrtc:7554
Review-Url: https://codereview.webrtc.org/2859483005
Cr-Commit-Position: refs/heads/master@{#18029}
This change allows more callbacks to be registered to the test object.
The callbacks are used to give the user of the test object the ability
to instrument the test object. This CL specifically adds
instrumentation points just after a packet is inserted into NetEq, and
just after audio is pulled out of NetEq.
BUG=webrtc:7467
Review-Url: https://codereview.webrtc.org/2851383004
Cr-Commit-Position: refs/heads/master@{#18014}
Plumbed AudioEncoderFactory up into CreatePeerConnectionFactory.
BUG=webrtc:5806
Review-Url: https://codereview.webrtc.org/2799033006
Cr-Commit-Position: refs/heads/master@{#17977}
Reason for revert:
Fourth attempt to land.
Waiting for https://codereview.webrtc.org/2845013003 to
avoid conflicts on webrtc/modules/audio_coding:neteq_unittest_tools.
Original issue's description:
> Revert of Enable GN check for webrtc/base (patchset #13 id:240001 of https://codereview.webrtc.org/2717083002/ )
>
> Reason for revert:
> Breaks Chromium because in Chromium we import WebRTC with rtc_include_tests=false (https://bugs.chromium.org/p/chromium/issues/detail?id=713179#c6).
>
> Chromium uses webrtc/test/fuzzers and this CL adds test dependencies to neteq_rtc_fuzzer.
>
> Original issue's description:
> > Enable GN check for webrtc/base
> >
> > It's not possible to enable it for the rtc_base_approved
> > target but since a larger refactoring is ongoing for webrtc/base
> > this CL doesn't attempt to fix that.
> >
> > Changes made:
> > * Move webrtc/system_wrappers/include/stringize_macros.h into
> > webrtc/base:rtc_base_approved_unittests (and corresponding
> > unit test to rtc_base_approved_unittests).
> > * Move md5digest.* from rtc_base_approved to rtc_base_test_utils target.
> > * Move webrtc/system_wrappers/include/stringize_macros.h (+test) into
> > webrtc/base.
> > * Remove unused use include of webrtc/base/fileutils.h in
> > webrtc/base/pathutils.cc
> >
> > BUG=webrtc:6828, webrtc:3806, webrtc:7480
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2717083002
> > Cr-Commit-Position: refs/heads/master@{#17766}
> > Committed: ed754e71ae
>
> TBR=perkj@webrtc.org,tommi@webrtc.org,nisse@webrtc.org,kjellander@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:6828, webrtc:3806, webrtc:7480
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2838683002
> Cr-Commit-Position: refs/heads/master@{#17849}
> Committed: 11ed366c48TBR=perkj@webrtc.org,tommi@webrtc.org,nisse@webrtc.org,kjellander@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6828, webrtc:3806, webrtc:7480
Review-Url: https://codereview.webrtc.org/2852663002
Cr-Commit-Position: refs/heads/master@{#17927}