151 Commits

Author SHA1 Message Date
Martin Storsjo
8724dc84af Fix building with MSVC for ARM
cmnintrin.h only existed for Windows CE, and doesn't seem to actually
be necessary for building this.
2016-10-28 10:26:28 +03:00
Martin Storsjo
3f138a3555 Detect MSVC x64 2016-10-28 10:26:28 +03:00
opcodevoid
e199ccda26 Windows MSVC Makefile 2016-10-28 10:26:28 +03:00
Lexyan
981a20334a Add aarch64 assembly optimization (ARMv8a 64 bits)
The fixmuldiv functions don't need inline assembly to be fast
in this architecture; the compiler (both clang and GCC) figure
out to use the optimal instructions for this (which is 2 instruction
sequence), and when letting the compiler emit the instructions
instead of using inline assembly, the compiler is able to
interleave those instructions with other instructions,
improving scheduling, making it even faster than when using
inline assembly.

Overall, this gives about 50% speedup.
2016-10-28 10:26:28 +03:00
Guillaume Smaha
ded21698e8 Invert inline and void to be compatible with gcc 3.3.4 2016-10-28 10:26:28 +03:00
Guillaume Smaha
bc316793d4 Fix issue with gcc 3.4.3 which doesn't support always_inline without inline 2016-10-28 10:26:28 +03:00
Martin Storsjo
db67ccef32 Remove android specific diagnostic logging 2016-10-28 10:26:28 +03:00
Vicente Olivert Riera
512267f7e7 libFDK/include/mips/cplx_mul.h: use C code instead of ASM
Replace the assembler code by the equivalent in C. This way it will work
for every MIPS ISA. Now the check for __mips_isa_rev < 6 is no longer
necessary, so remove it.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
2016-10-28 10:26:28 +03:00
Jasper Lievisse Adriaanse
e2eb9bbc10 Fix the preprocessor statements controlling the use of mips{32,64}r1 instructions.
Only enable code using mips32/mips64 instructions if the compiler is targetting
this ISA. (integer madd and msub instructions aren't available in the
``canonical'' mips ISAs)
2016-10-28 10:26:28 +03:00
Mark Harris
ef675bd11a Add ppc optimization for clz and fixmul
Optimize ppc/ppc64 similar to i386/x86_64, approximately doubling
encoding speed on a Power Mac G5 running OS X 10.5.8.
2016-10-28 10:26:28 +03:00
Mark Harris
c390358b54 Fix PowerPC Mac build 2016-10-28 10:26:28 +03:00
Martin Storsjo
60b69ab3e7 Include the library versions in the publicly installed headers
This allows callers to conditionally use new API features without
breaking compatibility with the earlier versions of the library.
2016-10-28 10:26:28 +03:00
Martin Storsjo
23ba26cabf Add automake/autoconf source files
Also add examples.
2016-10-28 10:26:28 +03:00
Sergio Ammirata
35963519e4 Add support for Workgroup 4 (WG4) channel mapping
This is the channel ordering used in DVD Audio, and is the standard
used internally in the VLC media player.
2016-10-28 10:26:28 +03:00
Treehugger Robot
ed91226cec Merge "Remove redundant register storage class specifiers" 2016-10-28 01:08:50 +00:00
Martin Storsjo
6ec082c6c3 Remove redundant register storage class specifiers
Clang warns about this being deprecated, when building without specifying
-std=c++98.

This doesn't give any measurable encoding speed impact on ARM or AArch64,
on neither GCC nor Clang.

Change-Id: I63a0bbd1dccb97547522da188ee585d4d8127c29
2016-10-18 09:22:55 +03:00
Treehugger Robot
4556cb9cb8 Merge "Add casts to avoid errors due to narrowing" 2016-10-18 03:05:51 +00:00
Martin Storsjo
6d7d5013ea Add casts to avoid errors due to narrowing
This fixes building in C++11 mode, which normally errors out
on narrowing hex literals to signed long.

This is similar to what was done in git commit ef30836651
(change id I64d19a8a8059c5a96386b1eaac297fd2469515f8), completing
the fix for that category of issues.

Change-Id: I1907bc947d43bf44910fb2b34bf2b31c0e53aa53
2016-10-17 10:32:24 +03:00
Jean-Michel Trivi
f935254cc9 Merge "Avoid a warning about extra parentheses" 2016-09-09 22:06:10 +00:00
Martin Storsjo
ebb66ffd4a Avoid a warning about extra parentheses
This fixes the following warning:

