159 Commits

Author SHA1 Message Date
kwiberg
84f6a3fc6b Move optional.h to webrtc/api/
We use Optional in our public API, so its header should be in
webrtc/api/.

BUG=webrtc:8205

Review-Url: https://codereview.webrtc.org/3011943002
Cr-Commit-Position: refs/heads/master@{#19693}
2017-09-05 15:43:13 +00:00
kwiberg
529662a44c Move array_view.h to webrtc/api/
We use ArrayView in our public API, so its header should be in
webrtc/api/.

BUG=none

Review-Url: https://codereview.webrtc.org/3007763002
Cr-Commit-Position: refs/heads/master@{#19658}
2017-09-04 12:43:17 +00:00
Steve Anton
2dbc69fa64 Add stats totalSamplesReceived and concealedSamples
Adds two new stats to RTCMediaStreamTrackStats:
* totalSamplesReceived is the total number of samples received on
      the audio channel and includes real and synthetic samples.
* concealedSamples is the total number of synthetic samples
      received on the audio channel used to conceal packet loss.

Bug: webrtc:8076
Change-Id: I36e9828525ec341490cf3310a972b56a8b443667
Reviewed-on: https://chromium-review.googlesource.com/615902
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19506}
2017-08-25 00:50:42 +00:00
minyue-webrtc
0c3ca753c5 Replacing NetEq discard rate with secondary discarded rate.
NetEq network statistics contains discard rate but has not been used and even not been implemented until recently.

According to w3c.github.io/webrtc-stats/#dom-rtcreceivedrtpstreamstats-packetsdiscarded,
this statistics needs to be replaced with an accumulative stats. Such work will be carried out separately.

Meanwhile, we need to add a rate to reflect rate of discarded redundant packets. See webrtc:8025.

In this CL, we replace the existing discard rate with secondary discarded rate, so as to
1. fulfill the requests on webrtc:8025
2. get ready to implement an accumulative statistics for discarded packets.

BUG: webrtc:7903,webrtc:8025
Change-Id: Idbf143a105db76ca15f0af54848e1448f2a810ec
Reviewed-on: https://chromium-review.googlesource.com/582863
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19495}
2017-08-24 13:46:52 +00:00
kwiberg
6ff045f097 Give Audio{De,En}coderIsac* an "Impl" suffix, to free up the original names
I want to publish an API for iSAC in webrtc/api/, and I want to use
the class names Audio{De,En}coderIsac{Fix,Float}.

BUG=webrtc:7835, webrtc:7841

Review-Url: https://codereview.webrtc.org/2996593002
Cr-Commit-Position: refs/heads/master@{#19381}
2017-08-17 12:31:02 +00:00
Jonathan Yu
36344a0c9b Fix incorrect memset on muted frames.
Broken by https://codereview.webrtc.org/2750783004/. Since samples are
two bytes each, only half of the buffer was being zeroed, leading to
garbage noise.

BUG=webrtc:7885,webrtc:7343

Change-Id: I46ecf90258b681ccdebbcfadd2e84ac6abadc9fe
Reviewed-on: https://chromium-review.googlesource.com/593092
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Jonathan Yu <yujo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19194}
2017-07-31 22:18:41 +00:00
minyue-webrtc
516711cde9 Turning on Opus 120ms frame length switch.
Chromium has adopted Opus 1.2.1 which allows 120ms frame encoding. It
is time to turn on the switch for building WebRTC with this feature.


Bug: webrtc:8042
TBR: kjellander@webrtc.org
Change-Id: I644b47cfb56f835695ef1263741cda6e3ee3d862
Reviewed-on: https://chromium-review.googlesource.com/586725
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Felicia Lim <flim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19173}
2017-07-27 17:23:35 +00:00
minyue-webrtc
adb58b88a1 Renable some Opus tests after Opus 1.2.1 update.
Bug: webrtc:8024
Change-Id: Ia7b9de70ef85e4ac32a7b84088b79cc6a260cc69
Reviewed-on: https://chromium-review.googlesource.com/586867
Reviewed-by: Felicia Lim <flim@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19164}
2017-07-27 07:40:14 +00:00
flim
bf8202185c Disable some Opus tests pending an update
These tests will be reenabled and updated after Opus has been updated in
Chromium and rolled into WebRTC.

