3672 Commits

Author SHA1 Message Date
henrik.lundin@webrtc.org
8d350d4bc4 Add new AcmGenericCodecTest and verify output from Encode function
The test specifically verifies that the output is as expected when
DTX/CNG is used.

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

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

Cr-Commit-Position: refs/heads/master@{#8497}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8497 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 10:06:20 +00:00
henrik.lundin@webrtc.org
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
henrika@webrtc.org
0a3ff7976b New AudioTrack implementation now works on pre-Lollipop devices.
The previous version used an AudioTrack.write() implementation that required API Level 21. This is now fixed.

BUG=4339
R=magjed@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8494}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8494 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 09:28:20 +00:00
kwiberg@webrtc.org
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
andresp@webrtc.org
87a592dc50 Fix dependencies of media_file module and move gypi into the right dir to
avoid submit warnings referencing files with '..'.

TBR=kjellander@webrtc.org
R=kjellander@webrtc.org
BUG=4185

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

Cr-Commit-Position: refs/heads/master@{#8491}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8491 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 03:18:44 +00:00
pbos@webrtc.org
49096de442 DCHECK send DataCountersUpdated for valid SSRCs.
Also updates RTPSender to not update RTX stats when RTX is disabled.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8489}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8489 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 22:38:22 +00:00
henrik.lundin@webrtc.org
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
henrik.lundin@webrtc.org
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
jmarusic@webrtc.org
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
sprang@webrtc.org
db8e605c16 Break out BWE test models to separate files
BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8471}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8471 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 13:24:56 +00:00
henrik.lundin@webrtc.org
ccd7c7c45d Remove more unused code in ACM
This CL removes a lot of unused code in AudioCodingModuleImpl and
ACMGenericCodec.

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

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

Cr-Commit-Position: refs/heads/master@{#8470}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8470 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-24 12:02:18 +00:00
jmarusic@webrtc.org
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
pkasting@chromium.org
d324546ced Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ :
* Move constants into the files/functions that use them
* Declare variables in the narrowest scope possible
* Use correct (expected, actual) order for gtest macros
* Remove unused functions
* Untabify
* 80-column limit
* Avoid C-style casts
* Prefer true typed constants to "enum hack" constants
* Print size_t using the right format macro
* Shorten and simplify code
* Other random cleanup bits and style fixes

BUG=none
TEST=none
R=henrik.lundin@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8467}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8467 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 21:29:45 +00:00
kjellander@webrtc.org
722739108a Roll chromium_revision b0c3ed3..2c3ffb2 (316737:317530)
Includes GN changes from
https://webrtc-codereview.appspot.com/39249004/

Android changes for JNI were required due to
https://codereview.chromium.org/843103003

Other relevant changes:
* src/buildtools: 5c5e924..93b3d0a
* src/third_party/boringssl/src: d306f16..b180ee9
* src/third_party/icu: 4e3266f..2081ee6
* src/third_party/libvpx: 5cdd302..33bbffe
* src/third_party/usrsctp/usrsctplib: 190c8cb..13718c7
* src/tools/gyp: 4d7c139..3464008
* src/tools/swarming_client: bdad118..1b7bfec
Details: b0c3ed3..2c3ffb2/DEPS

Clang version was not updated in this roll.

R=dpranke@chromium.org, phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8466}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8466 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 19:09:22 +00:00
henrik.lundin@webrtc.org
829a6f4ac2 Merge ACMGenericCodec and ACMGenericCodecWrapper
ACMGenericCodecWrapper was the only remaining subclass of
ACMGenericCodec, and was the only class that was ever instantiated.
This CL merges the two, essentially keeping the function implementations
from ACMGenericCodecWrapper except where the base class's code was
invoked.

As it turns out, a lot of functions were never used, but in some cases
they were refernced in AudioCodingModuleImpl. In these cases, the
referencing code is commented out and marked FATAL(). This will be
further cleaned up in follow-up CLs.

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

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

