Commit Graph

338 Commits

Author SHA1 Message Date
Martin Storsjo 06ee7ef4e7 Bump the package version number to 0.1.4 2014-11-07 09:33:28 +02:00
Martin Storsjo a0bfb7ee7c Bump the shared library major number
The AAC_PCM_OUTPUT_CHANNELS option no longer exists under the
same name nor enum value any longer, and the AUDIO_CHANNEL_TYPE
enum has been changed in a way which may break users.
2014-11-07 09:33:28 +02:00
Martin Storsjo 63447a9993 Include the decoder API version in the public header 2014-11-07 09:33:28 +02:00
Martin Storsjo 69a488faf2 Include the new file limiter.cpp in the build 2014-11-07 09:33:28 +02:00
Martin Storsjo 6ccecbc4b0 Merge remote-tracking branch 'aosp/master' 2014-11-07 09:32:48 +02:00
Martin Storsjo ce1863444a Include libFDK ppc headers in make dist 2014-11-04 23:48:42 +02:00
Chih-Hung Hsieh 1c7368d7c0 am d149516e: am 7e464956: Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS."
* commit 'd149516e1a3a63549d2c654b1398544d5de46a3e':
2014-10-25 19:54:26 +00:00
Chih-Hung Hsieh d149516e1a am 7e464956: Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS."
* commit '7e46495606bd66973a10565f932acee7bddcc003':
  Move Clang only flags into LOCAL_CLANG_CPPFLAGS.
2014-09-23 16:54:56 +00:00
Chih-Hung Hsieh ab33d4d394 am 7e464956: Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS."
* commit '7e46495606bd66973a10565f932acee7bddcc003':
  Move Clang only flags into LOCAL_CLANG_CPPFLAGS.
2014-09-23 16:54:34 +00:00
Chih-Hung Hsieh 7e46495606 Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS." 2014-09-23 16:29:42 +00:00
Chih-Hung Hsieh 3c4c8d631f Move Clang only flags into LOCAL_CLANG_CPPFLAGS.
Gcc does not recognize -Wno-pointer-bool-conversion.

Change-Id: Ib6ffa321fff1947b6a098244f7d67fdeb45c2b41
2014-09-22 22:59:03 -07:00
Glenn Kasten 57daefcbe1 am 4803bf75: Merge "Ignore Clang warning on checking address of arrays."
* commit '4803bf75f564e5c9304527a5b902711f78e9f621':
  Ignore Clang warning on checking address of arrays.
