Luca Barbato
bc76c46943
aac: Wait to know the channels before allocating frame
...
The channel configuration can be delivered only by the PCE,
try to parse it first and not try to decode until a channel
configuration is set.
CC: libav-stable@libav.org
2015-06-07 10:14:46 +02:00
Sebastian Dröge
a188108ebf
aac: Support channel configurations 11 and 12
...
These are defined in ISO/IEC 14496-3:2009/PDAM 4 for 6.1 and 7.1.
It also defines another 7.1 layout with configuration 14, that one
is not added here for now.
11: 3/3.1 FC FL+FR BL+BR BC LFE
12: 3/2/2.1 FC FL+FR SiL+SiR BL+BR LFE
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-07 10:14:46 +02:00
nu774
677c804aa3
aac: correctly map 7.1ch-wide AAC from FDK AAC encoder
...
FDK AAC encoder outputs SCE(front)+CPE(front)+CPE(back)+CPE(back) on
MODE_7_1_REAR_SURROUND configuration.
Since decoder couldn't properly map 4 back channels, decoding failed
unless -request_channel_layout 0x8000000000000000 has been specified.
Now we treat first CPE(back) as CPE(side) on channel mapping.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-07 10:14:45 +02:00
nu774
0289f81241
aac: Correctly map multichannel ADTS AAC with non-zero channel_config + PCE
...
The decoder assigns channels using default channel configuration
for 5.1ch when it parses an ADTS frame header using consecutive
channel ids.
When a PCE comes, it reassigns channels using PCE configuration
using directly the ids provided. They can be arbitrary.
Always use consecutive channel ids to avoid decoding glitches due
spurious reconfigurations due the channel ids mismatch between the
two otherwise-identical channel maps.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-06-03 14:40:10 +02:00
Andreas Cadhalpun
09bd7ddf20
aacdec: consistently use avctx for logging in decode_eld_specific_config
...
ac may be NULL and then accessing ac->avctx results in a segmentation fault.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-04-19 23:45:35 +01:00
Vittorio Giovara
6a85dfc830
lavc: Replace av_dlog and tprintf with internal macros
2015-04-19 12:41:59 +01:00
Vittorio Giovara
87e85a133f
aac: Relax reserved_bit validation
...
Although the specification mandates this bit to zero, it may happen
that software tools incorrectly flip it to one, invalidating a possibly
valid stream.
Relax this restriction, by failing only when AV_EF_BITSTREAM is set.
This behaviour is similar to aac decoders in Firefox and Quicktime.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-03-04 16:36:16 +00:00
Anton Khirnov
ee964145b5
lavc: remove unused traces of fmtconvert usage
...
Those decoders have been switched to float output and so do not use
fmtconvert anymore.
2015-02-28 21:51:24 +01:00
Alex Converse
d615187f74
aacdec: Support for ER AAC ELD 480.
...
Based in part on work from Niel van der Westhuizen <espes@pequalsnp.com>.
2015-02-03 20:32:16 -08:00
Niel van der Westhuizen
7640c4a371
aacdec: Tables for length 480 AAC ELD.
2015-02-03 20:32:16 -08:00
Niel van der Westhuizen
0ee2573347
aacdec: Support for ER AAC in LATM
2015-02-03 20:32:16 -08:00
Alex Converse
edd9ea3ffb
aacdec: Refactor aac_er_decode_frame.
2015-02-03 20:32:15 -08:00
Alex Converse
82bd8a5769
aacdec: Refactor decode_ics_info.
2015-02-03 20:32:15 -08:00
Luca Barbato
7464e98f74
aac: Simplify decode_mid_side_stereo
...
Might spare few cycles if the compiler is naive and
makes the function more readable.
2014-12-02 15:28:22 +00:00
Vittorio Giovara
b99ca86350
aacdec: avoid an out-of-bounds write
...
Also move the check in the case it is actually used.
CC: libav-stable@libav.org
Bug-Id: CID 1087090
2014-11-24 01:30:15 +00:00
Vittorio Giovara
77ab341c0c
aacdec: add default case in channel layout
...
Bug-Id: CID 732291
2014-11-04 09:28:45 -05:00
Diego Biurrun
831a118078
Update dsputil- and SIMD-related comments to match reality more closely
2014-03-13 05:50:29 -07:00
Hendrik Leppkes
3aca10bf76
latm: Always reconfigure if no extradata was set previously
...
AAC LOAS can have new audio config objects in the stream itself.
Make sure the decoder reconfigures itself when the first one arrives
midstream.
Bug-Id: 644
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-28 14:51:20 +01:00
John Stebbins
462d5e8e6c
aacdec: set AVFrame sample_rate
...
AVFrame.sample_rate is set in ff_get_buffer, but aacdec calls
ff_get_buffer before the samplerate is known. So it needs to be
set again before returning the frame.
2014-02-12 12:52:28 +01:00
Alex Converse
7f29644108
aac: Fix low delay windowing.
...
AAC LD uses a low overlap sine window instead of a KBD window.
2014-01-04 14:42:38 -08:00
Alex Converse
b2212dec0f
aac: Fix TNS decoding for the 512 sample window family.
2014-01-04 14:42:38 -08:00
Diego Biurrun
8f8bc92365
Add missing #includes for *INT64_MAX and *INT64_C
2013-11-23 21:55:52 +01:00
Gian-Carlo Pascutto
454959a5aa
aacdec: Set the profile during decoding
...
Previously the profile would not be set if the bitstream needs
to be decoded to know the profile.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-04 08:51:26 +01:00
Alex Converse
adea4512c6
aacdec: Fix calls to avpriv_report_missing_feature().
...
It does not take log level as an argument.
2013-10-25 19:41:23 +00:00
Alex Converse
b3be41ca82
aac: Add support for Enhanced AAC Low Delay (ER AAC ELD).
...
This does not include support for LD SBR, epTool, data resilience, nor
the 960 transform family.
2013-10-23 00:08:29 -07:00
Alex Converse
f457edb697
aacdec: Use avpriv_report_missing_feature() instead of custom logging.
2013-10-23 00:08:29 -07:00
Diego Biurrun
b2bed9325d
cosmetics: Group .name and .long_name together in codec/format declarations
2013-10-03 23:32:01 +02:00
Alex Converse
1914e6f010
aacdec: Add support for LD (Low Delay) AAC
2013-09-18 12:01:53 -07:00
Alex Converse
5cdefc0207
aacdec: Add support for Error Resilience syntax.
...
This does not add support for any error resilience tools.
2013-09-18 12:01:49 -07:00
Luca Barbato
a10c4ce24b
aac: Forward errors properly in aac_decode_frame_int
...
Incidentally also remove a warning.
2013-08-04 16:05:36 +02:00
Luca Barbato
71953ebcf9
aac: Check init_get_bits return value
...
Some code paths can call it with invalid length.
CC: libav-stable@libav.org
2013-08-04 16:05:36 +02:00
Diego Biurrun
4a2ef39442
cosmetics: Add '0' to float constants ending in '.'.
2013-07-25 11:33:23 +02:00
Luca Barbato
07c52e2c7c
aac: return meaningful errors
2013-06-27 01:22:36 +02:00
Luca Barbato
6d8629aac1
aac: K&R formatting cosmetics
2013-06-27 01:22:06 +02:00
Luca Barbato
a943a132f3
aac: check the maximum number of channels
...
Broken bitstreams could report a larger than specified number of
channels and cause outbound writes.
CC:libav-stable@libav.org
2013-04-28 00:40:33 +02:00
Diego Biurrun
12e25ed284
avcodec: av_log_missing_feature(1) ---> avpriv_request_sample()
2013-03-13 21:20:12 +01:00
Diego Biurrun
6d97484d72
avcodec: av_log_ask_for_sample() ---> avpriv_request_sample()
2013-03-13 21:20:12 +01:00
Diego Biurrun
63d744e2be
av_log_missing_feature() ---> avpriv_report_missing_feature()
2013-03-13 20:42:21 +01:00
Anton Khirnov
759001c534
lavc decoders: work with refcounted frames.
2013-03-08 07:38:30 +01:00
Diego Biurrun
c242bbd8b6
Remove unnecessary dsputil.h #includes
2013-02-26 00:51:34 +01:00
Justin Ruggles
ffd2123095
aac: decode directly to the user-provided AVFrame
2013-02-12 12:21:21 -05:00
Ronald S. Bultje
d56668bd80
floatdsp: move scalarproduct_float from dsputil to avfloatdsp.
...
This makes the aac decoder and all voice codecs independent of dsputil.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
5959bfaca3
floatdsp: move butterflies_float from dsputil to avfloatdsp.
...
This makes wmadec/enc, twinvq and mpegaudiodec (i.e. mp2/mp3)
independent of dsputil.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje
42d3246948
floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.
...
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent
of this patch, wmaprodec also does not depend on dsputil, so I removed
it from there also.
2013-01-22 11:55:42 -08:00
Justin Ruggles
e034cc6c60
lavc: Move vector_fmul_window to AVFloatDSPContext
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-16 10:45:45 +01:00
Alex Converse
6d5b009267
aacdec: Fix an off-by-one overwrite when switching to LTP profile from MAIN.
...
Found-by: pawlkt
CC: libav-stable@libav.org
2012-12-12 13:22:10 -08:00
Anton Khirnov
594d4d5df3
lavc: add a wrapper for AVCodecContext.get_buffer().
...
It will be useful in the upcoming transition to refcounted AVFrames.
2012-12-04 21:41:59 +01:00
Justin Ruggles
284ea790d8
dsputil: move vector_fmul_scalar() to AVFloatDSPContext in libavutil
2012-11-26 11:29:06 -05:00
Mans Rullgard
edd80ec7e3
aacdec: fix signed overflows in lcg_random()
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-26 13:34:58 +00:00
Justin Ruggles
3d3cf6745e
aacdec: use float planar sample format for output
2012-11-25 19:06:36 -05:00