Cr-Commit-Position: refs/heads/master@{#8463}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8463 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 16:33:49 +00:00
jmarusic@webrtc.org
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
jmarusic@webrtc.org
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
henrika@webrtc.org
962c62475e Refactoring WebRTC Java/JNI audio track in C++ and Java.
This CL is part II in a major refactoring effort. See https://webrtc-codereview.appspot.com/33969004 for part I.

- Removes unused code and old WEBRTC logging macros
- Now uses optimal sample rate and buffer size in Java AudioTrack (used hard-coded sample rate before)
- Makes code more inline with the implementation in Chrome
- Adds helper methods for JNI handling to improve readability
- Changes the threading model (high-prio audio thread now lives in Java-land and C++ only works as proxy)
- Simplified the delay estimate
- Adds basic thread checks
- Removes all locks in C++ land
- Removes all locks in Java
- Improves construction/destruction
- Additional cleanup

Tested using AppRTCDemo and WebRTCDemo APKs on N6, N5, N7, Samsung Galaxy S4 and
Samsung Galaxy S4 mini (which uses 44.1kHz as native sample rate).

BUG=NONE
R=magjed@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8460}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8460 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 11:54:41 +00:00
henrik.lundin@webrtc.org
fa58745445 Delete all codec-specific subclasses of ACMGenericCodec
They have all been replaced by AudioEncoder subclasses, accessed throgh
ACMGenericCodecWrapper objects. After this change, the only subclass of
ACMGenericCodec is ACMGenericCodecWrapper. (The two will be consolidated
in a future cl.)

This CL also deletes acm_opus_unittest.cc. This test file was already
replaced audio_encoder_opus_unittest.cc	in r8244.

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

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

Cr-Commit-Position: refs/heads/master@{#8457}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8457 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 09:26:51 +00:00
jmarusic@webrtc.org
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
mflodman@webrtc.org
50e28166af Move SetTargetSendBitrates logic from default module to payload router.
This cl just moves the logic form the default module
SetTargetSendBitrates to PayloadRouter. There might be glitch / mismatch
in size between trate the vector and rtp modules. This was the same in
the default module and is quite hard to protect from before we have the
new video API.

I also removed some test form rtp_rtcp_impl_unittest that were affected
by this change. The test tests code that isn't implemented, hence the
DISABLED_, and this will never be implemented in the RTP module, rather
the payload router in the future.

BUG=769
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8453}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8453 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 07:45:45 +00:00
aluebs@webrtc.org
661af50dd5 Small Beamformer optimization
* Don't use ConjugateDotProduct to calculate the norm.
* Only resize Matrix when needed.

This makes the Beamformer run in 93.6% the original time.
The error between the new and original output is really small and is caused by the new norm calculation.

R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8438}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8438 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 19:02:51 +00:00
tommi@webrtc.org
e07710cc91 Make SendCodec() lock-free.
Fetching the current codec for sake of gathering stats, is frequently blocked since it's done by acquiring the same lock as is held while encoding frames.  This can mean tens of milliseconds.

To improve this, I'm taking advantage of the fact that the codec information is set on the same thread as is used to query the information.  This means that locking isn't needed for querying this information.  I'm adding checks to make sure debug builds will crash if this isn't followed.

An alternative to this approach could be to add one more lock that is specifically used for the codec information variable.  This would also decouple querying codec information from the encoder itself, but still requires a lock.

This patch depends on making ThreadChecker part of rtc_base_approved:
https://webrtc-codereview.appspot.com/40539004/

BUG=2822
R=mflodman@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8435}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8435 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 17:43:45 +00:00
magjed@webrtc.org
be29b3b4c6 I420VideoFrame: Remove functions set_width, set_height, and ResetSize
The functions set_width, set_height, and ResetSize in I420VideoFrame are not needed and just add complexity.

R=perkj@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8434}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8434 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 15:35:50 +00:00
kwiberg@webrtc.org
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
henrik.lundin@webrtc.org
287755246a Fix a problem with reading uninitialized memory in ACM
When an "empty frame" was produced by ACMGenericCodecWrapper::Encode,
the timestamp value was not set. This is now fixed, and the first byte
of the bitstream is set to something as well to avoid similar problems.

BUG=chromium:459483
R=jmarusic@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8431}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8431 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 13:56:15 +00:00
pbos@webrtc.org
1d0fa5d352 Add RtcpPacketTypeCounter stats to new API.
R=mflodman@webrtc.org, stefan@webrtc.org
BUG=1667,1788

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

Cr-Commit-Position: refs/heads/master@{#8429}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8429 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 12:47:45 +00:00
jmarusic@webrtc.org
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
mflodman@webrtc.org
47d657b68e Remove Set/Get sending status from the default RTP module.
This is now taken care of by the payload router and the calls to set_active.

BUG=769
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8427}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8427 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 10:30:19 +00:00
glaznev@webrtc.org
30540fe722 Initialize RTPVideoHeader fields to correctly set simulcastIdx for non VP8 codecs.
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8421}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8421 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 20:30:18 +00:00
minyue@webrtc.org
c0bd7be0df Adding two new stats to VoiceReceiverInfo
There have been requests of two new stats namely

