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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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