Commit Graph

36 Commits

Author SHA1 Message Date
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
8dc21dc238 Rename internal AudioEncoder::Encode method to EncodeInternal
BUG=3926
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7801 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-03 20:36:03 +00:00
7f1dfa5b61 Adding a payload type to AudioEncoder objects
The type is set in the Config struct and is provided in the EncodedInfo
output struct from each Encode() call. The audio_decoder_unittest is
updated to verify correct propagation of the payload type.

BUG=3926
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7780 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-02 12:08:39 +00:00
1db20a4180 Adding EncodedInfo struct to AudioEncoder::Encode
This struct will be expanded in future changes.

BUG=3926
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7771 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-01 14:44:50 +00:00
decd9306ae AudioEncoder: num_10ms_frames_per_packet -> Num10MsFramesInNextPacket
Rename this accessor function to reflect its new, slightly changed
meaning. The reason for the change is that some codecs (iSAC) vary the
number of 10 ms frames from packet to packet, and so can't return a
truly constant value.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7556 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-29 08:38:50 +00:00
663fdd02fd Make an AudioEncoder subclass for Opus
BUG=3926
R=henrik.lundin@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7552 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-29 07:28:36 +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
34a865a038 Roll chromium_revision 288251:289723
Mainly to pick up the libvpx.gyp change in r288724
to unblock https://webrtc-codereview.appspot.com/16229005/

Overview of changes in Chrome DEPS:
$ svn diff http://src.chromium.org/chrome/trunk/src/DEPS -r 288251:289723
which can be compared with the output of:
$ svn cat http://webrtc.googlecode.com/svn/trunk/DEPS | grep chromium_deps | sed 's/^ *//' | sort | uniq

In a WebRTC checkout, that sums up to the following relevant changes:
* src/buildtools 59b932:567f0a
* testing/gtest 643:692
* testing/gmock 410:485
* third_party/boringssl/src 533cbe:c3d796
* third_party/libvpx 287125:289332
* third_party/libyuv 1035:1038
* third_party/nss 287121:289430
* third_party/opus/src 256783:289085
* tools/gyp 1959:1964

BUG=2863, chromium:339647
TEST=Local testing as trybots currently cannot handle DEPS changes properly due to http://crbug.com/385594
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6913 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-16 18:49:55 +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
a28c697d93 - Get rid of 'using' from .h
- Add parenthesis to make order of evaluation clearer.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6304 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-02 15:22:33 +00:00
2c89b5cb27 Make everyone an OWNER for .gyp/.gypi add/delete purposes, non-talk/ edition.
This CL brought to you by:
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do echo -e "\n# These are for the common case of adding or renaming files. If you're doing\n# structural changes, please get a review from a reviewer in this file.\nper-file *.gyp=*\nper-file *.gypi=*" >> $d/OWNERS; done
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do git add $d/OWNERS; done

(and then removed the talk/ impact)

R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5903 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 20:08:03 +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
57eb858698 Remove ".." from include_dirs in build/common.
BUG=1662
TEST=compile on trybots
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5107 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-11 10:20:27 +00:00
ecbe0aa543 Added Opus stereo support
TESTED=git try
BUG=webrtc:1360
R=tina.legrand@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4521 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-12 06:48:09 +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
45426eadf5 In call to Opus decoder: frame length too large
BUG=https://code.google.com/p/webrtc/issues/detail?id=1201
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4292 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 13:32:04 +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
46d90dcd74 Adding three frame sizes to Opus
Adding support for 10, 40 and 60 ms packet sizes for Opus.

BUG=issue1015

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3454 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 14:20:06 +00:00
5dfb1f2cd3 Bug fix in WebRtcOpus_DurationEst
The function WebRtcOpus_DurationEst returned the number of samples
per packet in the native 48 kHz sample rate, while the decoder
function returns data in 32 kHz sample rate. This creates a discrepancy
that makes NetEQ's lip-sync functionality add too little delay.

BUG=1334
TEST=try bots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3403 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-23 11:57:03 +00:00
d0d41498a3 Adding AUDIO application as default for Opus stereo
The Opus audio codec targets applications for pure conversations as well as other types of audio (e.g. music), and there are two different settings to use for this (VoIP and AUDIO). In the current implementation of Opus in WebRTC we use VoIP only.

I this CL I have changed default setting to AUDIO in the case of stereo, and kept VoIP as default in case of mono.

Next step is to add an API to choose application mode.

BUG=issue1239

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3319 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-20 09:23:10 +00:00
ac77084583 Roll opus to 172355 and delete opus_demo from webrtc opus
opus_demo has been inlucded in opus in chromium.

BUG=None
TEST=trybots
Review URL: https://webrtc-codereview.appspot.com/973013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3317 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-19 17:24:30 +00:00
4275ab1ca0 Implement NetEq duration estimation for Opus.
Review URL: https://webrtc-codereview.appspot.com/983004
Patch from Ralph Giles <giles@webrtc.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3314 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-19 09:52:45 +00:00
c4590580e8 Opus mono/stereo on the same payloadtype, and fix of memory bug
During call setup Opus should always be signaled as a 48000 Hz stereo codec, not depending on what we plan to send, or how we plan to decode received packets.
The previous implementation had different payload types for mono and stereo, which breaks the proposed standard.

While working on this CL I ran in to the problem reported earlier, that we could get a crash related to deleting decoder memory. This should now be solved in Patch Set 3.

BUG=issue1013, issue1112

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3177 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-28 12:23:29 +00:00
4b97793f91 Ensure opus_demo has a targets block.
TBR=leozwang@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/933023

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3147 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-21 20:16:53 +00:00
cfcadab8d4 Build opus_demo
BUG=1082
TEST=trybots

With this cl we can build opus_demo.
Review URL: https://webrtc-codereview.appspot.com/936029

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3144 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-21 18:13:46 +00:00
0ad3c1af0a Adding Opus stereo support to WebRTC
This CL adds support for sending and receiving stereo using the Opus codec.

BUG=issue1013

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3050 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-07 08:07:29 +00:00
a3ae6dc846 Remove opus include path from opus.gypi.
It's now exported by opus.gyp.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2997 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-25 17:51:09 +00:00
1f8c02a4de Getting Opus from Chrome
This CL replaces http://review.webrtc.org/921006/

BUG=issue982

TBR=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2993 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-25 12:37:08 +00:00
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00