26 Commits

Author SHA1 Message Date
henrik.lundin@webrtc.org
9c55f0f957 Rename neteq4 folder to neteq
Keep the old neteq4/audio_decoder_unittests.isolate while waiting for
a hard-coded reference to change.

This CL effectively reverts r6257 "Rename neteq4 folder to neteq".

BUG=2996
TBR=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6367 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-09 08:10:28 +00:00
wu@webrtc.org
94454b71ad Fix the chain that propagates the audio frame's rtp and ntp timestamp including:
* In AudioCodingModuleImpl::PlayoutData10Ms, don't reset the timestamp got from GetAudio.
* When there're more than one participant, set AudioFrame's RTP timestamp to 0.
* Copy ntp_time_ms_ in AudioFrame::CopyFrom method.
* In RemixAndResample, pass src frame's timestamp_ and ntp_time_ms_ to the dst frame.
* Fix how |elapsed_time_ms| is computed in channel.cc by adding GetPlayoutFrequency.

Tweaks on ntp_time_ms_:
* Init ntp_time_ms_ to -1 in AudioFrame ctor.
* When there're more than one participant, set AudioFrame's ntp_time_ms_ to an invalid value. I.e. we don't support ntp_time_ms_ in multiple participants case before the mixing is moved to chrome.

Added elapsed_time_ms to AudioFrame and pass it to chrome, where we don't have the information about the rtp timestmp's sample rate, i.e. can't convert rtp timestamp to ms.

BUG=3111
R=henrik.lundin@webrtc.org, turaj@webrtc.org, xians@webrtc.org
TBR=andrew
andrew to take another look on audio_conference_mixer_impl.cc

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6346 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 20:34:08 +00:00
henrik.lundin@webrtc.org
1b9df05c85 Revert 6257 "Rename neteq4 folder to neteq"
> Rename neteq4 folder to neteq
> 
> BUG=2996
> R=turaj@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/12569005

TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6259 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-28 07:33:39 +00:00
henrik.lundin@webrtc.org
a90f6d67f7 Rename neteq4 folder to neteq
BUG=2996
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6257 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-28 06:23:34 +00:00
wu@webrtc.org
cb711f77d2 Add interface to propagate audio capture timestamp to the renderer.
BUG=3111
R=andrew@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6189 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 17:39:11 +00:00
henrik.lundin@webrtc.org
5c49c64de5 Remove all use of AudioFrame::energy_ from AudioCodingModule
Since r6117, the energy is always calculated in the mixer module,
regardless of the value that ACM sets for energy_.

This part of the the aftermath of issue 3255.

BUG=3255
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6140 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 09:06:52 +00:00
henrik.lundin@webrtc.org
0bc9b5a5a7 Add clock to ACM config struct
The purpose is to clean up the ACM interface a bit. This is a
follow-up of a comment in http://review.webrtc.org/13379004/.

R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6006 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-29 08:09:31 +00:00
henrik.lundin@webrtc.org
e772c71743 Introduce a config struct for AudioCoding module
The config struct currently contains the module ID, and the NetEq
config struct, but will be extended in the future. The purpose of this
change is to expose certain NetEq settings to the ACM interface.

BUG=3083
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5993 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 10:16:57 +00:00
henrik.lundin@webrtc.org
116ed1d4f0 Include buffer size limits in NetEq config struct
This change includes max_packets_in_buffer and max_delay_ms in the
NetEq config struct. The packet buffer is also no longer limited in
terms of payload sizes (bytes), only number of packets.

The old constants governing the packet buffer limits are deleted.

BUG=3083
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5989 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 08:20:04 +00:00
henrik.lundin@webrtc.org
439a4c49f9 Add an output capacity parameter to ACMResampler::Resample10Msec()
Also adding a unit tests to make sure that a desired output frequency
of 0 passed to AudioCodingModule::PlayoutData10Ms() is invalid.

R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5974 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 19:05:33 +00:00
henrik.lundin@webrtc.org
20c71fd1dc Fix a bug in AcmReceiver::NetworkStatistics
One of the variables were not copied between the structs.

BUG=2996
TBR=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5956 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 10:11:21 +00:00
henrik.lundin@webrtc.org
0c1444c748 Create ACM2 instance when calling AudioCodingModule::Create
BUG=2996
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5952 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 08:18:42 +00:00
turaj@webrtc.org
a596a389ea Fix iSAC/48000 issue with ACM2.
Registeration of iSAC into NetEq is through injecting and external AudioDecoder. This is because iSAC encoder and decoder need to share instances for bandwidth estimator to work. When external decoder is registerred, the sampling rate of the decoder had to be specified. iSAC/48000 decoder has a native sampling rate of 32000 Hz, but it has been registered as 48000 Hz decoder.

