Peter Kasting
dce40cf804
Update a ton of audio code to use size_t more correctly and in general reduce
...
use of int16_t/uint16_t.
This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.
This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002
The change is being landed as TBR to all the folks who reviewed the above.
BUG=chromium:81439
TEST=none
R=andrew@webrtc.org , pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher
Review URL: https://codereview.webrtc.org/1230503003 .
Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 21:52:45 +00:00
henrika
1d34fe979c
Adds support for webrtc::test::ResourcePath on iOS
...
BUG=webrtc:4752
R=tkchin@webrtc.org
Review URL: https://codereview.webrtc.org/1178843002 .
Cr-Commit-Position: refs/heads/master@{#9445}
2015-06-16 08:04:24 +00:00
Peter Kasting
728d9037c0
Reformat existing code. There should be no functional effects.
...
This includes changes like:
* Attempt to break lines at better positions
* Use "override" in more places, don't use "virtual" with it
* Use {} where the body is more than one line
* Make declaration and definition arg names match
* Eliminate unused code
* EXPECT_EQ(expected, actual) (but use (actual, expected) for e.g. _GT)
* Correct #include order
* Use anonymous namespaces in preference to "static" for file-scoping
* Eliminate unnecessary casts
* Update reference code in comments of ARM assembly sources to match actual current C code
* Fix indenting to be more style-guide compliant
* Use arraysize() in more places
* Use bool instead of int for "boolean" values (0/1)
* Shorten and simplify code
* Spaces around operators
* 80 column limit
* Use const more consistently
* Space goes after '*' in type name, not before
* Remove unnecessary return values
* Use "(var == const)", not "(const == var)"
* Spelling
* Prefer true, typed constants to "enum hack" constants
* Avoid "virtual" on non-overridden functions
* ASSERT(x == y) -> ASSERT_EQ(y, x)
BUG=none
R=andrew@webrtc.org , asapersson@webrtc.org , henrika@webrtc.org , juberti@webrtc.org , kjellander@webrtc.org , kwiberg@webrtc.org
Review URL: https://codereview.webrtc.org/1172163004
Cr-Commit-Position: refs/heads/master@{#9420}
2015-06-11 21:31:48 +00:00
Peter Kasting
f045e4da43
Prepare to convert various types to size_t.
...
This makes some behaviorally-invariant changes to make certain code that
currently only works correctly with signed types work safely regardless of the
signedness of the types in question. This is preparation for a future change
that will convert a variety of types to size_t.
There are also some formatting changes (e.g. converting "enum hack" usage to real consts) to make it simpler to just change "int" to "size_t" in the future to change the types of those constants.
BUG=none
R=andrew@webrtc.org , juberti@webrtc.org , kwiberg@webrtc.org
TBR=ajm
Review URL: https://codereview.webrtc.org/1174813003
Cr-Commit-Position: refs/heads/master@{#9413}
2015-06-11 04:15:51 +00:00
henrika
a2c79405b4
Ensures that modules_unittests runs on iOS
...
BUG=4752
R=tkchin@chromium.org
Review URL: https://codereview.webrtc.org/1171033002 .
Cr-Commit-Position: refs/heads/master@{#9408}
2015-06-10 11:24:58 +00:00
Minyue Li
092041c1cd
Setting OPUS_SIGNAL_VOICE when enable DTX.
...
A better solution than forcing OPUS_APPLICATION_VOIP when enabling DTX has been found, which is to set OPUS_SIGNAL_VOICE.
This reduces the uncertainty of entering DTX over silence period of audio.
This CL contains the setup of OPUS_SIGNAL_VOICE and decoupling opus application mode with DTX.
BUG=4559
R=henrik.lundin@webrtc.org , henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46959004
Cr-Commit-Position: refs/heads/master@{#9168}
2015-05-11 10:19:36 +00:00
minyue@webrtc.org
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
minyue@webrtc.org
7dba7860c7
Setting Opus target application.
...
This CL is to allow to set Opus target application at the creation of an encoder.
According to Opus spec, there are three applications:
OPUS_APPLICATION_VOIP
OPUS_APPLICATION_AUDIO
OPUS_APPLICATION_RESTRICTED_LOWDELAY
BUG=
R=henrik.lundin@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/37479004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8103 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-20 16:01:50 +00:00
minyue@webrtc.org
0ca768b131
Adding DTX to WebRTC Opus wrapper (relanding).
...
This is relanding of r7846, which failed since the unit test depended on whether Opus is in fixed-point or float-point.
See the review of r7846 here:
https://webrtc-codereview.appspot.com/13219004/
Patch set 1 is the same as r7846. Further fixes are found in patch set 2 and later.
BUG=
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/32299004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7878 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-11 16:09:35 +00:00
minyue@webrtc.org
19dd129c69
Revert 7846 "Adding DTX to WebRTC Opus wrapper"
...
> Adding DTX to WebRTC Opus wrapper
>
> This is a step toward adding Opus DTX support in WebRTC.
>
> Note that opus_encode() returns 1 byte in case of DTX, then the packet does not need to be transmitted. See
>
> https://mf4.xiph.org/jenkins/view/opus/job/opus/ws/doc/html/group__opus__encoder.html
>
> We transmit the first 1-byte packet to let decoder be in-sync
>
> BUG=webrtc:1014
> R=henrik.lundin@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/13219004
TBR=minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/34449004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7848 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 15:11:15 +00:00
minyue@webrtc.org
4321f175f1
Adding DTX to WebRTC Opus wrapper
...
This is a step toward adding Opus DTX support in WebRTC.
Note that opus_encode() returns 1 byte in case of DTX, then the packet does not need to be transmitted. See
https://mf4.xiph.org/jenkins/view/opus/job/opus/ws/doc/html/group__opus__encoder.html
We transmit the first 1-byte packet to let decoder be in-sync
BUG=webrtc:1014
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/13219004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7846 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 13:27:39 +00:00
minyue@webrtc.org
33ccdfa1f5
Relanding r7807.
...
r7807 was reverted to be excluded from the cause of a failure.
It has been verified and can reland now.
BUG=
TBR=kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/32649004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7810 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-04 12:14:12 +00:00
minyue@webrtc.org
52bc4f4797
Revert 7807 "Removing unused opus wrapper APIs."
...
> Removing unused opus wrapper APIs.
>
> WebRtcOpus_DecodeNew(), WebRtcOpus_DecoderInitNew() have become the APIs and are ready to replace old WebRtcOpus_Decode() and WebRtcOpus_DecoderInit().
>
> WebRtcOpus_DecodePlcMaster/Slave() are also removed.
>
> BUG=
> R=henrik.lundin@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/28139004
TBR=minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/31119004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7809 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-04 11:00:50 +00:00
minyue@webrtc.org
e54a6342dd
Removing unused opus wrapper APIs.
...
WebRtcOpus_DecodeNew(), WebRtcOpus_DecoderInitNew() have become the APIs and are ready to replace old WebRtcOpus_Decode() and WebRtcOpus_DecoderInit().
WebRtcOpus_DecodePlcMaster/Slave() are also removed.
BUG=
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/28139004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7807 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-04 08:47:25 +00:00
kwiberg@webrtc.org
4bd2db9a55
Opus wrapper: Use const for inputs and uint8[] for byte streams
...
About half of the functions already followed the desired pattern; this
patch fixes the other half.
BUG=909
R=aluebs@webrtc.org , bjornv@webrtc.org , henrik.lundin@webrtc.org , minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26719004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7409 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-09 11:21:10 +00:00
minyue@webrtc.org
adee8f9242
Renaming SetOpusMaxBandwidth to SetOpusMaxPlaybackRate
...
This is to maintain the consistency with the Opus codec option "maxplaybackrate" defined in http://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03
BUG=
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14279004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7038 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 12:28:06 +00:00
minyue@webrtc.org
0040a6ef97
This is a setup to solve
...
https://code.google.com/p/webrtc/issues/detail?id=1906
In particular, we add an API to call Opus's set maximum bandwidth to prevent the encoder from coding audio content beyond this bandwidth so as to increase computation and transmission efficiency (without affecting sampling rate).
BUG=
R=henrik.lundin@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/13099004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6817 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-04 14:41:57 +00:00
minyue@webrtc.org
f563e85ab0
This is to re-open an earlier CL
...
https://webrtc-codereview.appspot.com/16619005/
which is reverted due to an issue in audio conference mixer.
This issue has been solved in
https://webrtc-codereview.appspot.com/20779004/
BUG=webrtc:3155
R=turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/18819005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6736 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-18 21:11:27 +00:00
minyue@webrtc.org
d42da54768
Revert 6458 "Since NetEq4 is ready to handle 48 kHz codec, it is..."
...
> Since NetEq4 is ready to handle 48 kHz codec, it is good to remove the 48-to-32kHz downsampling of Opus output. This facilitates webrtc to make full use of Opus's bandwidth and eliminates unneeded computation in resampling.
>
> TEST=passed_all_trybots
> R=henrik.lundin@webrtc.org , tina.legrand@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/16619005
TBR=minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/17719004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6462 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 09:50:12 +00:00
minyue@webrtc.org
8f8503d947
Since NetEq4 is ready to handle 48 kHz codec, it is good to remove the 48-to-32kHz downsampling of Opus output. This facilitates webrtc to make full use of Opus's bandwidth and eliminates unneeded computation in resampling.
...
TEST=passed_all_trybots
R=henrik.lundin@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/16619005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6458 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 08:02:05 +00:00
minyue@webrtc.org
46509c8d58
adding FEC support to WebRTC Opus wrapper and tests.
...
BUG=
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/7539004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5656 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-07 11:49:11 +00:00
minyue@webrtc.org
04546884bf
This CL is to add Opus complexity knob and to test it.
...
As a by-product, a generic tool for testing and comparing the complexity of codecs is added, and new audio files are added to the resources.
Three complexity tests are included
1. Default Opus complexity
2. Opus complexity knob
3. Default iSAC complexity (to compare with Opus)
The complexity tests are only meant for development reasons
and not to be run at bots.
The .isolate file is only needed for the APK packaging and test execution on Android.
TEST=passes all trybots
BUG=
R=kjellander@webrtc.org , tina.legrand@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/8969004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5655 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-07 08:55:48 +00:00
tina.legrand@webrtc.org
bd21fb5f8d
Adding call to Opus PLC
...
NetEq will call the PLC function in Opus only to set the decoder state. The actual PLC data will not be used.
BUG=https://code.google.com/p/webrtc/issues/detail?id=1181
R=tterribe@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1727004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4504 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-08 11:01:07 +00:00
pbos@webrtc.org
3004c79c6a
Fix clang errors in non-GYP_DEFINES=clang=1 build
...
BUG=1623
R=stefan@webrtc.org , tina.legrand@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1368004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3968 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 12:36:21 +00:00
tina.legrand@webrtc.org
db11fab49e
Adding Opus unit test
...
This CL adds a unit test for Opus, as well as new APIs for true stereo decoding (skipping master/slave approach).
BUG=
Review URL: https://webrtc-codereview.appspot.com/1222006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3860 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-17 10:39:41 +00:00