1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
Commit Graph

19 Commits

Author SHA1 Message Date
Martin Storsjö
b44a242c3d libfdk-aacdec: Support building with the latest version of fdk-aac
The latest fdk-aac code drop (from android 5.0) changed the channel
layout enums (changing the value of existing enum constants), and
renamed the option for downmixing.

The failsafe comparison between ctype and FF_ARRAY_ELEMS(channel_counts)
can trigger warnings (-Wtautological-constant-out-of-range-compare)
when building with the old FDK AAC releases, where it can't be
out of range with the enum values used there.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-10 02:46:46 +01:00
Michael Niedermayer
45fed258ee Merge commit '66e9f839536238945fbfe9d2041b6891cb150e45'
* commit '66e9f839536238945fbfe9d2041b6891cb150e45':
  libfdk-aacdec: Enable Dynamic Range Control Metadata Support

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 20:45:43 +02:00
Michael Niedermayer
e18fc35a07 avcodec/libfdk-aacdec: use av_feeep() to avoid leaving stale pointers in memory
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 20:36:14 +02:00
Michael Niedermayer
5a1aa55905 Merge commit 'b01a2204b5cff7bb920f42fda1bb0103f450fe93'
* commit 'b01a2204b5cff7bb920f42fda1bb0103f450fe93':
  libfdk-aacdec: Enable Decoder Downmix including Downmix Metadata Support

Conflicts:
	libavcodec/libfdk-aacdec.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-17 20:35:43 +02:00
Omer Osman
66e9f83953 libfdk-aacdec: Enable Dynamic Range Control Metadata Support
For streams which contain DRC metadata, the FDK decoder is able to
control rendering of the decoded output. The rendering parameters
are detailed in fdk_aac_dec_options [].

The default behavior is left up to the decoder.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 15:48:31 +03:00
Omer Osman
b01a2204b5 libfdk-aacdec: Enable Decoder Downmix including Downmix Metadata Support
The FDK decoder is capable of producing mono and stereo downmix from
multichannel streams. These streams may contain metadata that control
the downmix process. The decoder requires an Ancillary Buffer in order to
correctly apply downmix in streams containing downmix Metadata. The
decoder does not have an API interface to inform of the presence of
Metadata in the stream, and therefore the Ancillary Buffer is always
allocated whenever a downmix is requested.

When downmixing multichannel streams, the decoder requires the output
buffer in aacDecoder_DecodeFrame call to be of fixed size in order to
hold the actual number of channels contained in the stream. For example,
for a 5.1ch to stereo downmix, the decoder requires that the output buffer
is allocated for 6 channels, regardless of the fact that the output is in
fact two channels.

Due to this requirement, the output buffer is allocated for the maximum
output buffer size in case a downmix is requested (and also during
decoder init). When a downmix is requested, the buffer used for output
during init will also be used for the entire duration the decoder is open.
Otherwise, the initial decoder output buffer is freed and the decoder
decodes straight into the output AVFrame.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 15:48:30 +03:00
Michael Niedermayer
242b3c292a Merge commit '1e9a93bfca2c2f43a07e01f2ef9fd5cbafe6c22d'
* commit '1e9a93bfca2c2f43a07e01f2ef9fd5cbafe6c22d':
  libfdk-aacdec: Decode the first AAC frame to reliably identify the bitstream

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-07 23:16:59 +02:00
Omer Osman
1e9a93bfca libfdk-aacdec: Decode the first AAC frame to reliably identify the bitstream
For implicit signaling cases (as possible for Spectral Band Replication
and Parametric Stereo Tools), the decoder must decode the first frame to
correctly identify the stream configuration (as called from
avformat_find_stream_info). The mechanism for this is built-in and only
requires adding CODEC_CAP_CHANNEL_CONF to the libfdk-aacdec AVCodec
struct.

Signed-off-by: Omer Osman <omer.osman@iis.fraunhofer.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-07 22:09:15 +03:00
Michael Niedermayer
4216a5082b Merge commit 'e0bfe34ea8ccf333ec5b17961fd58eb575e74f8b'
* commit 'e0bfe34ea8ccf333ec5b17961fd58eb575e74f8b':
  libfdk-aacdec: Reduce the default decoder delay by one frame

Conflicts:
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-05 03:41:35 +02:00
Omer Osman
e0bfe34ea8 libfdk-aacdec: Reduce the default decoder delay by one frame
The default error concealment method if none is set via
aacDecoder_SetParam(AAC_CONCEAL_METHOD) is set in
CConcealment_InitCommonData within the fdk-aac library
and is set to Energy Interpolation. This method requires one frame
delay to the output. To reduce the default decoder output delay and
avoid missing the last frame in file based decoding, use Noise
Substitution as the default concealment method.

Signed-off-by: Omer Osman <omer.osman@iis.fraunhofer.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-05 00:47:36 +03:00
Michael Niedermayer
c2e2b29b73 Merge commit '2f7065190ad48744014a02288799d03adfa613e0'
* commit '2f7065190ad48744014a02288799d03adfa613e0':
  libfdk-aac: Relicense the library wrappers to the ISC license

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-06 13:41:27 +02:00
Martin Storsjö
2f7065190a libfdk-aac: Relicense the library wrappers to the ISC license
This reduces the number of different licenses used within libav,
and is preferrable since it has less ambiguous wordings than
the BSD license with respect to the duties of the user of the code.

Fraunhofer have now indicated that they're allowed to contribute
code under this license as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-06 10:48:27 +03:00
Michael Niedermayer
ba040d4c8c Merge commit '3828eb8519c1530392ab8820b1aa784602128afc'
* commit '3828eb8519c1530392ab8820b1aa784602128afc':
  libfdk-aac: Relicense the library wrappers to 2-clause BSD

Conflicts:
	libavcodec/libfdk-aacdec.c
	libavcodec/libfdk-aacenc.c

<Daemon404> michaelni, fyi, for the fdk relicensing, wbs also contact all the ffmpeg-only contributers
<Daemon404> so it should be fine to merge.

Thanks-to: Martin Storsjö <martin@martin.st>
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-05 16:18:15 +02:00
Martin Storsjö
3828eb8519 libfdk-aac: Relicense the library wrappers to 2-clause BSD
This should make it possible for Fraunhofer to contribute to these
wrappers - they didn't want to contribute to code under LGPL2.1 with
the "or any later version" clause (which allowed using the code
under the LGPL3 license).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-05 14:18:43 +03:00
Paul B Mahol
9521236881 avcodec/libfdk-aacdec: remove redundant log messages
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-07 14:55:35 +00:00
Michael Niedermayer
edf6fb64e0 Merge commit '84784c297fe6a6e538a7e111dcdbd8b893c2d275'
* commit '84784c297fe6a6e538a7e111dcdbd8b893c2d275':
  libfdk-aacdec: formatting cosmetics

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-24 11:23:25 +02:00
Diego Biurrun
84784c297f libfdk-aacdec: formatting cosmetics 2013-08-23 17:11:47 +02:00
Michael Niedermayer
614cf1a613 Merge commit '4f2b469da5e4ae221718ae479f6af627cfdebb91'
* commit '4f2b469da5e4ae221718ae479f6af627cfdebb91':
  Add a libfdk-aac decoder

Conflicts:
	configure
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-21 12:05:19 +02:00
Martin Storsjö
4f2b469da5 Add a libfdk-aac decoder
This can be useful for decoding AAC object types that are not supported
by the native AAC decoder, e.g. AAC-LD and AAC-ELD.
2013-08-20 14:27:27 -04:00