Commit Graph

247 Commits

Author SHA1 Message Date
e16bfde512 Adding flag to force Opus application and DTX while toggling.
Currently, we only allow Opus DTX in combination with Opus kVoip mode. When one of them is toggled, the other might need to change as well. This CL is to introduce a flag to force a co-config.

BUG=
R=henrik.lundin@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40159004

Cr-Commit-Position: refs/heads/master@{#8698}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8698 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 15:29:23 +00:00
51ccf37638 AudioEncoder: add method MaxEncodedBytes
Added method AudioEncoder::MaxEncodedBytes() and provided implementations in derived encoders. This method returns the number of bytes that can be produced by the encoder at each Encode() call.
Unit tests were updated to use the new method.
Buffer allocation was not changed in AudioCodingModuleImpl::Encode(). It will be done after additional investigation.
Other refactoring work that was done, that may not be obvious why:
1. Moved some code into AudioEncoderCng::EncodePassive() to make it more consistent with EncodeActive().
2. Changed the order of NumChannels() and  RtpTimestampRateHz() declarations in AudioEncoderG722 and AudioEncoderCopyRed classes. It just bothered me that the order was not the same as in AudioEncoder class and its other derived classes.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40259005

Cr-Commit-Position: refs/heads/master@{#8671}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8671 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 15:42:21 +00:00
6b56d0793e Revert 8632 "Enable isac NEON building on Aarch64"
Breaks Chromium audio tests on Nexus 9.
http://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus9%29/builds/1152/steps/content_browsertests/logs/stdio

It also actually broke already on our android_arm64 trybot in the CL:
http://build.chromium.org/p/tryserver.webrtc/builders/android_arm64/builds/3282
but I failed to double-check that (I guess I assumed it was flakiness since
that bot has been flaking a lot lately).

> Enable isac NEON building on Aarch64
> 
> Passed building isac_neon and modules_unittests on Android ARM64 and ARMv7.
> Passed modules_unittests with following filters:
>   --gtest_filter=FiltersTest*
>   --gtest_filter=LpcMaskingModelTest*
>   --gtest_filter=TransformTest*
>   --gtest_filter=FilterBanksTest*
> 
> WebRtcIsacfix_CalculateResidualEnergyNeon is not enabled due to Issue 4224.
> 
> BUG=4002
> R=andrew@webrtc.org, jridges@masque.com, kjellander@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/39979004
> 
> Patch from Zhongwei Yao <zhongwei.yao@arm.com>.

TBR=zhongwei.yao@arm.com, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/45559004

Cr-Commit-Position: refs/heads/master@{#8649}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8649 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-09 11:08:42 +00:00
75e850e192 Enable isac NEON building on Aarch64
Passed building isac_neon and modules_unittests on Android ARM64 and ARMv7.
Passed modules_unittests with following filters:
  --gtest_filter=FiltersTest*
  --gtest_filter=LpcMaskingModelTest*
  --gtest_filter=TransformTest*
  --gtest_filter=FilterBanksTest*

WebRtcIsacfix_CalculateResidualEnergyNeon is not enabled due to Issue 4224.

BUG=4002
R=andrew@webrtc.org, jridges@masque.com, kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39979004

Patch from Zhongwei Yao <zhongwei.yao@arm.com>.

Cr-Commit-Position: refs/heads/master@{#8632}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8632 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-06 12:29:23 +00:00
fa67463d37 skip isac_neon if neon is not supported
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39909004

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

Cr-Commit-Position: refs/heads/master@{#8610}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8610 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-05 06:07:51 +00:00
c86bbbaa93 Add speech flag to EncodedInfo
The flag indicates if the encoded bitstream is speech or comfort noise.

COAUTHOR=kwiberg@webrtc.org
R=jmarusic@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42629004

Cr-Commit-Position: refs/heads/master@{#8598}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8598 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 16:03:19 +00:00
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41069004

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
1d25c87199 Reland r8577 "Collapse AudioEncoderDecoderIsacRed into ..."
This effectively reverts r8578.

TBR=jmarusic@webrtc.org

Original commit message:
Collapse AudioEncoderDecoderIsacRed into AudioEncoderDecoderIsac

With this change, support for iSAC-RED is incorporated into the
regular AudioEncoderDecoderIsac class.

COAUTHOR=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44539004

Cr-Commit-Position: refs/heads/master@{#8589}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8589 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 08:55:42 +00:00
bcef431902 Revert r8577 "Collapse AudioEncoderDecoderIsacRed into ..."
Some of the build bots seems to have reacted to this change.

TBR=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42169004

Cr-Commit-Position: refs/heads/master@{#8578}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8578 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 20:13:48 +00:00
1fc28f2305 Collapse AudioEncoderDecoderIsacRed into AudioEncoderDecoderIsac
With this change, support for iSAC-RED is incorporated into the regular
AudioEncoderDecoderIsac class.

COAUTHOR=kwiberg@webrtc.org
R=jmarusic@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43549004

Cr-Commit-Position: refs/heads/master@{#8577}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8577 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 19:31:17 +00:00
0561716ae2 Adding Opus DTX support in ACM.
This solution does not use the existing VAD/DTX logic of ACM, since Opus DTX is codec feature, while ACM VAD/DTX is mainly for setting the WebRTC VAD/DTX.

During the development of this CL, two old bugs were found and are fixed in this CL too.

They are in
webrtc/modules/audio_coding/test/Channels.cc
and webrtc/modules/audio_coding/main/acm2/acm_opus_unittest.cc
respectively.

BUG=webrtc:1014
R=henrik.lundin@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/38469004

Cr-Commit-Position: refs/heads/master@{#8573}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8573 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 12:03:14 +00:00
db93b68031 Removing NetEq's direct dependencies on Opus headers.
Neteq had a direct dependency on Chromium/third_party/opus. This should be relayed by target webrtc_opus.

BUG=
R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42529004

Cr-Commit-Position: refs/heads/master@{#8567}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8567 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 09:28:53 +00:00
2f6ae0de5b audio_coding/codec/ilbc: Removed usage of WEBRTC_SPL_MUL_16_16_RSFT
The macro is defined as
#define WEBRTC_SPL_MUL_16_16_RSFT(a, b, c) \
    (WEBRTC_SPL_MUL_16_16(a, b) >> (c))

where the latter macro is in C defined as
(For definitions on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_{armv7,mips}.h)

The replacement consists of
- avoiding casts to int16_t if inputs already are int16_t
- adding explicit cast to <type> if result is assigned to <type> (other than int or int32_t)
- minor cleanups like remove of unnecessary parantheses and style changes

BUG=3348, 3353
TESTED=locally on Mac and trybots
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39139004

Cr-Commit-Position: refs/heads/master@{#8544}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8544 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-01 19:51:31 +00:00
abbdd520b0 AudioEncoder: documentation fix
Follow-up to https://webrtc-codereview.appspot.com/38279004/

R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/38309004

Cr-Commit-Position: refs/heads/master@{#8524}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8524 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-27 09:20:25 +00:00
b1f0de30be AudioEncoder: change Encode and EncodeInternal return type to void
After code cleanup done on issues:
https://webrtc-codereview.appspot.com/34259004/
https://webrtc-codereview.appspot.com/43409004/
https://webrtc-codereview.appspot.com/34309004/
https://webrtc-codereview.appspot.com/34309004/
https://webrtc-codereview.appspot.com/36209004/
https://webrtc-codereview.appspot.com/40899004/
https://webrtc-codereview.appspot.com/39279004/
https://webrtc-codereview.appspot.com/42099005/
and the similar work done for AudioEncoderDecoderIsacT,  methods AudioEncoder::Encode and AudioEncoder::EncodeInternal will always succeed. Therefore, there is no need for them to return bool value that represents success or failure.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/38279004

Cr-Commit-Position: refs/heads/master@{#8518}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8518 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 15:38:46 +00:00
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36229004

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
9b969e167d AudioEncoderCopyRed: CHECK that encode call doesn't fail
Call to AudioEncoder::Encode fails only if fed bad input, so instead of handling failure, we can just CHECK.
There is also no need to handle case where size of encoded data is larger than allowed maximum, so we just CHECK.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42099005

Cr-Commit-Position: refs/heads/master@{#8504}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8504 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 11:53:45 +00:00
1eda4e3db6 Reland r8476 "Set decoder output frequency in AudioDecoder::Decode call"
This should be safe to land now that issue 4143 was resolved (in r8492).
This change effectively reverts 8488.

TBR=kwiberg@webrtc.org

Original commit message:
This CL changes the way the decoder sample rate is set and updated. In
practice, it only concerns the iSAC (float) codec.

One single iSAC decoder instance is used for both wideband and
super-wideband decoding, and the instance must be told to switch
output frequency if the payload type changes. This used to be done
through a call to UpdateDecoderSampleRate, but is now instead done in
the Decode call as an extra parameter.

Review URL: https://webrtc-codereview.appspot.com/39289004

Cr-Commit-Position: refs/heads/master@{#8496}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8496 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 10:03:19 +00:00
d4dfba8ea1 iSAC Decode: Prevent Memcheck from complaining about uninitialized value
Without this patch, Valgrind's Memcheck was complaining that the test
for whether we should return -1 following the call to
WebRtcIsac_DecodeLb made a conditional branch or move based on the
value of numSamplesLB, which was uninitialized if WebRtcIsac_DecodeLb
failed.

However, as can be seen in the source, the control flow only depends
on the value of numSamplesLB if numDecodedBytesLB >= 0; i.e., if
WebRtcIsac_DecodeLb returned successfully, in which case numSamplesLB
is always initialized. The discrepancy is due to the fact that
Valgrind works on the generated machine code, which contains spurious
such dependencies. The generated code for this test:

  if ((numDecodedBytesLB < 0) || (numDecodedBytesLB > lenEncodedLBBytes) ||
      (numSamplesLB > MAX_FRAMESAMPLES)) {

looks like this:

  95:   0f bf 45 d6             movswl -0x2a(%rbp),%eax
  99:   3d c0 03 00 00          cmp    $0x3c0,%eax
  9e:   0f 8f 45 01 00 00       jg     1e9 <Decode+0x1e9>
  a4:   44 89 f0                mov    %r14d,%eax
  a7:   c1 e0 10                shl    $0x10,%eax
  aa:   0f 88 39 01 00 00       js     1e9 <Decode+0x1e9>
  b0:   41 0f bf ce             movswl %r14w,%ecx
  b4:   89 8d 98 e1 ff ff       mov    %ecx,-0x1e68(%rbp)
  ba:   41 0f bf c7             movswl %r15w,%eax
  be:   39 c1                   cmp    %eax,%ecx
  c0:   0f 8f 23 01 00 00       jg     1e9 <Decode+0x1e9>

Note how the compiler has seemingly ignored the C language's guarantee
that the arguments to || must be evaluated in left-to-right order, and
compares numSamplesLB (%eax) with MAX_FRAMESAMPLES (0x3c0, a.k.a. 960)
before the other two conditions! If the uninitialized value in
numSamplesLB happens to be greater than 960, we'll jump to
Decode+0x1e9 (where we'll return -1) without even looking at the other
two conditions. Has the compiler generated broken code?

Well, no. If numDecodedBytesLB is < 0 so that numSamplesLB is
uninitialized, we'll end up jumping to 1e9 whether that value is
greater than 960 or not; we'll just do it with different jump
instructions. This is entirely invisible as far as the C language is
concerned, but the dependency on the uninitialized value is visible at
the machine code level, which is why Memcheck complains.

This patch solves the problem by pragmatically initializing
numSamplesLB before the call even though it isn't necessary other than
for placating Memcheck.

BUG=4143
R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36309004

Cr-Commit-Position: refs/heads/master@{#8492}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8492 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 08:09:28 +00:00
903182bd8e Revert r8476 "Set decoder output frequency in AudioDecoder::Decode call"
This change uncovered issue 4143, evading the Memcheck suppression
since the signature is changed in the Decode function.

A fix for this is in the making; see
https://review.webrtc.org/36309004. This CL will be re-landed once the
fix is in place.

BUG=4143
TBR=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42089004

Cr-Commit-Position: refs/heads/master@{#8488}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8488 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 21:18:44 +00:00
b9c18d5643 Set decoder output frequency in AudioDecoder::Decode call
This CL changes the way the decoder sample rate is set and updated. In
practice, it only concerns the iSAC (float) codec.

One single iSAC decoder instance is used for both wideband and
super-wideband decoding, and the instance must be told to switch
output frequency if the payload type changes. This used to be done
through a call to UpdateDecoderSampleRate, but is now instead done in
the Decode call as an extra parameter.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34349004

Cr-Commit-Position: refs/heads/master@{#8476}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8476 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 15:59:20 +00:00
f88791d783 AudioEncoderCng: CHECK that encode calls don't fail
Calls to WebRtcCng_Encode, AudioEncoder::Encode and Vad::VoiceActivity fail only if fed bad input, so instead of handling failure, we can just CHECK. This also makes it unnecessary for methods AudioEncoderCng::EncodePassive and AudioEncoderCng::EncodeActive to return a value, so we can make them void.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39279004

Cr-Commit-Position: refs/heads/master@{#8475}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8475 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 14:59:19 +00:00
13ca5f6db2 AudioEncoderOpus: CHECK that encode call doesn't fail
WebRtcOpus_Encode will only ever fail if fed bad input, and since we don't do that, we can CHECK that it doesn't fail instead of having code that tries to handle failure.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40899004

Cr-Commit-Position: refs/heads/master@{#8469}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8469 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 09:57:18 +00:00
f3a306b5bc g722: Enhanced documentation. Added CHECK.
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43409004

Cr-Commit-Position: refs/heads/master@{#8462}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8462 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 15:41:49 +00:00
2acec4cc32 Enhanced documentation. Replaced DCHECK with CHECK.
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34309004

Cr-Commit-Position: refs/heads/master@{#8461}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8461 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 15:28:14 +00:00
2a5cfc2167 Replaced unnecessary check with an explicit CHECK.
WebRtcIlbcfix_Encode method that is called returns an error code only if a packet with more than 3 frames is passed, which is illegal.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36209004

Cr-Commit-Position: refs/heads/master@{#8456}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8456 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 08:53:15 +00:00
be96bfb179 Re-land "Switch to using AudioEncoderIsac instead of ACMISAC"
It should work now, after the fix in r8431.

Previously committed in r8342, reverted in r8372, committed in r8378,
and reverted in r8412.

COAUTHOR=henrik.lundin@webrtc.org
BUG=4228
TBR=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34279004

Cr-Commit-Position: refs/heads/master@{#8433}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8433 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 15:10:49 +00:00
50604128db Method WebRtc_g722_encode that is eventually called always returns non-negative integer (internal counter)
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34259004

Cr-Commit-Position: refs/heads/master@{#8428}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8428 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 12:16:49 +00:00
b255865e6e The PCM codecs can never fail, so we don't need to check the return value
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37329004

Cr-Commit-Position: refs/heads/master@{#8413}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8413 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 15:02:44 +00:00
78619e2714 Revert of r8378 "Switch to using AudioEncoderIsac instead of ACMISAC"
This is a speculative revert to try to isolate a memory issue.

BUG=chromium:459483,4228
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39189004

Cr-Commit-Position: refs/heads/master@{#8412}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8412 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 14:51:15 +00:00
635838bd9b Re-implementing AcmOpusTest as AcmGenericCodecOpusTest
The old AcmOpusTest depends on the ACMOpus class, but this class was
obsoleted by AudioEncoderOpus. In this CL, the test code is re-written
to use AudioEncoderOpus and ACMGenericCodecWrapper instead of
ACMOpus. Most of the test functionality is preserved, except for the
packet loss rate tests, which where already transferred to
AudioEncoderOpusTest in r8244.

R=kwiberg@webrtc.org, minyue@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40029004

Cr-Commit-Position: refs/heads/master@{#8410}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8410 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 13:15:45 +00:00
0521127779 AudioEncoder: Rename virtual accessors to CamelCase
Although sample_rate_hz(), num_channels(), and rtp_timestamp_rate_hz()
are simple accessors for almost all implementations of AudioEncoder,
they are virtual and not guaranteed to be just simple accessors. Thus,
it makes more sense to use the normal CamelCase naming scheme.

BUG=4235
R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34239004

Cr-Commit-Position: refs/heads/master@{#8407}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8407 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 12:01:13 +00:00
71b35a4ce4 iLBC: Use uint8_t[] for byte arrays
BUG=909

This is the same as https://review.webrtc.org/41779004/ with the review comments addressed.

R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40769004

Cr-Commit-Position: refs/heads/master@{#8394}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8394 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 16:02:46 +00:00
fbc347f2ef Re-land r8342 "Switch to using AudioEncoderIsac instead of ACMISAC""
This reverts r8372, with a bug fix: allowing zero rate in
AudioEncoderIsac::Config. Without this fix, setting the rate to zero
triggered a CHECK. Existing callers assumed that zero was a valid
value. Setting the rate to zero will result in the default rate 32000
being set.

BUG=4228,chromium:458638
COAUTHOR=kwiberg@webrtc.org
R=tina.legrand@webrtc.org
TBR=tina.legrand@webrtc.org
CC=jmarusic@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39159004

Cr-Commit-Position: refs/heads/master@{#8378}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8378 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 14:28:45 +00:00
e35fa96cbe Move isacfix.gypi and isac.gypi
Move webrtc/modules/audio_coding/codecs/isac/fix/source/isacfix.gypi
and webrtc/modules/audio_coding/codecs/isac/main/source/isac.gypi to
webrtc/modules/audio_coding/codecs/isac to pass recently
added _CheckNoSourcesAboveGyp presubmit rule.

BUG=4002
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37269004

Cr-Commit-Position: refs/heads/master@{#8376}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8376 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 12:47:22 +00:00
0f7f161ed6 Add audio_coding module OWNERS file.
It should simplify things to have an
OWNERS file at the top level of audio_coding, in addition
to the lower ones.

R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39149004

Cr-Commit-Position: refs/heads/master@{#8373}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8373 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-16 09:53:47 +00:00
a8cc3440b1 Allowing RED decoding for Opus.
BUG=4247
TEST=reproduced and fixed the bug
R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41809004

Cr-Commit-Position: refs/heads/master@{#8364}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8364 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 14:02:17 +00:00
ba97ea69f0 audio_coding/codec/ilbc: Removed usage of macro WEBRTC_SPL_MUL_16_16
The macro is in C defined as
#define WEBRTC_SPL_MUL_16_16(a, b) ((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(For definition on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_armv7.h and common_audio/signal_processing/include/spl_inl_mips.h)

The replacement consists of
- avoiding casts to int16_t if inputs already are int16_t
- adding explicit cast to <type> if result is assigned to <type> (other than int or int32_t)

Some other minor code cleanup also exists.

BUG=3348, 3353
TESTED=locally on Mac and trybots
R=henrik.lundin@webrtc.org, kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34179004

Cr-Commit-Position: refs/heads/master@{#8358}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8358 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 09:52:42 +00:00
bb1219eca3 Add a unit test for callbacks with empty frames and fix bug in code
This change adds a couple of new tests that verify that callbacks
with frame type kFrameEmpty are sent in between comfort noise packets.
This used to be the case until r8268, and with the fix included in
this CL is once again so.

COAUTHOR=kwiberg@webrtc.org
R=minyue@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37229004

Cr-Commit-Position: refs/heads/master@{#8353}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8353 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 15:53:55 +00:00
6c68c85b46 Switch to using AudioEncoderOpus instead of ACMOpus
This change switches from the old codec wrapper ACMOpus to the new
AudioEncoderOpus wrapped in an ACMGenericCodecWrapper.

BUG=4228
TEST=Please, try the Opus codec extensively.
COAUTHOR=kwiberg@webrtc.org
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/33259004

Cr-Commit-Position: refs/heads/master@{#8341}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8341 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 21:34:06 +00:00
648f5d6dc7 pcm16b: Make input arrays const and use uint8_t[] for byte arrays
There were both uint8 and uint16 versions of the pcm16b encode and
decode functions; this patch removes the latter.

BUG=909
R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34139004

Cr-Commit-Position: refs/heads/master@{#8309}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8309 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-10 09:19:09 +00:00
1c6239a3b6 G711: Make input arrays const and use uint8_t[] for byte arrays
BUG=909
R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39809004

Cr-Commit-Position: refs/heads/master@{#8294}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8294 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 12:56:16 +00:00
2b69eab077 Restructure GYP for vp9, opus and direct trace
This is needed to make the build more flexible for some use cases.

BUG=4185
R=andresp@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34099004

Cr-Commit-Position: refs/heads/master@{#8290}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8290 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 10:01:40 +00:00
f45c8ca88b Reland r8248 "Introduce ACMGenericCodecWrapper"
This effectively reverts r8249.

This new class inherits from ACMGenericCodec. The purpose is to wrap
AudioEncoder objects into an ACMGenericCodec interface. This is a
temporary construction that will be used during the ACM redesign work.

BUG=4228
COAUTHOR=kwiberg@webrtc.org
TBR=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/38919004

Cr-Commit-Position: refs/heads/master@{#8255}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8255 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-05 18:30:16 +00:00
cf7efeba37 Add new AudioEncoderOpusTest
This test will replace AcmOpusTest when ACMOpus is removed. The old
AcmOpusTest also contains tests for setting and updating the
"application" setting in Opus. However, in the new AudioEncoderOpus
class, the application is trivially set in the Config struct at
construction, wherefore a test is no longer needed.

BUG=3926
R=minyue@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37929004

Cr-Commit-Position: refs/heads/master@{#8244}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8244 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-04 15:34:40 +00:00
c420a86f4c Change name for local CriticalSectionScoped variable
Tools were complaining about (harmless) shadowing of variable names.

This is a follow-up to
https://webrtc-codereview.appspot.com/41659004/#msg8

BUG=3926
TBR=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37099004

Cr-Commit-Position: refs/heads/master@{#8225}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8225 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-02 10:36:39 +00:00
a1dfbf1e5c WebRtcG722_Decode: Input array should be const uint8_t[]
BUG=909
R=henrik.lundin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/38799004

Cr-Commit-Position: refs/heads/master@{#8224}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8224 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-02 08:58:39 +00:00
4455f6243a WebRtcIsacfix_Time2SpecNeon and _Spec2TimeNeon: Fix stack alignment
The ABI
(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042e/IHI0042E_aapcs.pdf)
says to 8-byte-align stack frames. That means we have to push an even
number of registers on function entry if we want to be able to make
subroutine calls without adjusting the stack first.

BUG=4177
R=bjornv@webrtc.org, henrik.lundin@webrtc.org, zhongwei.yao@arm.com

Review URL: https://webrtc-codereview.appspot.com/33149004

Cr-Commit-Position: refs/heads/master@{#8214}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8214 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-30 11:58:15 +00:00
13980253f0 Add new members to AudioEncoderOpus::Config
Adding fec_enabled and max_playback_rate_hz.

BUG=3926
COAUTHOR:kwiberg@webrtc.org

R=minyue@webrtc.org, tina.legrand@webrtc.org
TBR=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39659004

Cr-Commit-Position: refs/heads/master@{#8207}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8207 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-29 16:09:08 +00:00
a33f05e8d7 Re-land "Remove <(webrtc_root) from source file entries."
Changes differing from https://webrtc-codereview.appspot.com/37859004:
* I put the include_tests==1 stuff of audio_coding.gypi in its
  own audio_coding_tests.gypi file, including the Android and isolate
  targets which were incorrectly located in the previous CL
* I moved the bwe utilities in remote_bitrate_estimator.gypi
  into include_tests==1 since they depend on test.gyp after I
  cleaned up the duplicated inclusion of rtp_file_reader.cc

R=stefan@webrtc.org
TBR=tina.legrand@webrtc.org
TESTED=Passing gyp and compile using:
webrtc/build/gyp_webrtc -Dinclude_tests=1
webrtc/build/gyp_webrtc -Dinclude_tests=0
I also setup a Chromium checkout with my checkout mounted in
third_party/webrtc and ran build/gyp_chromium successfully.

BUG=4185

Review URL: https://webrtc-codereview.appspot.com/33159004

Cr-Commit-Position: refs/heads/master@{#8205}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8205 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-29 14:30:41 +00:00