It can be computed from other members, notably the current encoder's
number of channels.
BUG=webrtc:5028
Review URL: https://codereview.webrtc.org/1423803007
Cr-Commit-Position: refs/heads/master@{#10585}
Future CLs will move it even further down the stack.
BUG=webrtc:5028
Review URL: https://codereview.webrtc.org/1431103002
Cr-Commit-Position: refs/heads/master@{#10580}
This changes the following module directories:
* webrtc/modules/audio_conference_mixer/interface
* webrtc/modules/interface
* webrtc/modules/media_file/interface
* webrtc/modules/rtp_rtcp/interface
* webrtc/modules/utility/interface
To avoid breaking downstream, I followed this recipe:
1. Copy the interface dir to a new sibling directory: include
2. Update the header guards in the include directory to match the style guide.
3. Update the header guards in the interface directory to match the ones in include. This is required to avoid getting redefinitions in the not-yet-updated downstream code.
4. Add a pragma warning in the header files in the interface dir. Example:
#pragma message("WARNING: webrtc/modules/interface is DEPRECATED; "
"use webrtc/modules/include")
5. Search for all source references to webrtc/modules/interface and update them to webrtc/modules/include (*.c*,*.h,*.mm,*.S)
6. Update all GYP+GN files. This required manual inspection since many subdirectories of webrtc/modules referenced the interface dir using ../interface etc(*.gyp*,*.gn*)
BUG=5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel -m tryserver.webrtc
R=stefan@webrtc.org, tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1417683006 .
Cr-Commit-Position: refs/heads/master@{#10500}
This method is no longer called. With that gone, a number of other
methods and member variables are obsoleted, and removed.
Methods deleted:
AcmReceiver::InsertStreamOfSyncPackets
AcmReceiver::GetNumSyncPacketToInsert()
AcmReceiver::GetSilence, never called
Member variables deleted:
missing_packets_sync_stream_
late_packets_sync_stream_
av_sync_
initial_delay_manager_
BUG=webrtc:3520
Review URL: https://codereview.webrtc.org/1419573013
Cr-Commit-Position: refs/heads/master@{#10484}
This change avoids calling neteq_->EnableVad() and DisableVad from the
AcmReceiver constructor. Instead, the new member
enable_post_decode_vad is added to NetEq's config struct. It is
disabled by defualt, but ACM sets it to enabled. This preserves the
behavior both of NetEq stand-alone (i.e., in tests) and of ACM.
BUG=webrtc:3520
Review URL: https://codereview.webrtc.org/1425133002
Cr-Commit-Position: refs/heads/master@{#10476}
The end goal is to remove AcmReceiver::SetInitialDelay. This change is
in preparation for that goal. It turns out that
AcmReceiver::SetInitialDelay was only invoked through the following
call chain, where each method in the chain is never referenced from
anywhere else (except from tests in some cases):
ViEChannel::SetReceiverBufferingMode
-> ViESyncModule::SetTargetBufferingDelay
-> VoEVideoSync::SetInitialPlayoutDelay
-> Channel::SetInitialPlayoutDelay
-> AudioCodingModule::SetInitialPlayoutDelay
-> AcmReceiver::SetInitialDelay
The start of the chain, ViEChannel::SetReceiverBufferingMode was never
referenced.
This change deletes all the methods above except
AcmReceiver::SetInitialDelay itself, which will be handled in a
follow-up change.
BUG=webrtc:3520
Review URL: https://codereview.webrtc.org/1421013006
Cr-Commit-Position: refs/heads/master@{#10471}
The former is very similar to the latter, but less general (mostly in
naming).
This CL, which is the first to use Maybe at scale, also removes the implicit conversion from T to Maybe<T>, since it was agreed that the increased verbosity increased legibility.
Review URL: https://codereview.webrtc.org/1430433004
Cr-Commit-Position: refs/heads/master@{#10461}
This operation was relatively simple, since no one was doing anything
fishy with this enum. A large number of lines had to be changed
because the enum values now live in their own namespace, but this is
arguably worth it since it is now much clearer what sort of constant
they are.
BUG=webrtc:5028
Review URL: https://codereview.webrtc.org/1424083002
Cr-Commit-Position: refs/heads/master@{#10449}
Negative acknowledgement (NACK) has up to now been implemented in
ACM. But, since NetEq is in charge of the actual packet buffer, it
makes more sense to have the NACK functionlaity in there.
This CL does the following:
- Move nack.{h,cc} and the unit tests from main/acm2 to neteq.
- Move the NACK related code in ACM into NetEq.
- NACK related functions in AcmReceiver are changed to simple
forwarding APIs.
- Remove unused members in AcmReceiver.
- Remove unused API functions in NetEq.
BUG=webrtc:3520
Review URL: https://codereview.webrtc.org/1410073006
Cr-Commit-Position: refs/heads/master@{#10448}
Following CLs will finish the takeover completely. After that,
RentACodec will also start creating and owning codecs, at which point
its name will start making sense.
BUG=webrtc:5028
Review URL: https://codereview.webrtc.org/1412683006
Cr-Commit-Position: refs/heads/master@{#10432}
We have decided not to do a switch from old (AudioCodingModule) to new
(AudioCoding) API. Instead, we will gradually evolve the old API to
meet the new design goals.
As a consequence of this decision, the AudioCoding and AudioCodingImpl
classes are deleted. Also removing associated unit test sources. No
test coverage is lost with this operation, since the tests for the
"old" API are testing more than the deleted tests did.
BUG=webrtc:3520
Review URL: https://codereview.webrtc.org/1415163002
Cr-Commit-Position: refs/heads/master@{#10406}
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}
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}
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}
* 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 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}
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}
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}
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}