2014-09-09 17:53:16 +00:00
Glenn Kasten 4803bf75f5 Merge "Ignore Clang warning on checking address of arrays." 2014-09-09 17:36:03 +00:00
Chih-Hung Hsieh 9428e080cc Ignore Clang warning on checking address of arrays.
BUG: 17356808
Change-Id: I464ffcfb3fc4f44ac8115f9ae98a8c46189b41cd
2014-09-03 12:40:41 -07:00
Keun-young Park 8d8580c267 am 2decc778: Merge "[MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6"
* commit '2decc77814e729df47464a504123f9b398ac7077':
  [MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6
2014-08-14 18:42:23 +00:00
Keun-young Park 2decc77814 Merge "[MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6" 2014-08-14 16:10:21 +00:00
Martin Storsjo 9a3234055a Extend the GetInvInt table to 80 elements
This is a bug fix patch from Fraunhofer, amending/replacing/extending
the previous commit which only extended the table to 55 elements.
(In my previous fix, 55 seemed to be enough for the issue at hand at
least. A few of the coefficients had slightly different rounding than
what Fraunhofer had used though).

This will show up in AOSP in the next code drop as well.
2014-08-01 10:36:54 +03:00
Duane Sand 5c51a5898e [MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6
Change-Id: I3dacd96cf9d5cf9c3d34d612ebb0456d64bc23bc
2014-07-31 15:40:38 -07:00
Martin Storsjo 6522e87ad6 Extend GetInvInt to support values up to 54
For sample rates >= 64 kHz with short blocks, the largest sfb
width is 36, which after grouping can be multiplied with 3,
ending up as 108. GetInvInt needs to be able to support
the largest grouped sfb width, divided by two (3 * 36 / 2 = 54).

This fixes VBR encoding with sample rates >= 64 kHz.
2014-07-29 15:00:56 +03:00
Martin Storsjo f82510410d Add support for waveformatex files
This is used for multichannel wave files.
2014-06-23 10:45:50 +03:00
Martin Storsjo 16f75a570e Support reading sox style piped wav files
Sox writes the RIFF header size as a very large number, instead
of as 0 as in libavformat.
2014-06-23 10:45:50 +03:00
Martin Storsjo 43cb942cd4 Use skip instead of fseek
fseek(SEEK_CUR) doesn't work for nonseekable streams (such
as pipes).

Only do this for skipping past small chunks; don't use it for
skipping past the actual data for non-streamed input.
2014-06-23 10:45:50 +03:00
Martin Storsjo cb19aa7c12 Allow reading wav files with a 0 bytes RIFF chunk
This is required in order to read streamed wav files produced by
the libavformat wav muxer.
2014-06-23 10:45:50 +03:00
Martin Storsjo 3951d0a4e5 Allow opening stdin when "-" is specified 2014-06-23 10:45:50 +03:00
Martin Storsjo e7348e7a5d Support streamed wav files with a 0 bytes data chunk 2014-06-23 10:45:50 +03:00
Martin Storsjo 1652691ee9 Use AC_SEARCH_LIBS to search for a library containing math functions
Even though the previous mechanism worked, this should be more
correct.
2014-06-23 10:44:02 +03:00
Mark Harris b8f6c140ce Fix AIX build
Fix AIX build failure with IBM xlC compiler due to conflicting
definition of M_PI.  The libSYS/include/genericStds.h definition is
guarded with #ifndef M_PI, but was included before <math.h> which
defines M_PI with more significant digits.
2014-05-26 12:31:40 -07:00
Mark Harris c15b653b99 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.
2014-05-26 12:23:56 -07:00
Mark Harris 5e154c7ed1 Make LONG 32 bits for ppc64 as it is for x86_64 2014-05-26 12:14:40 -07:00
Mark Harris 72fd73dbdd Fix PowerPC Mac build 2014-05-26 12:12:03 -07:00
Jean-Michel Trivi 6792cf6361 AAC-Decoder: SBR delay for gapless
Revise decoder output delay determination. The output delay consisted of
  concealment and limiter delay. SBR delay was not covered but must be
  considered for gapless playback delay compensation.

Bug 9428126

Change-Id: I67483712c284de9b5378694f9db7acbed2547dd7
2014-05-20 17:39:03 -07:00
Jean-Michel Trivi 8e087bf394 AAC-Decoder: DRC metadata in stream info
Provide relevant DRC metadata information via API needed for DRC
  presentation mode wrapper.

Bug 9428126

Change-Id: I827cd6bdfd2a8799c21935ae32af23739c90a9b6
2014-05-20 17:29:03 -07:00
Jean-Michel Trivi af967fcc55 AAC Decoder: flush/seek improvements
Improve flushing and seeking.
Add field to the API stream info structure signaling the additional output
 delay for flushing and delay compensation.

Bug 9428126

Change-Id: I808412905563ea3de50a2e77a9b5dfee829cd2ed
2014-05-20 17:24:06 -07:00
Glenn Kasten fb2e845179 am 35f30c5a: Merge "AArch64: Make LONG 4 bytes"
* commit '35f30c5ab8089f38681d2fdd416c00aebef5a7ff':
  AArch64: Make LONG 4 bytes
2014-04-09 15:57:48 +00:00
Glenn Kasten 35f30c5ab8 Merge "AArch64: Make LONG 4 bytes" 2014-04-09 15:49:10 +00:00
Jean-Michel Trivi 603f48ab99 AAC Decoder: introduce time domain limiter
Introduce time domain limiter. The module is per default enabled for all
  AAC-LC and HE-AAC v1/2 streams. For all ER-AAC-LD and ER-AAC-ELD streams
  the limiter is disabled per default. The feature can be en- or disabled
  via dynamic API parameter. Note that the limiter introduces an additional
  output delay which depends on the module parameters and the streams
  sampling rate.

Bug 9428126

Change-Id: I299a072340b33e2c324facbd347a72c8de3d380e
2014-03-31 23:41:44 +00:00
Glenn Kasten 629f60c0e7 am 3252951f: Merge "Temporary workaround for 64-bit build error"
* commit '3252951f61e011241ce6dd8fff775fe9b9aed97f':
  Temporary workaround for 64-bit build error
2014-03-19 21:13:03 +00:00
Glenn Kasten 3252951f61 Merge "Temporary workaround for 64-bit build error" 2014-03-19 20:58:18 +00:00
Glenn Kasten 8609bfea36 Temporary workaround for 64-bit build error
Replace #error by #warning so we can build 64-bit

Change-Id: Ib52fbfb0e5e945ff04ba51ae06b4e3393886d7b7
2014-03-12 11:19:32 -07:00
Marcus Oakland f2f96fb86d AArch64: Make LONG 4 bytes
The libSYS/include/machine_type.h header file states LONG should be
"Data type representing 4 byte signed integer on all supported
platforms" but only provided for defining LONG as INT and ULONG as
UINT when __x86_64__ was defined. This has been changed to when
__LP64__ is defined, so that it also applies to AArch64. The change
to libFDK/include/common_fix.h is then needed to get the project to
compile.

Change-Id: Iea42d7eca97dcc9da772a05b207d134cb999a72a
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
2014-03-11 12:01:00 +00:00
Jean-Michel Trivi 47c680c622 AAC Decoder: support 6.1/7.1 decoded as 5.1
- Add 6.1 and 7.1 channel support including downmixer. Per default the
     decoder creates a 5.1 channel output for all streams with more than six
     encoded channels.
     Modified file(s):
        libPCMutils/include/pcmutils_lib.h
        libPCMutils/src/pcmutils_lib.cpp
        libAACdec/include/aacdecoder_lib.h
        libAACdec/src/aac_rom.h
        libAACdec/src/aacdecoder.cpp
        libAACdec/src/aac_ram.cpp
        libAACdec/src/aacdec_drc.cpp
        libAACdec/src/aacdecoder_lib.cpp
        libAACdec/src/aac_rom.cpp
        libAACdec/src/aacdecoder.h
        libSBRdec/include/sbrdecoder.h
        libSBRdec/src/sbrdec_drc.h
        libSBRdec/src/sbrdecoder.cpp
        libSBRdec/src/sbr_ram.cpp
        libSBRdec/src/sbr_ram.h
        libMpegTPDec/include/tp_data.h
        libMpegTPDec/include/tpdec_lib.h
        libMpegTPDec/src/version
        libMpegTPDec/src/tpdec_asc.cpp
        libMpegTPEnc/include/tp_data.h
        libMpegTPEnc/src/version
        libSYS/include/FDK_audio.h
        libSYS/src/genericStds.cpp

   - Fix error concealment modules fade-out/in mechanism.
     Modified file(s):
        libAACdec/src/conceal.cpp

Bug 9428126

Change-Id: I3230bd2072314b730911cd7ec1740e290cb1d254
2013-12-30 09:40:08 -08:00
Martin Storsjo 2f29dd48d0 Bump the version number, add a changelog entry 2013-11-25 12:25:55 +02:00
Martin Storsjo c3f7404aab Include autogen.sh when building distribution packages 2013-11-25 12:25:55 +02:00
Martin Storsjo 164fc98be1 Include the encoder library version in the publicly installed header
This allows callers to conditionally use new API features without
breaking compatibility with the earlier versions of the library.
2013-11-01 12:11:30 +02:00
Martin Storsjo c8002b04ff Avoid casting arbitrary values to an enum
The enum only contains the constant values 0, 1 and 2. This produces
the warning "comparison of constant 6 with expression of type
'PS_RESOLUTION' is always false" in clang for the first check
in the getNoBands function (but apparently not for the second one
even though mode>=3 shouldn't ever happen for a valid PS_RESOLUTION
value either). This could allow the compiler to completely remove
the conditions that shouldn't be able to occur even though they
actually are used and are necessary.

By passing the value as UINT instead, it is clear to the compiler
that all the checks are necessary.
2013-11-01 11:28:59 +02:00
Martin Storsjo b41a6f9e81 Revert "Avoid too big changes in isScale"
This reverts commit 226601a8d9.

This change doesn't seem to be necessary any longer, a proper
fix seems to be included upstream now in
60a27b7fe5.
2013-11-01 10:58:46 +02:00
Martin Storsjo 321233ee92 Merge remote-tracking branch 'aosp/kitkat-release' into kitkat-merge
Conflicts:
	libAACenc/src/quantize.cpp
2013-11-01 10:46:40 +02:00
Martin Storsjo fcb5f1b692 Ignore .dirstamp files 2013-10-03 09:02:22 +02:00
Terrance 0feb581efb Add an autogen shellscript 2013-09-07 18:32:50 +03:00
Jean-Michel Trivi fa3eba1644 Encoder 7.1 support
* AAC-Encoder

   - Add 7.1 rear surround and 7.1 front center support to supported encoder
     channel modes. Change max channels from 6 to 8 and add 7.1 configuration
     to bandwidth and channel mapping functions.
     Modified file(s):
        libAACenc\include\aacenc_lib.h
        libAACenc\src\aacEnc_ram.cpp
        libAACenc\src\aacEnc_ram.h
        libAACenc\src\aacenc.cpp
        libAACenc\src\aacenc.h
        libAACenc\src\aacenc_lib.cpp
        libAACenc\src\adj_thr.cpp
        libAACenc\src\adj_thr.h
        libAACenc\src\adj_thr_data.h
        libAACenc\src\bandwidth.cpp
        libAACenc\src\bitenc.cpp
        libAACenc\src\channel_map.cpp
        libAACenc\src\interface.h
        libAACenc\src\metadata_compressor.cpp
        libAACenc\src\psy_main.cpp
        libAACenc\src\psy_main.h
        libAACenc\src\qc_data.h
        libAACenc\src\qc_main.cpp
        libAACenc\src\qc_main.h

* SBR-Encoder

   - Support up to 7.1 audio channels. Changed max channels from 6 to 8.
     Modified file(s):
        libSBRenc\include\sbr_encoder.h
        libSBRenc\src\sbr.h
        libSBRenc\src\sbr_encoder.cpp
        libSBRenc\src\sbr_ram.cpp

* Transport-Encoder
   - Add 7.1 channel configuration to audio specific config writer in
     transport encoder library.
     Modified file(s):
        libMpegTPEnc\src\tpenc_asc.cpp
        libMpegTPEnc\src\version

* SYS-Library
   - Add 7.1 channel modes to CHANNEL_MODE description.
     Modified file(s):
        libSYS\include\FDK_audio.h
        libSYS\src\genericStds.cpp

Bug 9428126

Change-Id: Ide53583aa8e03df4537b98db80740dfe0e7a9e0f
2013-09-03 14:19:38 -07:00