6dba1ebd14
Make AudioDecoder stateless
...
The channels_ member varable is removed from the base class, and the
associated accessor function is changed to Channels() which is a pure
virtual function.
R=jmarusic@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/43779004
Cr-Commit-Position: refs/heads/master@{#8775}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8775 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 09:48:12 +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
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
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
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
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
648f5d6dc7
pcm16b: Make input arrays const and use uint8_t[] for byte arrays
...
There were both uint8 and uint16 versions of the pcm16b encode and
decode functions; this patch removes the latter.
BUG=909
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/34139004
Cr-Commit-Position: refs/heads/master@{#8309}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8309 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-10 09:19:09 +00:00
e04a93bcf5
Move the AudioDecoder interface out of NetEq
...
It belongs with the codecs, next to the AudioEncoder interface.
R=andrew@webrtc.org , henrik.lundin@webrtc.org , kjellander@webrtc.org
Previously committed here: https://code.google.com/p/webrtc/source/detail?r=7798
and reverted here: https://code.google.com/p/webrtc/source/detail?r=7799
Review URL: https://webrtc-codereview.appspot.com/27309004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7839 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 10:12:53 +00:00
3800e13a3a
Revert r7798 ("Move the AudioDecoder interface out of NetEq")
...
Apparently, it caused all sorts of problems I don't have time to
straighten out right now.
TBR=henrika@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/25289004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7799 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-03 16:28:17 +00:00
00ba1a7dfd
Move the AudioDecoder interface out of NetEq
...
It belongs with the codecs, next to the AudioEncoder interface.
R=henrik.lundin@webrtc.org , kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/27309004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7798 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-03 14:23:23 +00:00
4591fbd09f
Use size_t more consistently for packet/payload lengths.
...
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.
This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.
BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom
Review URL: https://webrtc-codereview.appspot.com/23129004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
52b42cb069
Fix problem with late packets in NetEq
...
Since r7255, it could happen that an old packet would block the decoding
process until enough packet was received for the buffer to flush. This
CL fixes that by:
- Partially reverting r7255;
- Remove recent old packets before taking a decision for GetAudio;
- Remove all old packets after a packet has been extracted for decoding;
- Adding tests for reordered packets.
BUG=chrome:423985
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/25079004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7612 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 14:03:58 +00:00
6de75ca3ed
Remove the useless dummy state parameter to WebRtcPcm16b_DecodeW16
...
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26039004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7610 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 13:29:24 +00:00
721ef633d0
Remove the codec_type_ member from AudioDecoder
...
It isn't actually required, as evidenced by the comparative ease with
which it can be removed.
R=henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/31939004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7606 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 11:51:46 +00:00
3c0aae17f0
Change gflags and gmock includes to be full paths.
...
This will fix PRESUBMIT warnings developers will get due to
r7014 and r7020.
Also some minor style cleanup in:
webrtc/modules/audio_coding/main/test/RTPFile.cc
webrtc/modules/audio_coding/neteq/test/RTPjitter.cc
BUG=
R=henrik.lundin@webrtc.org , niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23429004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7058 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 09:55:40 +00:00
ee0fb187a5
Divide-by-zero problem in NetEq's Normal::Process fixed
...
Adding a couple of tests that tries to trigger a certain divide-by-zero
issue. The tests triggered the issue, but this CL also includes a fix
for this.
BUG=3761
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22269004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7025 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-02 13:22:11 +00:00
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
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
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