Commit Graph

932 Commits

Author SHA1 Message Date
9509fbfc30 Split EventWrapper in twain.
I'm splitting the timer functions in EventWrapper into a separate interface.
- Users of the timer functions have different needs than users of a generic event
- Providing a default implementation for EventWrapper that simply uses rtc::Event.

This means that clients of WebRTC that don't use the relatively few classes, typically rendering classes, that depend on the event timer functionality, also don't pull in dependencies on multimedia timers.

R=mflodman@webrtc.org, mflodman
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8833}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8833 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 16:25:46 +00:00
41d2befe9f Limit RED audio payload to narrow band.
In SDP, RED audio codec has its own sample rate. Currently, we offer RED/8000 (8 kHz). But the actual send codec can violate this sample rate. The way to solve it is to introduce more RED payload types, e.g., RED/16000, RED/32000.

As a first step towards that, we, in this CL, limit the current RED (RED/8000) to work only with 8 kHz codecs.

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

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

Cr-Commit-Position: refs/heads/master@{#8830}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8830 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 12:58:17 +00:00
09b6ff9460 Disable PLC for iSAC
A codec's packet-loss concealer is called once from NetEq before
decoding the first packet after a packet loss. The purpose is not to
use the PLC output, but to prepare the state of the decoder such that
it may recover faster after the loss. However, this effect is not
achieved by calling iSAC's PLC. Also, there are some problems with the
fixed-point implementation of the PLC (see the associated bug).

BUG=4423
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8827}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8827 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 12:24:14 +00:00
aa0bbab8ec Fix build failure
There was a build failure due to including checks.h. Removed the include.
TBR=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8825}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8825 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 11:43:14 +00:00
a4bef3e6c0 AcmReceiver: use std::map instead of an array to keep the list of decoders
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8824}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8824 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 11:20:31 +00:00
38492c5b6f Re-land 8810 "- Add a SetPriority method to ThreadWr..."
> Revert 8810 "- Add a SetPriority method to ThreadWrapper"
> Seeing if this is causing roll issues.
> 
> > - Add a SetPriority method to ThreadWrapper
> > - Remove 'priority' from CreateThread and related member variables from implementations
> > - Make supplying a name for threads, non-optional
> > 
> > BUG=
> > R=magjed@webrtc.org
> > 
> > Review URL: https://webrtc-codereview.appspot.com/44729004
> 
> TBR=tommi@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/48609004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8819}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8819 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 14:42:46 +00:00
90a1cb4630 Revert 8810 "- Add a SetPriority method to ThreadWrapper"
Seeing if this is causing roll issues.

> - Add a SetPriority method to ThreadWrapper
> - Remove 'priority' from CreateThread and related member variables from implementations
> - Make supplying a name for threads, non-optional
> 
> BUG=
> R=magjed@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/44729004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8818}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8818 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 14:34:46 +00:00
b6817d793f - Add a SetPriority method to ThreadWrapper
- Remove 'priority' from CreateThread and related member variables from implementations
- Make supplying a name for threads, non-optional

BUG=
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8810}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8810 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 15:52:43 +00:00
6069032ebb Refactor audio_coding/isac: removed usage of macro WEBRTC_SPL_LSHIFT_W32
The macro is defined as
#define WEBRTC_SPL_LSHIFT_W32(a, b) ((a) << (b))
It is a trivial operation that need no macro. In fact it may be confusing for to the user, since it can be interpreted as having an implicit cast to int32_t.

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

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