This CL fixing this issue by letting NetEq to obtain sampling rate of an external coder according to its existing database.

BUG=3143
TEST=voe_cmd_test,modules_unittest,try-bots
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5936 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-17 23:30:49 +00:00
henrik.lundin@webrtc.org
35ead381f8 Adding a config struct to NetEq
With this change, the parameters sent to the NetEq::Create method are
collected in one NetEq::Config struct. The benefit is that it is easier
to set, change and override default values, and easier to expand with
more parameters in the future.

BUG=3083
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5902 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 18:49:17 +00:00
tina.legrand@webrtc.org
ba5a6c3d89 ACM2/NetEq4 did not decode Opus in stereo
Two problems fixed in this CL:
- setting Opus decoder to stereo had no effect, and decoding always generated mono audio
- changing decoding setting from mono to stereo, or stereo to mono, for OPUS also had no effect (but required another change than the first one).

BUG=3082
R=henrik.lundin@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5754 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-23 09:58:48 +00:00
turaj@webrtc.org
2086e0fbf3 Remove unnecessary warnings.
BUG=
TEST=try job
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5565 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 14:22:20 +00:00
wu@webrtc.org
24301a67c6 Update talk to 58174641 together with http://review.webrtc.org/4319005/.
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5287 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 19:17:43 +00:00
turaj@webrtc.org
a92baead39 ACM 2 compatibility with ACM 1.
Removing an unregisterd codec from ACM 1 does not result in an error, so should be for ACM 2. Also ACM 1 has post-decode VAD on and AMC 2 needs to have it on by default.

BUG=
Test=trybits

R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5276 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 00:10:44 +00:00
turaj@webrtc.org
6d5d248075 Wrap ACM2 code inside acm2 namespace. This gurantees that one ACM would not use components of others by accident.
BUG=
R=minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4933 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-06 04:47:28 +00:00
niklas.enbom@webrtc.org
3e7703640f Remove unused constants, so chrome can enable a warning for that. Patch from thakis@
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4844 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-25 22:05:05 +00:00
turaj@webrtc.org
d6a7a5f385 Small fixes to run ACM2 tests.
BUG=
R=minyue@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4836 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-25 01:09:23 +00:00
turaj@webrtc.org
532f3dc548 Compile ACM2 and ACM1.
First patch set is the same as patch set 3 of http://review.webrtc.org/2237004/

-Make ACM1 to depend on ACM2.
-Remove APIs to set and get background noise mode. There is no VoE call to these
APIs.
-Remove APIs to set and get receive side VAD mode. There is no VoE call to these
APIs, and NetEq 4, doesn't support them.
-Remove callback for in-band DTMF detection. ACM doesn't support in-band DTMF
detection.
-Use acm_common_defs.h everywhere required.
-Complete ACM factory method.
-Update ACMCodecDatabase of ACM2. CNG full-band need to be define-guarded.
Remove dynamic payload-type assignment.

BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4785 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-19 00:12:23 +00:00
stefan@webrtc.org
1c77dfd521 Revert r4772 "Compile ACM1 and ACM2."
Breaks Android build.

TBR=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4777 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-18 12:34:05 +00:00
turaj@webrtc.org
367baa6eb3 Compile ACM1 and ACM2.
-Make ACM1 to depend on ACM2.
-Remove APIs to set and get background noise mode. There is no VoE call to these APIs.
-Remove APIs to set and get receive side VAD mode. There is no VoE call to these APIs, and NetEq 4, doesn't support them.
-Remove callback for in-band DTMF detection. ACM doesn't support in-band DTMF detection.
-Use acm_common_defs.h everywhere required.
-Complete ACM factory method.
-Update ACMCodecDatabase of ACM2. CNG full-band need to be define-guarded. Remove dynamic payload-type assignment.

BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4772 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-18 00:36:11 +00:00
turaj@webrtc.org
48af652ea5 Prepare to compile ACM1 and ACM2.
ACM1 code is wrapped in namespace acm1. Inculde paths and define guards of ACM2 source codes are corrected. gypi file of ACM2 is changed so that ACM1 will later on depends on ACM2.

BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4743 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-13 23:06:59 +00:00
turaj@webrtc.org
7959e16cc2 ACM2 integration with NetEq 4.
nack{.cc, .h, _unittest.cc} are basically copies from main/source/ folder, with cpplint warning cleaned up.

BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4736 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-12 18:30:26 +00:00