BUG=737323, webrtc:8024

Review-Url: https://codereview.webrtc.org/2963673002
Cr-Commit-Position: refs/heads/master@{#19118}
2017-07-24 09:17:38 +00:00
Noah Richards
bc8ee33658 Remove verbose logs from audio_coding_module.cc.
PlayoutFrequency(), at least, is called ~200 times a second. The others
appear to not be in practice, but it's unclear what value they serve.

They were traces before https://chromium-review.googlesource.com/c/518133/,
which was more reasonable, as you could enable them for just audio
coding traces. But now that they are just logs, they make all VERBOSE
logging unusable.

Bug: webrtc:7959
Change-Id: I190a61c8ff4c0f047798087e80adbb41d791fc29
Reviewed-on: https://chromium-review.googlesource.com/563881
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Noah Richards <noahric@chromium.org>
Cr-Commit-Position: refs/heads/master@{#18956}
2017-07-10 17:36:28 +00:00
Edward Lemur
c20978e581 Rename webrtc/base -> webrtc/rtc_base
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.
NOTRY=True
NOTREECHECKS=True
TBR=kwiberg@webrtc.org, kjellander@webrtc.org

Bug: webrtc:7634
Change-Id: I3cca0fbaa807b563c95979cccd6d1bec32055f36
Reviewed-on: https://chromium-review.googlesource.com/562156
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18919}
2017-07-06 19:11:40 +00:00
Henrik Kjellander
dca1e09db7 Revert "Update includes for webrtc/{base => rtc_base} rename (1/3)"
This reverts commit c8fa692ec44fd6ba4fa3d085ac3161a262fc18c5.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2964773002 .
Cr-Commit-Position: refs/heads/master@{#18872}
2017-07-01 14:42:25 +00:00
kjellander
c8fa692ec4 Update includes for webrtc/{base => rtc_base} rename (1/3)
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}
2017-06-30 21:02:00 +00:00
solenberg
db3c9b0f72 Expose ILBC codec in webrtc/api/audio_codecs/
BUG=webrtc:7834, webrtc:7840

Review-Url: https://codereview.webrtc.org/2951873002
Cr-Commit-Position: refs/heads/master@{#18803}
2017-06-28 09:05:04 +00:00
Alex Loiko
300ec8c8db Remove WEBRTC_TRACE from webrtc/modules/audio_coding
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}
2017-06-22 10:05:51 +00:00
charujain
1a610f15c3 Revert of Opus implementation of the AudioEncoderFactoryTemplate API (patchset #4 id:80001 of https://codereview.webrtc.org/2930243003/ )
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: fe1aa82c63

TBR=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}
2017-06-18 09:38:58 +00:00
kwiberg
fe1aa82c63 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}
2017-06-18 01:23:03 +00:00
kwiberg
b8727aebc1 G722 implementation of the AudioEncoderFactoryTemplate API
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}
2017-06-18 00:41:59 +00:00
Henrik Lundin
6af9399117 ACM: Make AcmReceiver's ownership of NetEq more obvious
Bug: None
Change-Id: Iff544940fcbd651c967771c209c8c0c3aaeda9a1
Reviewed-on: https://chromium-review.googlesource.com/533073
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18607}
2017-06-15 10:11:07 +00:00
Henrik Lundin
c417d9e558 NetEq: Removing LastError and LastDecoderError
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}
2017-06-14 12:06:24 +00:00
yujo
36b1a5fcec Add mute state field to AudioFrame and switch some callers to use it. Also make AudioFrame::data_ private and instead provide:
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}
2017-06-12 19:45:32 +00:00
Henrik Lundin
f474c19937 ACM tests: separate checksums for Android ARM64 clang and non-clang
BUG=webrtc:7793