speech_expand_rate and secondary_decoded_rate.

BUG=3867
R=henrik.lundin@webrtc.org, henrika@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8415}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8415 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 15:24:39 +00:00
jmarusic@webrtc.org
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
henrik.lundin@webrtc.org
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
henrik.lundin@webrtc.org
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
magjed@webrtc.org
f68e186de3 Remove EnableMirroring and MirrorRenderStream
R=mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8409}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8409 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 12:55:17 +00:00
sprang@webrtc.org
131bea89d6 Offline screenshare quality test, plus loopback.
BUG=4171
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8408}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8408 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 12:46:44 +00:00
kwiberg@webrtc.org
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
minyue@webrtc.org
7d721eea14 Adding speech_expand_rate to NetEQ Network Statistics.
There have been requests for separating rate of expanded speech samples from noise samples.

BUG=
R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8404}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8404 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 10:02:20 +00:00
aluebs@webrtc.org
27669f320b Apply good settings to Beamformer
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8398}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8398 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 19:24:37 +00:00
mflodman@webrtc.org
0abc6011b9 Remove SetCaptureDelay from the RTP module.
This is a small step in getting rid of the default module, but also to
eventually delete FrameProviderBase completely.

BUG=769
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8396}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8396 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 16:36:48 +00:00
stefan@webrtc.org
7663684258 Implement the Nada rmcat proposal within the simulation framework.
This first CL focuses only on the bandwidth estimation parts of NADA, and doesn't contain the rate smoothing. It is still missing slow start functionality.

https://datatracker.ietf.org/doc/draft-zhu-rmcat-nada/

BUG=
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8395}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8395 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 16:04:17 +00:00
jmarusic@webrtc.org
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
magjed@webrtc.org
640313ce4f WebRtcVideoCapturer: Remove dead code |OnIncomingCapturedEncodedFrame|
The end goal except cleanup is to remove webrtc::VideoFrame.

R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8393}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8393 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 15:10:41 +00:00
pbos@webrtc.org
a28a91d2f0 Fix data race for RTCPReceiver stats callback.
Annotates the callback which identifies the bug, then fixes it.

R=stefan@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8390}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8390 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 14:45:44 +00:00
magjed@webrtc.org
959dac7498 VideoCaptureImpl: Remove unused member variable |_capture_encoded_frame|
The end goal except cleanup is to remove webrtc::VideoFrame.

R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8388}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8388 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 13:44:46 +00:00
pbos@webrtc.org
4dd40d6b88 Signal threads for faster receiver destruction.
Unblocks pending threads (render thread + decoder thread) when
destroying renderers and shutting down decoders.

Speeds up SetLocalDescription significantly (10x or so) under
WebRtcVideoEngine2 but also shutdown times in ~ViEChannel and
~ViEReceiver in general.

BUG=1788
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8387}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8387 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 13:23:27 +00:00
minyue@webrtc.org
f9b5c1b3d0 Removing CELT.
CELT is not supported in WebRTC/Libjingle. There are a few left-over in our code base. They are cleaned up in this CL.

BUG=
R=pbos@webrtc.org, tina.legrand@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8385}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8385 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 12:37:14 +00:00
minyue@webrtc.org
2c1bcf2cb4 Adding decoded_fec_rate to NetEQ Network Statistics.
A statistic is introduced to reflect the actual benefits of Opus FEC. It shows what percentage of samples in the rendered audio come from FEC data.

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

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

Cr-Commit-Position: refs/heads/master@{#8384}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8384 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 10:17:48 +00:00
mflodman@webrtc.org
290cb56dca Remove TimeToSendPacket and TimeToSendPadding from the default module.
Thie CL moves the default RTP module logic for TimeToSendPacket and
TimeToSendPadding to PayloadRouter class and asserts on usage of the
default module.

BUG=769
TEST=New unittest.
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8383}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8383 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 10:15:47 +00:00
pbos@webrtc.org
86196c4f48 Setup encoders inexpensively before first frame.
Modifies WebRtcVideoSendStream to use a default width/height of 16px.
This significantly reduces SetRemoteDescription time under
WebRtcVideoEngine2. Also preventing (expensive) reconfigurations due to
incoming frames when the channel is not sending yet.

Tests have been modified to generate a frame before expecting a certain
encoder size to have been configured.

Also adding tracing to WebRtcVideoSendStream::InputFrame as it can lead
to reconfigurations of the encoder which is expensive and it should show
up in chrome://tracing.

BUG=1788
R=stefan@webrtc.org

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

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