OSDN Git Service
Vittorio Giovara [Thu, 10 Sep 2015 15:05:52 +0000 (17:05 +0200)]
fate: Move mv0 option from global to mpv private
Vittorio Giovara [Thu, 10 Sep 2015 15:05:51 +0000 (17:05 +0200)]
lavc: Keep idct integer option
"int" is useful in testing because provides accurate results across
different plaftforms, so remove it from the scheduled FF_API_UNUSED_MEMBERS
deprecation.
Vittorio Giovara [Thu, 10 Sep 2015 15:05:50 +0000 (17:05 +0200)]
avconv_filter: Use full named options
This introduces a slight timebase computation difference in zmbv-8bit
fate test. This is expected since the new options are double instead
of ints, and the additional precision skews the results in a non
meaningful way.
Vittorio Giovara [Thu, 10 Sep 2015 15:05:49 +0000 (17:05 +0200)]
lavf: Update to the new crypto API
Alexandra Hájková [Mon, 7 Sep 2015 10:18:17 +0000 (12:18 +0200)]
asfdec: add more checks for size left in asf packet buffer
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Hendrik Schreiber [Thu, 10 Sep 2015 11:27:05 +0000 (13:27 +0200)]
lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video
Vittorio Giovara [Thu, 10 Sep 2015 18:26:09 +0000 (20:26 +0200)]
lavc: Sanitize header inclusion guards
Fix typos, add missing comments, and remove stray lines.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Fri, 11 Sep 2015 15:47:29 +0000 (17:47 +0200)]
lavc: Enable side data only packets by default
Deprecate the now unused option, but temporarily retain the capability
to disable the now default behaviour.
Mention this change in the AVPacket documentation.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
James Almer [Sat, 12 Sep 2015 06:23:45 +0000 (03:23 -0300)]
travis: fix dependencies
bc hasn't been needed since
a982c5d74fbc7ff5bd2f2f73af61ae48e9b1bcc6
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Tue, 8 Sep 2015 17:42:26 +0000 (19:42 +0200)]
mmaldec: fix pkt_dts determination
This also drops setting the frame->pts field. This is usually not set by
decoders, so this would be an inconsistency that's at worst a danger to
the API user.
It appears the buffer->dts field is normally not set by the MMAL
decoder, so don't use it. If it's ever going to be set by MMAL, we
don't know whether the value will be what we want.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Fri, 11 Sep 2015 16:36:56 +0000 (18:36 +0200)]
lavc: allow asynchronous decoders to return correct pkt_dts values
The generic code in utils.c sets the AVFrame.pkt_dts field from the
packet it was supposedly decoded. This does not have to be true for a
fully asynchronous decoder like mmaldec. It could be overwritten with an
incorrect value. Even if the decoder doesn't determine the DTS (but sets
it to AV_NOPTS_VALUE), it's impossible to determine a correct value in
utils.c.
Decoders can now be marked with FF_CODEC_CAP_SETS_PKT_DTS, in which case
utils.c won't overwrite the field. The decoders are expected to set this
field (even if they only set it to AV_NOPTS_VALUE).
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Tue, 8 Sep 2015 17:42:24 +0000 (19:42 +0200)]
mmaldec: disable timestamp interpolation
This MMAL feature fills in missing timestamps from the framerate set on
the input port. This is generally unwanted, since libavcodec decoders
merely pass through timestamps without ever "fixing" them. The framerate
is also unknown, and even the timebase doesn't have to be set.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Tue, 8 Sep 2015 17:42:23 +0000 (19:42 +0200)]
mmaldec: fix problems with flush logic
Don't try to do a blocking wait for MMAL output if we haven't even sent
a single real packet, but only flush packets. Obviously we can't expect
to get anything back.
Additionally, don't send a flush packet to MMAL in the same case. It
appears the MMAL decoder will sometimes hang in mmal_vc_port_disable()
(called from ffmmal_close_decoder()), waiting for a reply from the GPU
which never arrives. Either MMAL disallows sending flush packets without
preceding real data, or it's a MMAL bug.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Tue, 8 Sep 2015 17:42:22 +0000 (19:42 +0200)]
mmaldec: hack against buffering problems on broken input
I can't come up with a nice way to handle this. It's hard to keep the
lock-stepped input/output in this case. You can't predict whether the
MMAL decoder will output a picture (because it's asynchronous), so
you have to assume in general that any packet could produce 0 or 1
frames. You can't continue to write input packets to the decoder,
because then you might get too many output frames, which you can't
get rid of because the lavc decoding API does not allow the decoder
to return an output frame without consuming an input frame (except
when flushing).
The ideal fix is a M:N decoding API (preferably asynchronous), which
would make this code potentially much cleaner. For now, this hack
will do.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Fri, 11 Sep 2015 16:19:39 +0000 (18:19 +0200)]
jpeg2000: Split codeblock decoding from the main tile decoding
That loop is completely stand-alone.
Luca Barbato [Fri, 11 Sep 2015 01:00:36 +0000 (03:00 +0200)]
jpeg2000: Do not warn about known and skippable markers
Matches the openjpeg behaviour.
Luca Barbato [Thu, 10 Sep 2015 12:46:05 +0000 (14:46 +0200)]
mmvideo: Make sure the rle does not write over the frame boundaries
Bug-Id: 887
CC: libav-stable@libav.org
Luca Barbato [Thu, 10 Sep 2015 12:11:43 +0000 (14:11 +0200)]
ogg: Do not try to use the parser if it is not present
Bug-Id: 886
CC: libav-stable@libav.org
Luca Barbato [Thu, 10 Sep 2015 03:02:47 +0000 (05:02 +0200)]
pixdesc: Document the component order
Hendrik Leppkes [Wed, 9 Sep 2015 10:56:49 +0000 (12:56 +0200)]
pixdesc: Add missing alpha flag for yuva420p9be
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Hendrik Leppkes [Wed, 9 Sep 2015 10:56:48 +0000 (12:56 +0200)]
pixdesc: Consistently order components
Ensure that the components are ordered consistently, ie. always
RGB(A) and YUV(A). This allows to identify a specific plane on a given
pixel format without hard-coding knowledge of the plane order.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Vittorio Giovara [Mon, 7 Sep 2015 15:02:14 +0000 (17:02 +0200)]
codec_desc: Add missing DXV entry
Vittorio Giovara [Thu, 3 Sep 2015 11:44:14 +0000 (13:44 +0200)]
lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields
The new fields can be accessed directly and are more intelligible.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 2 Sep 2015 16:59:38 +0000 (18:59 +0200)]
lavu: Remove bit packing from AVComponentDescriptor
There is no practical benefit in having this structure elements
bit packed given the size of the structure and its usage.
Change types from uint16_t (packed) to plain int in order to simplify
modifying the structure and accessing its fields.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
wm4 [Wed, 2 Sep 2015 16:59:37 +0000 (18:59 +0200)]
lavu: extend size of the AVPixFmtDescriptor.flags field
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Alexandra Hájková [Wed, 2 Sep 2015 12:27:42 +0000 (14:27 +0200)]
asfdec: alloc enough space for storing name in asf_read_metadata_obj
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö [Wed, 2 Sep 2015 10:05:45 +0000 (13:05 +0300)]
mov: Allow more than one keyframe per trun
The previous restriction was partially designed to fix certain
(broken) samples from bug 215. There should be no restriction on the
number of keyframes per fragment or trun.
The spec suggests that all frames lacking MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC
are key frames, but we require the flag MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES
to be unset as well. This works for (possibly broken) media that never
sets the NON_SYNC flag and should also be correct for any spec-compliant
file.
For files that never set either of the flags, all samples are marked
as keyframes.
Signed-off-by: Martin Storsjö <martin@martin.st>
Luca Barbato [Thu, 3 Sep 2015 14:44:27 +0000 (16:44 +0200)]
dxtory: Unify and rework the decoding routines
Do not make many assumption on the dimension of the slices and just
try to decode additional lines if there is enough data left.
Decodes all the samples kindly provided by ultramage.
Henrik Gramner [Sat, 5 Sep 2015 23:06:12 +0000 (01:06 +0200)]
checkasm: add unit tests for v210enc
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Vittorio Giovara [Fri, 4 Sep 2015 12:31:04 +0000 (14:31 +0200)]
riff: Add AVj2 fourcc for Avid jpeg2000
Luca Barbato [Thu, 3 Sep 2015 14:13:04 +0000 (16:13 +0200)]
dxtory: Factorize the buffer loading
And the checks nearby it.
Luca Barbato [Thu, 3 Sep 2015 14:13:04 +0000 (16:13 +0200)]
dxtory: Factorize slice size checks
They are always the same.
Michael Niedermayer [Wed, 2 Sep 2015 12:22:18 +0000 (14:22 +0200)]
fraps: increase vlc nb_bits
Sample-Id: fraps_bug_huff.avi
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Michael Niedermayer [Wed, 2 Sep 2015 12:22:17 +0000 (14:22 +0200)]
huffman: allow specifying nb_bits to ff_huff_build_tree()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Michael Niedermayer [Wed, 2 Sep 2015 12:22:16 +0000 (14:22 +0200)]
huffman: increase bits constant
Bug-ID: ffmpeg ticket 2593
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Michael Niedermayer [Wed, 2 Sep 2015 12:22:15 +0000 (14:22 +0200)]
huffman: use a named identifer for the bits constant
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Sean McGovern [Thu, 27 Aug 2015 04:04:16 +0000 (00:04 -0400)]
mux: Make sure that the data is actually written
And forward the error if it is not.
Bug-Id: 881
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Sean McGovern [Thu, 27 Aug 2015 04:04:15 +0000 (00:04 -0400)]
file: properly forward errors from file_read() and file_write()
Bug-Id: 881
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Wed, 2 Sep 2015 11:55:47 +0000 (13:55 +0200)]
mpegvideo: Drop a stray error message
The condition is not a failure.
Vittorio Giovara [Wed, 26 Aug 2015 09:31:41 +0000 (11:31 +0200)]
DXV decoder
Support all DXDI and DXD3 normal quality videos.
Luca Barbato [Wed, 26 Aug 2015 09:31:40 +0000 (11:31 +0200)]
lavc: Add a lzf decompressor
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Luca Barbato [Mon, 31 Aug 2015 02:00:05 +0000 (04:00 +0200)]
build: Skip libvpx.h if libvpx is not enabled
Luca Barbato [Mon, 31 Aug 2015 00:47:10 +0000 (02:47 +0200)]
tools: Drop a stale header
Michael Niedermayer [Sun, 30 Aug 2015 14:46:16 +0000 (16:46 +0200)]
dnxhddata: Double frame_size for cid 1260
Despite '417792' being reported in the binary decoder, the buffer at
encoding time needs to be bigger to avoid running out of space due to
interlace handling.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Sat, 29 Aug 2015 19:15:19 +0000 (21:15 +0200)]
des: Add missing include
Vittorio Giovara [Sat, 29 Aug 2015 19:17:16 +0000 (21:17 +0200)]
ismindex: Use the correct abs() version
Vittorio Giovara [Sat, 29 Aug 2015 19:20:47 +0000 (21:20 +0200)]
lavr: Remove unused label
Vittorio Giovara [Sat, 29 Aug 2015 19:21:49 +0000 (21:21 +0200)]
libfdk-aacdec: Remove unused variable
Federico Tomassetti [Thu, 13 Aug 2015 18:13:48 +0000 (20:13 +0200)]
build: Add support for travis CI
It is useful to support a future staging branch and to have an
automated consistency check on github pull requests.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:36 +0000 (14:30 +0100)]
Bump major versions of all libraries
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Tue, 28 Jul 2015 13:30:35 +0000 (14:30 +0100)]
Postpone API-incompatible changes until the next bump
Vittorio Giovara [Tue, 28 Jul 2015 13:30:34 +0000 (14:30 +0100)]
lavu: Drop deprecated private lls functions
Deprecated in 02/2013.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:33 +0000 (14:30 +0100)]
lavu: Drop deprecated context size variables
Deprecated in 10/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:32 +0000 (14:30 +0100)]
lavu: Drop deprecated duplicated AVFrame/AVCodecContext parameters
Deprecated in 10/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:31 +0000 (14:30 +0100)]
lavu: Drop deprecated AV_CPU_FLAG_MMX2 symbol
Deprecated in 11/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:30 +0000 (14:30 +0100)]
lavu: Drop deprecated audioconvert.h header
Deprecated in 11/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:29 +0000 (14:30 +0100)]
lavu: Drop deprecated av_reverse function
Deprecated in 10/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:28 +0000 (14:30 +0100)]
lavu: Drop deprecated external access to AVPixFmtDescriptor table
Deprecated in 10/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:27 +0000 (14:30 +0100)]
lavu: Drop deprecated old_pix_fmt.h and related code
Deprecated in 10/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:26 +0000 (14:30 +0100)]
lavc: Drop deprecated deinterlace module
Deprecated in 03/2013.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:25 +0000 (14:30 +0100)]
lavc: Drop deprecated thread opaque and codec pkt
These fields were never part of the public API.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:24 +0000 (14:30 +0100)]
lavc: Drop deprecated get_buffer related functions
Deprecated in 11/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:23 +0000 (14:30 +0100)]
lavc: Drop deprecated destruct_packet related functions
Deprecated in 10/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:22 +0000 (14:30 +0100)]
lavc: Drop deprecated request_channels related functions
Deprecated in 04/2011.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:21 +0000 (14:30 +0100)]
lavfi: Drop deprecated AVFilterBuffer* code
Deprecated in 11/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:20 +0000 (14:30 +0100)]
lavfi: Drop deprecated *_count suffixed variables
Deprecated in 06/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:19 +0000 (14:30 +0100)]
lavfi: Drop deprecated public AVFilterPad struct
Deprecated in 06/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:18 +0000 (14:30 +0100)]
lavr: Drop deprecated context reinitialization if resampling was not enabled
Deprecated in 11/2012.
Vittorio Giovara [Tue, 28 Jul 2015 13:30:17 +0000 (14:30 +0100)]
sws: Drop deprecated SWS_CPU_CAPS defines
Deprecated in 07/2012.
Henrik Gramner [Mon, 24 Aug 2015 20:53:56 +0000 (22:53 +0200)]
checkasm: Fix floating point arguments on 64-bit Windows
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Luca Barbato [Tue, 25 Aug 2015 21:04:12 +0000 (23:04 +0200)]
vf_scale: Add an option to pass the scaler params
Reported-By: zehan@magicpony.technology
Timothy Gu [Tue, 25 Aug 2015 23:45:21 +0000 (16:45 -0700)]
avconv_opt: Add an option that lists all supported hwaccels
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Timothy Gu [Tue, 25 Aug 2015 23:49:07 +0000 (16:49 -0700)]
avconv_opt: Add missing comma
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 9 Aug 2015 08:59:33 +0000 (10:59 +0200)]
webm: Explicitly select libvpx, libopus and libvorbis encoders
And update the preference for the newer codecs now that the libraries
seem stable and widespread enough.
Bug-Id: 695
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 23 Aug 2015 23:29:59 +0000 (01:29 +0200)]
nvenc: Properly free the fifos
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 16 Aug 2015 19:21:50 +0000 (21:21 +0200)]
hlsenc: Support outputting specific versions
Right now only version 2 and version 3 are supported.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Vittorio Giovara [Thu, 30 Jul 2015 14:55:39 +0000 (15:55 +0100)]
dnxhddata: Add tables for missing DNx100 profiles
1440x1080@8 progressive (1259) and interlaced (1260).
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Thu, 30 Jul 2015 14:55:38 +0000 (15:55 +0100)]
dnxhddata: Merge a few duplicated RUN tables
Vittorio Giovara [Thu, 30 Jul 2015 14:55:37 +0000 (15:55 +0100)]
dnxhddata: Group together RUN-related tables
This helps in finding duplicates.
Vittorio Giovara [Thu, 30 Jul 2015 14:55:36 +0000 (15:55 +0100)]
dnxhddata: Merge a few duplicated DC tables
Vittorio Giovara [Thu, 30 Jul 2015 14:55:35 +0000 (15:55 +0100)]
dnxhddata: Group together DC-related tables
This helps in finding duplicates.
Vittorio Giovara [Thu, 30 Jul 2015 14:55:34 +0000 (15:55 +0100)]
dnxhddata: List the reused tables in a comment
Vittorio Giovara [Thu, 30 Jul 2015 14:55:33 +0000 (15:55 +0100)]
dnxhddata: Keep a single CID in the table names
Use a comment to list the reused tables, since it's more flexible than a
table name to keep information like this. The list will expand in later
commits.
Luca Barbato [Fri, 21 Aug 2015 07:02:04 +0000 (09:02 +0200)]
channel_layout: Add a 16channel default layout
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 23 Aug 2015 09:58:47 +0000 (11:58 +0200)]
aac: Make sure to set err on the failure path
Bug-Id: CID
1308153
Luca Barbato [Sun, 23 Aug 2015 15:57:21 +0000 (17:57 +0200)]
xavs: Do not try to set the bitrate tolerance without a bitrate
Avoid a division by zero.
Bug-Id: CID
1257655
Luca Barbato [Fri, 21 Aug 2015 23:42:19 +0000 (01:42 +0200)]
h264: Fix faulty call to avpriv_request_sample
Broken in
f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068
John Högberg [Fri, 7 Aug 2015 19:30:38 +0000 (19:30 +0000)]
h264: Discard currently unsupported registered sei
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Tue, 18 Aug 2015 14:18:30 +0000 (16:18 +0200)]
imgutils: Fix a typo in avcodec_get_pix_fmt_loss
If the candidate does not have alpha and the source does have alpha
report the loss of alpha.
CC: libav-stable@libav.org
Anton Khirnov [Sun, 12 Jul 2015 05:50:28 +0000 (07:50 +0200)]
hevcdsp: fix a function name
put_weighted_pred_avg should be put_unweighted_pred_avg, there is no
weighting there.
Anton Khirnov [Sat, 11 Jul 2015 18:19:51 +0000 (20:19 +0200)]
hevc: avoid invalid shifts of negative values
Henrik Gramner [Thu, 20 Aug 2015 15:06:21 +0000 (17:06 +0200)]
checkasm: Explicitly declare function prototypes
Now we no longer have to rely on function pointers intentionally
declared without specified argument types.
This makes it easier to support functions with floating point parameters
or return values as well as functions returning 64-bit values on 32-bit
architectures. It also avoids having to explicitly cast strides to
ptrdiff_t for example.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Henrik Gramner [Sun, 16 Aug 2015 15:58:02 +0000 (17:58 +0200)]
checkasm: x86: properly save rdx/edx in checked_call()
If the return value doesn't fit in a single register rdx/edx can in some
cases be used in addition to rax/eax.
Doesn't affect any of the existing checkasm tests but might be useful later.
Also comment the relevant code a bit better.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Janne Grunau [Thu, 20 Aug 2015 12:46:42 +0000 (14:46 +0200)]
fate: test only demuxing in asf-repldata
Alexandra Hájková [Thu, 13 Aug 2015 08:16:20 +0000 (10:16 +0200)]
asfdec: prevent the memory leak in the asf_read_metada_obj
also do not return the error code but just break reading
metadata object in the case of the aspect ratio reading failure
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Alexandra Hájková [Fri, 14 Aug 2015 09:42:26 +0000 (11:42 +0200)]
fate: Make sure a corner-case for ASF is covered
Test the demuxer for the case when the replicated data length in
a sample is 0.
Sample-ID: https://samples.libav.org/mplayer-bugs/bug821/bug821-2.asf
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Fri, 14 Aug 2015 20:01:45 +0000 (22:01 +0200)]
hlsenc: Use AV_TIME_BASE units for all the computations
Do not risk mixing different timebases.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Federico Tomassetti [Thu, 13 Aug 2015 13:35:53 +0000 (15:35 +0200)]
vp7: bound checking in vp7_decode_frame_header
CC: libav-stable@libav.org
Martin Storsjö [Fri, 14 Aug 2015 08:33:03 +0000 (11:33 +0300)]
libfdk-aacdec: Clean up properly if the init fails
Previously most of the error paths leaked.
Also add FF_CODEC_CAP_INIT_THREADSAFE while adding caps_internal;
this decoder wrapper doesn't have any static data that is initialized.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 14 Aug 2015 08:05:30 +0000 (11:05 +0300)]
libfdk-aacdec: Always decode into an intermediate buffer
For ADTS streams, the output format (number of channels, frame size)
can change at any point (with the latest version of fdk-aac, the decoder
seems to change format after a handful of frames, not outputting the
right format immediately, for cases that worked fine with the earlier
version of the lib).
Previously, the decoder decoded straight into the output frame once the
number of channels and frame size was known. This obviously does not
work if the number of channels or frame size changes.
The alternative would be to allocate the AVFrame with the maximum number
of channels and frame size, and change them afterward decoding into it,
but that may cause confusion to users e.g. of the get_buffer callback.
This solution should be more robust.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>