Cr-Commit-Position: refs/heads/master@{#8801}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8801 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 07:03:41 +00:00
4ab23d0e8f Refactor audio_coding/ilbc: removes usage of macro WEBRTC_SPL_LSHIFT_W32
The macro is defined as
#define WEBRTC_SPL_LSHIFT_W32(a, b) ((a) << (b))
It is a trivial operation that need no macro. In fact it may be confusing for to the user, since it can be interpreted as having an implicit cast to int32_t.

Also removes unnecessary casts to int32_t from int16_t.

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

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

Cr-Commit-Position: refs/heads/master@{#8800}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8800 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 06:01:43 +00:00
361981faa8 Use scoped_ptr for ThreadWrapper::CreateThread.
BUG=
R=henrika@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8794}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8794 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 14:45:42 +00:00
9afaee74ab Reland 8749: AudioEncoder: return EncodedInfo from Encode() and EncodeInternal()
Old review at:
https://webrtc-codereview.appspot.com/43839004/

R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8788}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8788 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 08:51:20 +00:00
8f76cd25ec Renaming neteq_opus_fec_quality_test.
neteq_opus_fec_quality_test has been modified to test more configurations of Opus than only FEC. It makes sense to rename it to neteq_opus_quality_test. This was planned in

https://webrtc-codereview.appspot.com/45619004/

but was forgotten. This CL handles it, and makes it easy for review.

BUG=
R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8782}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8782 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 20:44:26 +00:00
6dba1ebd14 Make AudioDecoder stateless
The channels_ member varable is removed from the base class, and the
associated accessor function is changed to Channels() which is a pure
virtual function.

R=jmarusic@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8775}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8775 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 09:48:12 +00:00
fc562e0a56 Delete ACMGenericCodec::Encode and use AudioEncoder::Encode directly
Move timestamp conversion out of ACMGenericCodec. Also remove lock
from ACMGenericCodec since the instance is always protected by
acm_crit_sect_ in AudioCodingModuleImpl.

Restructuring the code in AudioCodingModuleImpl::Encode to streamline
the use of locks.

R=minyue@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8773}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8773 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 07:32:41 +00:00
019955d770 Revert 8749 "We changed Encode() and EncodeInternal() return typ..."
The reason is that this cl adds a static initializer so we can't roll webrtc into Chromium.
See audio_encoder.cc and 'sizes' regression here:
http://build.chromium.org/p/chromium/builders/Linux%20x64/builds/186

> We changed Encode() and EncodeInternal() return type from bool to void in this issue:
> https://webrtc-codereview.appspot.com/38279004/
> Now we don't have to pass EncodedInfo as output parameter, but can return it instead. This also adds the benefit of making clear that EncodeInternal() needs to fill in this info.
> 
> R=kwiberg@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/43839004

TBR=jmarusic@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8772}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8772 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 06:38:40 +00:00
7c112f3e5a Adding build_opus as a switch in GYP.
This is to allow not building Opus. On non-chromium non-gyp chases, one can let WebRTC depend on other Opus builds.

BUG=
R=kjellander@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8754}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8754 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 14:05:18 +00:00
0cb612b43b We changed Encode() and EncodeInternal() return type from bool to void in this issue:
https://webrtc-codereview.appspot.com/38279004/
Now we don't have to pass EncodedInfo as output parameter, but can return it instead. This also adds the benefit of making clear that EncodeInternal() needs to fill in this info.

R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8749}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8749 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 12:13:13 +00:00
02d166b735 Fixing a race condition in ACMGenericCodec
The old object was deleted before the pointer to it was removed from
the decoder proxy.

BUG=chromium:467209
TBR=tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8736}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8736 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 14:33:43 +00:00
7f7d7e3427 Prevent crash in NetEQ when decoder overflow.
NetEQ can crash when decoder gives too many output samples than it can handle. A practical case this happens is when multiple opus packets are combined.

The best solution is to pass the max size to the ACM decode function and let it return a failure if the max size if too small.

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

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