libSBRenc/src/sbr_encoder.cpp:1942:14: warning: equality comparison
      with extraneous parentheses [-Wparentheses-equality]

Change-Id: I2c833d19348574473c752076a4efff6642c0d653
2016-08-30 09:57:04 +03:00
Glenn Kasten
00fc1c66d5 Merge "Disable warnings that are not easily fixable" am: 8192b1a
am: 2a923c9

* commit '2a923c92869efb277ca7d67ab6c27617ec26c128':
  Disable warnings that are not easily fixable

Change-Id: I920b16bdaa1ce7a00c91e129b950f0d486a1fa37
2016-04-20 23:40:45 +00:00
Glenn Kasten
c3f7cf7f1b Merge "Add default case for undefined pointer initialization" am: 9d0179c
am: 27625f2

* commit '27625f27066421ce38250272f4bb751cf6f58c17':
  Add default case for undefined pointer initialization

Change-Id: I601dc2afdfa8db2008628e05068d277a617c022d
2016-04-20 23:40:45 +00:00
Glenn Kasten
e34e2b9d54 Merge "Left shift of negative int is undefined" am: 6ae5480
am: 2b2e97b

* commit '2b2e97b893b16b69c7728d16e8653b9c94944294':
  Left shift of negative int is undefined

Change-Id: Ie90b850b7adf787dfb47f8b7c43a22744c3a7fa0
2016-04-20 23:40:45 +00:00
Glenn Kasten
28099687b7 resolve merge conflicts of ad1e898 to nyc-dev-plus-aosp
Change-Id: If143807a233d47fb7fd269fd263a8a898109b060
2016-04-20 16:28:31 -07:00
Glenn Kasten
2a923c9286 Merge "Disable warnings that are not easily fixable"
am: 8192b1a

* commit '8192b1a98f60cc39253c658ba1ca70a70c2e0dfa':
  Disable warnings that are not easily fixable

Change-Id: I5dc1fabd29cfb7024f8362359a796efd1764032d
2016-04-20 19:00:07 +00:00
Glenn Kasten
27625f2706 Merge "Add default case for undefined pointer initialization"
am: 9d0179c

* commit '9d0179c8a85f2b50bafdf6715fc266bc92771756':
  Add default case for undefined pointer initialization

Change-Id: I311521adebb1949747f0cb34bee19a57d8199558
2016-04-20 19:00:06 +00:00
Glenn Kasten
2b2e97b893 Merge "Left shift of negative int is undefined"
am: 6ae5480

* commit '6ae54806ab88efd76e884447680fd30b340936fd':
  Left shift of negative int is undefined

Change-Id: If6a4abe686d3ab6b7f825058255b03aa46055484
2016-04-20 19:00:06 +00:00
Glenn Kasten
ad1e8985d9 Merge "Remove redundant parentheses around == comparison operator"
am: 34fb053

* commit '34fb05353bbabe1ba04362f26b3ae507fbb687d4':
  Remove redundant parentheses around == comparison operator

Change-Id: I7a37ef8293371cc0287a0e0b9f0115f82f294b31
2016-04-20 19:00:06 +00:00
Glenn Kasten
8192b1a98f Merge "Disable warnings that are not easily fixable" 2016-04-20 18:45:30 +00:00
Glenn Kasten
9d0179c8a8 Merge "Add default case for undefined pointer initialization" 2016-04-20 18:45:18 +00:00
Glenn Kasten
6ae54806ab Merge "Left shift of negative int is undefined" 2016-04-20 18:45:09 +00:00
Glenn Kasten
34fb05353b Merge "Remove redundant parentheses around == comparison operator" 2016-04-20 18:44:59 +00:00
Jean-Michel Trivi
be845a7fc2 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75 am: 1de50b286f am: d110691d01 am: 0cf3a7671a
am: 9d4702f2d9

* commit '9d4702f2d9ecec00c4e28de638b1f79afb5d696c':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I0a57275a4ebc04cc3acafc6a0325b7fefe8e5ef0
2016-04-19 01:34:40 +00:00
Jean-Michel Trivi
9d4702f2d9 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75 am: 1de50b286f am: d110691d01
am: 0cf3a7671a

* commit '0cf3a7671ad40c1036387d55462f1710a44eec31':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I7ca67acba7d69472865efa84a63a49c7768487c5
2016-04-19 01:32:26 +00:00
Jean-Michel Trivi
0cf3a7671a Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75 am: 1de50b286f
am: d110691d01

