Commit Graph

34 Commits

Author SHA1 Message Date
25702cb162 Misc. small cleanups.
* Better param names
* Avoid using negative values for (bogus) placeholder channel counts (mostly in tests).  Since channels will be changing to size_t, negative values will be illegal; it's sufficient to use 0 in these cases.
* Use arraysize()
* Use size_t for counting frames, samples, blocks, buffers, and bytes -- most of these are already size_t in most places, this just fixes some stragglers
* reinterpret_cast<int64_t>(void*) is not necessarily safe; use uintptr_t instead
* Remove unnecessary code, e.g. dead code, needlessly long/repetitive code, or function overrides that exactly match the base definition
* Fix indenting
* Use uint32_t for timestamps (matching how it's already a uint32_t in most places)
* Spelling
* RTC_CHECK_EQ(expected, actual)
* Rewrap
* Use .empty()
* Be more pedantic about matching int/int32_t/
* Remove pointless consts on input parameters to functions
* Add missing sanity checks

All this was found in the course of constructing https://codereview.webrtc.org/1316523002/ , and is being landed separately first.

BUG=none
TEST=none

Review URL: https://codereview.webrtc.org/1534193008

Cr-Commit-Position: refs/heads/master@{#11191}
2016-01-08 21:50:32 +00:00
3c652b6746 modules/audio_coding: Remove some codec include dirs
Also clean up some include_dir entries and update the few
references to them with absolute include paths instead.
Finally fixed a few lint errors and invalid header guards.

None of these are used downstream.

BUG=webrtc:5095
TESTED=git cl try -c --bot=android_compile_rel --bot=linux_compile_rel --bot=win_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
R=kwiberg@webrtc.org

Review URL: https://codereview.webrtc.org/1438663003 .

Cr-Commit-Position: refs/heads/master@{#10700}
2015-11-18 22:08:46 +00:00
74640895fa audio_coding: rename interface -> include
BUG=webrtc:5095
R=henrik.lundin@webrtc.org
TBR=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1417173004 .

Cr-Commit-Position: refs/heads/master@{#10444}
2015-10-29 10:31:11 +00:00
8967183bf7 Simple cleanups of AudioDecoder and AudioEncoder classes
* Make sure they're all final and don't allow copying or assignment.

  * Get rid of the single-channel PCM decoder classes.

  * Move some includes from .h to .cc files where possible.

BUG=webrtc:4557

Review URL: https://codereview.webrtc.org/1353803002

Cr-Commit-Position: refs/heads/master@{#10021}
2015-09-22 21:06:34 +00:00
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1335923002

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
c0ac6cad00 Move AudioDecoderPcm16B next to AudioEncoderPcm16B
All AudioDecoder subclasses have historically lived in NetEq, but they
fit better with the codec they wrap.

BUG=webrtc:4557
R=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1348113002 .

Cr-Commit-Position: refs/heads/master@{#9963}
2015-09-17 05:47:55 +00:00
12cfc9b4da Fold AudioEncoderMutable into AudioEncoder
It makes more sense to combine the two interfaces, since there wasn't
a clear line separating them. The result is a combined interface with
just over a dozen methods, half of which need to be implemented by
every subclass, while the other half have sensible (and trivial)
default implementations and are implemented only by the few subclasses
that need non-default behavior.

Review URL: https://codereview.webrtc.org/1322973004

Cr-Commit-Position: refs/heads/master@{#9894}
2015-09-08 12:57:59 +00:00
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
3e89dbf458 Add AudioEncoder::GetTargetBitrate
The GetTargetBitrate implementation will return the
target bitrate of the codec. This may differ from the
desired target bitrate, as set by SetTargetBitrate, depending on implementation.

Tests are updated to exercise the new functionality.

R=kwiberg@webrtc.org

Review URL: https://codereview.webrtc.org/1184313002.

Cr-Commit-Position: refs/heads/master@{#9461}
2015-06-18 12:58:46 +00:00
786dbdcc38 Rename targets to use lower case format.
It makes writing a build script for merging libraries
across architectures easier. See talk/build/build_ios_libs.sh.

BUG=
R=andrew@webrtc.org, kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1171793002.

Cr-Commit-Position: refs/heads/master@{#9412}
2015-06-10 20:45:12 +00:00
dcccab3ebb New interface: AudioEncoderMutable
With implementations for all codecs. It has no users yet. This new
interface is the same as AudioEncoder (in fact it is a subclass) but
it allows changing some parameters after construction.

COAUTHOR=henrik.lundin@webrtc.org
BUG=4228
R=jmarusic@webrtc.org, minyue@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9149}
2015-05-07 10:35:18 +00:00
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
2acec4cc32 Enhanced documentation. Replaced DCHECK with CHECK.
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8461}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8461 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 15:28:14 +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
c1c9291e9b Make an AudioEncoder subclass for RED
This class only supports the simple case of payload duplication. That
is, one single encoder is used, and the redundant payload is a one-step
delayed payload.

BUG=3926
R=kjellander@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7913 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-16 13:41:36 +00:00
817e50dd7d Make an AudioEncoder subclass for PCM16B
The implementation depends on AudioEncoderPcm to reduce code
duplication.

BUG=3926
R=kjellander@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7872 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-11 10:47:19 +00:00
fcbe36a1d9 Add const qualifier to WebRtcPcm16b_Encode
BUG=909
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7831 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-08 18:26:49 +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
262e676a08 Reland rev 7041 with BUILD.gn files.
Original description:
  Audio codecs to include webrtc/typedefs.h

  Will easy merge of webrtc/typedefs.h and webrtc/base/basictypes.h

  CL Generated with:
  $ git grep -l \"typedefs.h\" | xargs sed -i "s/typedefs.h/webrtc\/typedefs.h/g"

BUG=3777
R=henrik.lundin@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7061 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 13:28:48 +00:00
1b8b4c4959 Revert 7041 " Audio codecs to include webrtc/typedefs.h"
Breaks gn build, see e.g. http://chromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Linux%20GN/builds/1248/steps/compile/logs/stdio

R=turaj@webrtc.org
TBR=andresp@webrtc.org
BUG=N/A

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7046 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 19:42:16 +00:00
9730d3aae9 Audio codecs to include webrtc/typedefs.h
Will easy merge of webrtc/typedefs.h and webrtc/base/basictypes.h

CL Generated with:
$ git grep -l \"typedefs.h\" | xargs sed -i "s/typedefs.h/webrtc\/typedefs.h/g"

BUG=3777
R=henrik.lundin@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7041 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 14:37:18 +00:00
047a46f8b4 Remove Android.mk build files.
These files are generally not maintained and break, some contain files
that don't exist anymore and do not build anymore. If we need to add
some of these back we should really set up a bot for them.

R=andrew@webrtc.org, glaznev@webrtc.org, henrike@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6974 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 08:48:51 +00:00
d32c4389ac Re-landing r6961
common_audio/signal_processing: Remove macro WEBRTC_SPL_MEMCPY_W8

This macro is nothing but memcpy() and further used at one single place in webrtc, so it makes no sense to keep it. Replaced the operation where it is used.

BUG=3348,3353
TESTED=locally on linux
TBR=aluebs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6963 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 11:19:05 +00:00
4a616be12b Revert 6961 "common_audio/signal_processing: Remove macro WEBRTC..."
> common_audio/signal_processing: Remove macro WEBRTC_SPL_MEMCPY_W8
> 
> This macro is nothing but memcpy() and further used at one single place in webrtc, so it makes no sense to keep it. Replaced the operation where it is used.
> 
> BUG=3348,3353
> TESTED=locally on linux and trybots
> R=kwiberg@webrtc.org, tina.legrand@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/16359004

TBR=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6962 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 10:32:22 +00:00
4f01017e2d common_audio/signal_processing: Remove macro WEBRTC_SPL_MEMCPY_W8
This macro is nothing but memcpy() and further used at one single place in webrtc, so it makes no sense to keep it. Replaced the operation where it is used.

BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6961 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 10:23:22 +00:00
9b8102cf0e Use a deterministic input in NetEqBgnTest
This test has been failing every now and then. This is likely due to the
random input that was used. With this change, the input is now read from
an audio file, making it identical on each run.

The encoding is moved to inside the main test loop, so that new data is
added with each packet. (Before this change, the same payload was added
over and over again; only the RTP header was updated.)

BUG=3715
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6948 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-21 08:27:44 +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
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
621df678c8 WEBRTC_{BIG, LITTLE}_ENDIAN -> WEBRTC_ARCH_{BIG, LITTLE}_ENDIAN.
Mostly to remove a long-standing TODO...

TESTED=trybots
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5013 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-22 10:27:23 +00:00
6e788df19e Remove vim/emacs modelines from .gypi files
BUG=1655

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3857 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-16 12:40:34 +00:00
0946a56023 WebRtc_Word32 => int32_t etc. in audio_coding/
BUG=314

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3789 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 00:28:06 +00:00
a3c82bf667 Remove '<(library)' in gyp files.
This will remove all usage of '<(library)' in all webrtc gyp files. 
Review URL: https://webrtc-codereview.appspot.com/1049005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3392 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-18 23:42:21 +00:00
ad0f3baf90 Removing redundant codec unittest targets.
The following targets have been merged into audio_coding_unittests:
* cng_unittests
* g711_unittests
* g722_unittests
* isacfix_unittests
* pcm16b_unittests

Some of them were empty and were created with the assumption they were
needed in order to get code coverage (which was actually not needed).

The following test has been removed since it was empty:
* audio_conference_mixer_unittests

BUG=none
TEST=trybots passing (well, except for the unittests that are removed, they're failing until the try server configuration is updated)

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3222 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-03 10:52:29 +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