Change-Id: Ifa488753c4382bead8103e4711d72b52b03c8b32
Reviewed-on: https://chromium-review.googlesource.com/530851
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18535}
2017-06-12 13:16:30 +00:00
Henrik Lundin
02ed201182 AcmReceiver: Make a member variable const
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}
2017-06-08 09:18:14 +00:00
henrik.lundin
b8c55b15a3 Handle padded audio packets correctly
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}
2017-05-10 14:38:01 +00:00
ossu
eb1fde4a26 Injectable audio encoders: Moved audio encoder, factory and builtin factory to api/.
Plumbed AudioEncoderFactory up into CreatePeerConnectionFactory.

BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2799033006
Cr-Commit-Position: refs/heads/master@{#17977}
2017-05-02 13:46:30 +00:00
Henrik Lundin
70c09bde41 Reland of Change NetEq::InsertPacket to take an RTPHeader (patchset #1 id:1 of https://codereview.webrtc.org/2812933002/ )
Reason for revert:
Downstream roadblock should be cleared by now. Relanding original patch.

Original issue's description:
> Revert of Change NetEq::InsertPacket to take an RTPHeader (patchset #2 id:20001 of https://codereview.webrtc.org/2807273004/ )
>
> Reason for revert:
> Broke downstream dependencies.
>
> Original issue's description:
> > Change NetEq::InsertPacket to take an RTPHeader
> >
> > It used to take a WebRtcRTPHeader as input, which has an RTPHeader as
> > a member. None of the other member in WebRtcRTPHeader where used in
> > NetEq.
> >
> > This CL adapts the production code; tests and tools will be converted
> > in a follow-up CL.
> >
> > BUG=webrtc:7467
> >
> > Review-Url: https://codereview.webrtc.org/2807273004
> > Cr-Commit-Position: refs/heads/master@{#17652}
> > Committed: 4d027576a6
>
> TBR=ivoc@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7467
>
> Review-Url: https://codereview.webrtc.org/2812933002
> Cr-Commit-Position: refs/heads/master@{#17657}
> Committed: 10d095d4f7

R=ivoc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng
BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2835093002 .
Cr-Commit-Position: refs/heads/master@{#17843}
2017-04-24 13:56:57 +00:00
henrik.lundin
10d095d4f7 Revert of Change NetEq::InsertPacket to take an RTPHeader (patchset #2 id:20001 of https://codereview.webrtc.org/2807273004/ )
Reason for revert:
Broke downstream dependencies.

Original issue's description:
> Change NetEq::InsertPacket to take an RTPHeader
>
> It used to take a WebRtcRTPHeader as input, which has an RTPHeader as
> a member. None of the other member in WebRtcRTPHeader where used in
> NetEq.
>
> This CL adapts the production code; tests and tools will be converted
> in a follow-up CL.
>
> BUG=webrtc:7467
>
> Review-Url: https://codereview.webrtc.org/2807273004
> Cr-Commit-Position: refs/heads/master@{#17652}
> Committed: 4d027576a6

TBR=ivoc@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2812933002
Cr-Commit-Position: refs/heads/master@{#17657}
2017-04-11 14:47:59 +00:00
henrik.lundin
4d027576a6 Change NetEq::InsertPacket to take an RTPHeader
It used to take a WebRtcRTPHeader as input, which has an RTPHeader as
a member. None of the other member in WebRtcRTPHeader where used in
NetEq.

This CL adapts the production code; tests and tools will be converted
in a follow-up CL.

BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2807273004
Cr-Commit-Position: refs/heads/master@{#17652}
2017-04-11 13:17:46 +00:00
kwiberg
37e99fd3fa Move AudioDecoder and AudioDecoderFactory mocks to webrtc/test/
AudioDecoder and AudioDecoderFactory are in webrtc/api/ now, so move
their mocks to someplace central where tests from all over WebRTC are
allowed to #include them.

BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2798063004
Cr-Commit-Position: refs/heads/master@{#17619}
2017-04-10 12:15:48 +00:00
soren
9f2c18e237 Changed OLA window for neteq. Old code didnt work well with 48khz
fixing white spaces

updated authors file

Changed OLA window to use Q14 as Q5 dosnt work with 48khz. 1 ms @ 48 khz is > 2^5

BUG=webrtc:1361

Review-Url: https://codereview.webrtc.org/2763273003
Cr-Commit-Position: refs/heads/master@{#17611}
2017-04-10 09:22:46 +00:00
ossu
a1a040a4a4 Injectable audio encoders: BuiltinAudioEncoderFactory
This CL contains all the changes made to audio_coding while making
audio encoders injectable. Apart from some small changes to
webrtcvoiceengine, nothing here is hooked up to the outside
world. Those changes will be added to a follow-up CL.

BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2695243005
Cr-Commit-Position: refs/heads/master@{#17569}
2017-04-06 17:03:21 +00:00
henrik.lundin
24180017d5 ACM: Change test output files from PCM to WAV
This makes the test files easier to analyze.

BUG=none

Review-Url: https://codereview.webrtc.org/2752543007
Cr-Commit-Position: refs/heads/master@{#17559}
2017-04-06 09:40:37 +00:00
nisse
368f5cf27e Replace use of system_wrappers/include/logging.h by base/logging.h.
BUG=webrtc:5118

Review-Url: https://codereview.webrtc.org/2781343002
Cr-Commit-Position: refs/heads/master@{#17539}
2017-04-05 12:00:33 +00:00
nisse
0ffdcc51bc Delete unneeded includes of deprecated system_wrappers include files.
Deletes left-over includes of trace.h and critical_section_wrapper.h.

BUG=webrtc:7035

Review-Url: https://codereview.webrtc.org/2784873002
Cr-Commit-Position: refs/heads/master@{#17460}
2017-03-30 07:31:15 +00:00
kwiberg
1c07c70d88 Reland "WebRtcVoiceMediaChannel::AddRecvStream: Don't call SetRecPayloadType"
BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2774833003
Cr-Commit-Position: refs/heads/master@{#17391}
2017-03-27 14:15:49 +00:00
kwiberg
670a7f3611 Revert of WebRtcVoiceMediaChannel::AddRecvStream: Don't call SetRecPayloadType (patchset #13 id:260001 of https://codereview.webrtc.org/2686043006/ )
Reason for revert:
Makes perf and Chromium FYI bots unhappy.

Original issue's description:
> WebRtcVoiceMediaChannel::AddRecvStream: Don't call SetRecPayloadType
>
> This removes one more place where we were unable to handle codecs not
> in the built-in set.
>
> BUG=webrtc:5805
>
> Review-Url: https://codereview.webrtc.org/2686043006
> Cr-Commit-Position: refs/heads/master@{#17370}
> Committed: 1724cfbdba

TBR=ossu@webrtc.org,solenberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2772043002
Cr-Commit-Position: refs/heads/master@{#17374}
2017-03-24 12:56:21 +00:00
kwiberg
1724cfbdba WebRtcVoiceMediaChannel::AddRecvStream: Don't call SetRecPayloadType
This removes one more place where we were unable to handle codecs not
in the built-in set.

BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2686043006
Cr-Commit-Position: refs/heads/master@{#17370}
2017-03-24 10:16:04 +00:00
minyue
a613eb6bff Fixing a few tests for the upcoming Opus 1.2-alpha.
BUG=b/35415318

NOTRY=True

Review-Url: https://codereview.webrtc.org/2746763005
Cr-Commit-Position: refs/heads/master@{#17234}
2017-03-14 21:33:30 +00:00
dkirovbroadsoft
e851a9a763 Fixed problems in neteq when RTP and decoder timestamps increment with
different sample rate frequency.

BUG=webrtc:7327

Problems before the fix:
1. NetEqImpl::timestamp_ is inconsistent. Initially it is set to
the original RTP timestamp, but later gets updated with the
scaled timestamp.
2. NetEqImpl::InsertPacketInternal::main_timestamp is set with
the original RTP timestamp, but later gets compared with the
NetEqImpl::timestamp_ which may or may not be with the same
sample rate frequency and this results in major problems.
3. IncreaseEndTimestamp(main_timestamp - timestamp_) will be
incorrect when SSRC is changed and not the first packet.
4. delay_manager_->Update() may not be always invoked, since
the (main_timestamp - timestamp_) >= 0 will not be true when
the previous scaled timestamp_ is bigger than the main_timestamp
(current RTP timestamp) even if the current RTP timestamp is
bigger than the previous RTP timestamp.
5. delay_manager_->Update() parameters are main_timestamp
which increments with the RTP sample rate frequency and the
fs_hz_ which is the decoder sample rate frequency. When these
two frequencies are different as is the case with g.722, the
DelayManager::Update() will misfire and calculate incorrect
packet_len_ms and inter-arrival time (IAT) as a result. This
in effect will cause neteq to enter kPreemptiveExpand operation
and will keep expanding the jitter buffer even if the RTP packets
arrive with no jitter at all.

The fix corrects all these problems by making sure the
main_timestamp and the timestamp_ are always set with the scaled
timestamp and increment with the decoder sample rate frequency.

Review-Url: https://codereview.webrtc.org/2743063005
Cr-Commit-Position: refs/heads/master@{#17232}
2017-03-14 17:00:27 +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
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
kwiberg
087bd34d23 Move AudioDecoder and related stuff to the api/ directory
BUG=webrtc:5805, webrtc:6725

Review-Url: https://codereview.webrtc.org/2668523004
Cr-Commit-Position: refs/heads/master@{#16534}
2017-02-10 16:15:44 +00:00
minyue
2e03c66119 Adding build switch for Opus that supports 120ms ptime.
BUG=webrtc:7097

TEST=Set "ptime=120", try WebRTC calls over custom build Chromium with and without Opus 120ms. Try both Chromium w <-> Chromium w and Chromium w <-> Chromium w/o

Review-Url: https://codereview.webrtc.org/2668633004
Cr-Commit-Position: refs/heads/master@{#16408}
2017-02-02 01:31:11 +00:00
kwiberg
d32bf75721 Pass SdpAudioFormat through Channel, without converting to CodecInst
BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2516993002
Cr-Commit-Position: refs/heads/master@{#16165}
2017-01-19 15:03:59 +00:00
michaelt
566d820e00 Update smoothed bitrate.
BUG=webrtc:6443

Review-Url: https://codereview.webrtc.org/2546493002
Cr-Commit-Position: refs/heads/master@{#16036}
2017-01-12 18:17:38 +00:00
ivoc
ffecbbf5d0 Fix for integer overflow in NetEq.
BUG=chromium:668736

Review-Url: https://codereview.webrtc.org/2571483002
Cr-Commit-Position: refs/heads/master@{#15654}
2016-12-16 13:51:49 +00:00
henrik.lundin
a9a6d4bc2c Delete voice_engine_configurations.h
The file was aldready pruned down to the point where it only included
webrtc/typedefs.h. Therefore, all includes of
voice_engine_configurations.h are replaced with typedefs.h, except on
two occasions where it was obvously not needed.

BUG=webrtc:6506

Review-Url: https://codereview.webrtc.org/2553583002
Cr-Commit-Position: refs/heads/master@{#15547}
2016-12-12 13:03:08 +00:00
minyue
4b9a2cb0d8 Reland "Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate."
The earlier attempt of this was in
https://codereview.webrtc.org/2411613002/

It was reverted due to failures on internal bots, showing that we cannot deprecate one method.

BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2538493006
Cr-Commit-Position: refs/heads/master@{#15333}
2016-11-30 14:50:08 +00:00
ehmaldonado
26bddb92f0 Replace test_support_main by test_main and get rid of test_support_main_threaded_mac
test_support_main_threaded_mac doesn't seem to be used. It looks like it was
last used about a year and a half ago, and was removed in
https://webrtc-codereview.appspot.com/55379004

BUG=webrtc:6424
R=kjellander@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2540693002
Cr-Commit-Position: refs/heads/master@{#15332}
2016-11-30 14:12:10 +00:00
minyue
e69b46863a Revert of Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate. (patchset #5 id:240001 of https://codereview.webrtc.org/2411613002/ )
Reason for revert:
internal bot failure

Original issue's description:
> Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate.
>
> BUG=webrtc:6303
>
> Committed: https://crrev.com/84e56d576806635c966093d5421c5d04c9b90746
> Cr-Commit-Position: refs/heads/master@{#15310}

TBR=kwiberg@webrtc.org,henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2537243004
Cr-Commit-Position: refs/heads/master@{#15312}
2016-11-30 09:19:06 +00:00