* commit 'd110691d01e15a555d84fcd98e4b275dd38b37ba':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I6c009e94d626cc1dd6ec1510fd2e07c1b3a4031a
2016-04-19 01:30:15 +00:00
Jean-Michel Trivi
d110691d01 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75
am: 1de50b286f

* commit '1de50b286fdadc07f94e0d8fae69a564796ab12a':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: Ib1dce026d6ddc9fdfa68cc5b4213a2685dc1ac17
2016-04-19 01:27:53 +00:00
Jean-Michel Trivi
1de50b286f Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241
am: 7147e71a75

* commit '7147e71a75a48009e6d2b835422767cf466813d8':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I7f677fae038640739834d4c44309680b78748acf
2016-04-19 01:25:09 +00:00
Jean-Michel Trivi
7147e71a75 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871
am: 6318d60241

* commit '6318d6024194f89d809f4e22266105f27389f41b':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I1a836bd8b024948f18b2d2c0e912601722f887bc
2016-04-19 01:00:01 +00:00
Jean-Michel Trivi
6318d60241 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9
am: 0a20959871

* commit '0a209598713cccc4f10e9c0036df487bea5af312':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: If2339aad0e0e825302773f2f04f0dd43cc754ac6
2016-04-19 00:57:44 +00:00
Jean-Michel Trivi
0a20959871 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638
am: 78653b30e9

* commit '78653b30e9c1907d4c6eefa30ff954e0c4398447':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I53cabb3bab17e8754a03648ffac356e4a3a05e28
2016-04-19 00:55:30 +00:00
Jean-Michel Trivi
78653b30e9 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f
am: 1a54e8f638

* commit '1a54e8f6385f9cbb8d950f0ff003bb71daa62caf':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I3c992ce7d3a60685f75a944d8d588fb9ff0d050c
2016-04-19 00:53:17 +00:00
Jean-Michel Trivi
1a54e8f638 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425
am: b762ff3e4f

* commit 'b762ff3e4fdc29ce517824e19d187ba667e80623':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I29eaf51574e1834f223a9755a353abd90fcf912b
2016-04-19 00:50:57 +00:00
Jean-Michel Trivi
b762ff3e4f Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d
am: be3ff35425

* commit 'be3ff35425f026fb3714f1bd45c40aee6737fe05':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I82060408eab9a8990c511af4c6be8a588d2a1b49
2016-04-19 00:48:42 +00:00
Jean-Michel Trivi
be3ff35425 Fix aacDecoder_drcExtractAndMap()
am: 97a1b8140d

* commit '97a1b8140d410ed3942006aa22b40ccb322f747b':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I1bf523e635139d71ef124462bd61e0da06191d35
2016-04-19 00:46:26 +00:00
Glenn Kasten
32db3a45df Disable warnings that are not easily fixable
Bug: 28026175
Change-Id: I6e9cfcd9efeb853caee01b54b241f24e64cf1e94
2016-04-18 16:11:27 -07:00
Glenn Kasten
1dd7649666 Add default case for undefined pointer initialization
Bug: 28026175
Change-Id: I1b149bf1573296df18abbe44f737bd87ab3913f9
2016-04-18 16:11:16 -07:00
Glenn Kasten
4bd4510b19 Left shift of negative int is undefined
Bug: 28026175
Change-Id: I9dc851b818262e95711033bdc03b7b7f30cff133
2016-04-18 16:11:01 -07:00
Glenn Kasten
76b428d4b4 Remove redundant parentheses around == comparison operator
Bug: 28026175
Change-Id: I8ff9d8d1dd73933dc181f2745292a0a3398a2479
2016-04-18 16:10:57 -07:00
Jean-Michel Trivi
97a1b8140d Fix aacDecoder_drcExtractAndMap()
Parse DVB DRC data only when numThreads is below
 MAX_DRC_THREADS. The post-increment is necessary as
 it is used in fill element DRC data section.
This solution parses as many DRC payloads as allowed by
 MAX_DRC_THREADS and skips all remaining DRC elements in the stream.

Bug 27792766
Bug 26751339

Change-Id: Ie1641888bac1757c4d1491119f977fc5d436eaea
2016-04-15 08:14:50 -07:00
Jean-Michel Trivi
3fbcee8020 AAC/SBR decoder improvements and bugfixes
am: 203e3f2

* commit '203e3f28fbebec7011342017fafc2a0bda0ce530':
  AAC/SBR decoder improvements and bugfixes

Change-Id: I2f7f5bb7f4c486347a1fdbd7c481cde33037441e
2016-04-09 00:36:07 +00:00