This is no longer used. Related code in the iSAC codec itself will be
deleted a follow-up CL.
BUG=4210
Review URL: https://codereview.webrtc.org/1404463003
Cr-Commit-Position: refs/heads/master@{#10272}
This is no longer used. Related code in NetEq and the iSAC codec itself
will be deleted in follow-up CLs.
BUG=4210
Review URL: https://codereview.webrtc.org/1404623002
Cr-Commit-Position: refs/heads/master@{#10264}
This CL restructures the RtcEventLog protobuf format, by removing the DebugEvent message. This is done by moving the LOG_START and LOG_END events to the EventType enum and making a seperate message for audio playout events. In addition to these changes, some fields were added to the AudioReceiveConfig and AudioSendConfig messages, but these are for future use and are not currently logged yet.
This is a follow-up to CL 1340283002 which adds a SSRC to AudioPlayout events in the RtcEventLog.
BUG=webrtc:4741
R=henrik.lundin@webrtc.org, stefan@webrtc.org, terelius@webrtc.org
Review URL: https://codereview.webrtc.org/1348113003 .
Cr-Commit-Position: refs/heads/master@{#10221}
We used to link with all audio codecs unconditionally (except Opus);
this patch makes gyp and gn only link to the ones that are used.
This unfortunately fails to have a measurable impact on Chromium
binary size, at least on x86_64 Linux; it turns out that iLBC and iSAC
fix were already being excluded from Chromium by some other means,
likely just the linker omitting compilation units with no incoming
references.
(This was previously landed as revisions 10046 and 10060, and got
reverted because it broke several of the Chromium FYI bots.)
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1368843003
Cr-Commit-Position: refs/heads/master@{#10127}
The playout mode in NetEq can still be set through the constructor
configuration.
BUG=webrtc:3520
Review URL: https://codereview.webrtc.org/1362943004
Cr-Commit-Position: refs/heads/master@{#10089}
This updates the isolate.gypi copies we have to maintain in our
code repo to Chromium's revision 310ea93.
The changes about generating .isolated.gen.json files are needed
to support running with Swarming (https://www.chromium.org/developers/testing/isolated-testing)
Since isolated testing is now using a new launch script
in tools: isolate_driver.py, that's added to our links
script.
In order to use isolate_driver.py, the .isolate files must be in the
same directory as the test_name_run target is defined, which meant
I had to move around some of the isolate files and targets below
webrtc/modules.
BUG=497757
R=maruel@chromium.orgTBR=henrik.lundin@webrtc.org, mflodman@webrtc.org, niklas.enbom@webrtc.org
TESTED=Clobbered trybots:
git cl try -c --bot=linux_compile_rel --bot=mac_compile_rel --bot=win_compile_rel --bot=android_compile_rel --bot=ios_rel -m tryserver.webrtc
Review URL: https://codereview.webrtc.org/1373513002 .
Cr-Commit-Position: refs/heads/master@{#10081}
Reason for revert:
Breaking Chromium FYI bots.
Original issue's description:
> Don't link with audio codecs that we don't use
>
> We used to link with all audio codecs unconditionally (except Opus);
> this patch makes gyp and gn only link to the ones that are used.
>
> (This unfortunately fails to have a measurable impact on Chromium
> binary size, at least on x86_64 Linux; it turns out that iLBC and iSAC
> fix were already being excluded from Chromium by some other means
> (likely just the linker omitting compilation units with no incoming
> references).)
>
> BUG=webrtc:4557
>
> Committed: https://crrev.com/f66a9251424351ea6d631c54dd1feb64cc13d809
> Cr-Commit-Position: refs/heads/master@{#10046}
TBR=henrik.lundin@webrtc.org,tina.legrand@webrtc.org,kjellander@webrtc.org,kwiberg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1368933002
Cr-Commit-Position: refs/heads/master@{#10069}
Instead of FATAL on a bad codec specification, log and return an error
code. This is a band-aid until callers are taught to only give it good
specifications.
BUG=webrtc:5033, chromium:526478
Review URL: https://codereview.webrtc.org/1364193002
Cr-Commit-Position: refs/heads/master@{#10066}
It's good hygiene and just generally the right thing to do. And
apparently at least sometimes required by Microsoft's compiler.
Review URL: https://codereview.webrtc.org/1364233002
Cr-Commit-Position: refs/heads/master@{#10060}
We used to link with all audio codecs unconditionally (except Opus);
this patch makes gyp and gn only link to the ones that are used.
(This unfortunately fails to have a measurable impact on Chromium
binary size, at least on x86_64 Linux; it turns out that iLBC and iSAC
fix were already being excluded from Chromium by some other means
(likely just the linker omitting compilation units with no incoming
references).)
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1349393003
Cr-Commit-Position: refs/heads/master@{#10046}
Bug 4985 revealed two flaws
1. Opus duration estimate did not return correct length for DTX packets,
2. NetEq DoCodecInternalCng did not assign enough buffer.
P.S.
Generalizing problem 1, current NetEq decode function checks memory size by calling the duration estimate function. This is not ideal. A better way is to let codec's decode function to receive buffer size and return failure if it is not enough. This can be made in a separate CL.
BUG=webrtc:4985
R=henrik.lundin@webrtc.org
Review URL: https://codereview.webrtc.org/1334303005 .
Cr-Commit-Position: refs/heads/master@{#10031}
* Make sure they're all final and don't allow copying or assignment.
* Get rid of the single-channel PCM decoder classes.
* Move some includes from .h to .cc files where possible.
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1353803002
Cr-Commit-Position: refs/heads/master@{#10021}
Currently, it's sitting in AudioEncoderIsac*'s files, which is less
than obvious. This CL puts the encoder and decoder in separate files
together with the C implementation; CLs are afoot to make it so for
the other built-in codecs as well.
BUG=webrtc:4557
R=henrik.lundin@webrtc.org
Review URL: https://codereview.webrtc.org/1339253003 .
Cr-Commit-Position: refs/heads/master@{#10018}
All AudioDecoder subclasses have historically lived in NetEq, but they
fit better with the codec they wrap.
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1348613003
Cr-Commit-Position: refs/heads/master@{#10015}
The callback object was not used anymore. Also removing the deprecated
WEBRTC_DTMF_DETECTION macro from engine_configurations.h.
BUG=3520
Review URL: https://codereview.webrtc.org/1353763002
Cr-Commit-Position: refs/heads/master@{#9988}
The functions were essentially no-op. Also removing forward declaration
of ACMDTMFDetection, which was not used.
BUG=3520
Review URL: https://codereview.webrtc.org/1356543003
Cr-Commit-Position: refs/heads/master@{#9982}
All AudioDecoder subclasses have historically lived in NetEq, but they
fit better with the codec they wrap.
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1346993002
Cr-Commit-Position: refs/heads/master@{#9966}
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.
Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.
BUG=chromium:468375
NOTRY=true
Review URL: https://codereview.webrtc.org/1335923002
Cr-Commit-Position: refs/heads/master@{#9964}
All AudioDecoder subclasses have historically lived in NetEq, but they
fit better with the codec they wrap.
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1348053002
Cr-Commit-Position: refs/heads/master@{#9961}
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.
* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS
Related CL: https://codereview.webrtc.org/1335923002/
BUG=chromium:468375
NOTRY=true
Review URL: https://codereview.webrtc.org/1345433002
Cr-Commit-Position: refs/heads/master@{#9953}
If we don't, we'll end up crashing if they're enabled when the speech
encoder is in the middle of encoding a packet, since CNG and RED
assume that the speech encoder starts out with an empty buffer
(because they need to be in sync with it).
BUG=chromium:490368
Review URL: https://codereview.webrtc.org/1331853002
Cr-Commit-Position: refs/heads/master@{#9917}
This makes the sequence of expected calls easier to read. Also, we can
save one line and get rid of a gmock warning by expecting the
MockAudioEncoder object to be destroyed at the end of the test instead
of making a final marker call.
Review URL: https://codereview.webrtc.org/1331793003
Cr-Commit-Position: refs/heads/master@{#9916}
Fix bug 4981, which caused the second half (decreasing loss rates) to
not test anything. In the process, the test is changed slightly to
make it less dependent on the exact rounding behavior of doubles (by
not testing exactly at the the points where the effective loss rate
goes through a step---just very very close). A bunch of symbolic
constants are also replaced with easy-to-read literal numbers.
BUG=4981
Review URL: https://codereview.webrtc.org/1316673010
Cr-Commit-Position: refs/heads/master@{#9908}
Merge the contents of audio_encoder_mutable_opus_test.cc into
audio_encoder_opus_unittest.cc, since they're now both testing
AudioEncoderOpus.
(While preparing this CL, I noted a bug in the PacketLossRateOptimized
test. This CL leaves that test essentially unchanged; I've posted bug
4981 about the problem.)
Review URL: https://codereview.webrtc.org/1319713004
Cr-Commit-Position: refs/heads/master@{#9906}
And the corresponding ACM methods SetISACMaxRate and
SetISACMaxPayloadSize. They were only used in tests.
Review URL: https://codereview.webrtc.org/1311533010
Cr-Commit-Position: refs/heads/master@{#9903}
An option was added to voe_cmd_test to make a RtcEventLog dump.
BUG=webrtc:4741
Review URL: https://codereview.webrtc.org/1267683002
Cr-Commit-Position: refs/heads/master@{#9901}
There's no point in returning a status code, since the max playback rate
is only a suggestion that the encoder is free to disregard.
Review URL: https://codereview.webrtc.org/1332573003
Cr-Commit-Position: refs/heads/master@{#9900}
It makes more sense to combine the two interfaces, since there wasn't
a clear line separating them. The result is a combined interface with
just over a dozen methods, half of which need to be implemented by
every subclass, while the other half have sensible (and trivial)
default implementations and are implemented only by the few subclasses
that need non-default behavior.
Review URL: https://codereview.webrtc.org/1322973004
Cr-Commit-Position: refs/heads/master@{#9894}
This CL adds support for simulating neteq using stored RTP packets as well as calls to GetAudio from an RtcEventLog, using the stored timestamps.
The type of the input file is detected automatically.
BUG=webrtc:4741
Review URL: https://codereview.webrtc.org/1316903002
Cr-Commit-Position: refs/heads/master@{#9886}
The easy way also happens to be more efficient if we have to
reallocate, but that's a minor concern here.
Review URL: https://codereview.webrtc.org/1327053002
Cr-Commit-Position: refs/heads/master@{#9876}
Hopefully, this will make it easier to figure out what's wrong the
next time this happens.
BUG=526478
Review URL: https://codereview.webrtc.org/1313073008
Cr-Commit-Position: refs/heads/master@{#9844}
In some cases, the number of samples (per channel) in NetEq's sync
buffer could fall below the allowed minimum (5 samples for narrowband,
scaling for other rates). If the number of samples extracted from the
buffer was smaller than the desired number, an error is
returned. However, if the decoder returns fewer samples than expected,
it could happen that the sync buffer level falls under the minimum,
but enough samples are extracted. This triggered an assert. With this
change, the minimum level of the sync buffer is always enforced.
A test is implemented to trigger the problem. It made the assert fire
without this fix, but it now passes.
BUG=webrtc:4840
R=minyue@webrtc.org
Review URL: https://codereview.webrtc.org/1324453002 .
Cr-Commit-Position: refs/heads/master@{#9828}