Cr-Commit-Position: refs/heads/master@{#8730}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8730 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 12:31:19 +00:00
bc2bb34419 Refactor audio_coding/codecs/isac: 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/42639004

Cr-Commit-Position: refs/heads/master@{#8717}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8717 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-13 12:59:36 +00:00
0c5b137e7e Remove support for iSAC RCU
The current way that iSAC RCU is packetized and sent as a RED packet,
with the same payload type for primary and redundant payloads, does
not follow the specification for RED. As it is now, it is impossible
for a receiver to know if an incoming RED packet with iSAC payloads
inside consists of two "primary" (but time-shifted) payloads, or one
primary and one RCU payload. The RED standard stipulates that the
former option is the correct interpretation, while our implementation
currently applies the latter.

This CL removes support for iSAC RCU from Audio Coding Module, but
leaves it in the iSAC codec itself (i.e., in the C implementation).

BUG=4402
COAUTHOR=kwiberg@webrtc.org
R=tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8713}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8713 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-13 08:28:54 +00:00
86639737b8 Remove thread id from ThreadWrapper::Start().
Removes ThreadPosix::InitParams and a corresponding wait for an event.
This unblocks ThreadPosix::Start which had to wait for thread scheduling
for an event to trigger on the spawned thread, giving faster Start()
calls.

BUG=4413
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8709}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8709 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-13 00:07:45 +00:00
c339276b32 Fixing r8698.
8698 causing android bots to fail. This is a fix.

BUG=
R=turaj@webrtc.org
TBR=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8699}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8699 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 16:01:19 +00:00
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
49d0d34ed5 Making sure neteq gets compiled with OPUS.
All WebRTC calls on GN were failing because we failed to add OPUS as a
receive codec. The reason was that the WEBRTC_CODEC_OPUS define wasn't
set for the audio_decoder_impl.cc file; this CL fixes that.

BUG=None
R=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8672}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8672 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 16:23:47 +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
600587d5ac Refactor audio_coding/neteq: Removed usage of macro WEBRTC_SPL_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
#define WEBRTC_SPL_MUL_16_16(a, b) \
    ((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(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 parentheses and style changes

In addition an implicit cast from int32_t to int16_t was removed, which was a bug.

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

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

Cr-Commit-Position: refs/heads/master@{#8653}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8653 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-09 13:30:45 +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
e9217b4bdb Remove WebRtcACMEncodingType
The parameter was not needed; it was sufficient with a bool indicating
speech or not speech. This change propagates to the InFrameType
callback function. Some tests are updated too.

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

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

Cr-Commit-Position: refs/heads/master@{#8626}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8626 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-06 07:51:21 +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
61c22aca5f Eliminate AcmGenericCodec::Add10MsData
All encoding work is now done in the Encode function.

Note: This CL leaves a technical debt in
AudioCodingModuleImpl::Add10MsData. This will be fixed in later
changes.

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

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

Cr-Commit-Position: refs/heads/master@{#8594}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8594 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 11:52:17 +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
f56c162310 Remove AudioCodingModule::Process()
An earlier change moved the encoding work from Process to
Add10MsData; process was just a no-op.

BUG=3520
COAUTHOR=kwiberg@webrtc.org
R=henrika@webrtc.org, minyue@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8553}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8553 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-02 12:30:19 +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
ac2d27d9ae Fix style violations in common_types.h and config.h
Mostly, it's about moving constructors and descructors to the .cc
files, so that they won't be inlined everywhere.

The reason this CL is so big is that a lot of code was using
common_types.h without declaring a dependency on webrtc_common, which
broke the build once common_types.h started to depend on
common_types.cc.

BUG=163
R=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8516}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8516 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:01:28 +00:00
38d9cc51d5 Add back return statement after FATAL()
Some compilers do not accept that non-void functions end with FATAL()
instead of a return statement. This change adds back a few return
statements that were removed in r8463.

BUG=4344
R=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8509}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8509 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 09:43:19 +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
c5558b7021 Remove AudioCodingModule's dependency on the Module interface
BUG=3520
COAUTHOR=kwiberg@webrtc.org
R=minyue@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8500}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8500 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 10:37:46 +00:00
af82f75690 Let Add10MsData method do the encoding work as well
This change essentially makes the Process method a no-op. All it does
now is to return a stored value from the last encoding.

The purpose of this change is to forge the Add... and Process methods
into one and the same.

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

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

Cr-Commit-Position: refs/heads/master@{#8499}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8499 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 10:33:42 +00:00