Anton Khirnov [Tue, 21 Jul 2015 17:41:59 +0000 (19:41 +0200)]
qsvdec: fix a memleak of async_fifo
init() is called whenever format changes, so current code would leak the
fifo in this case.
Anton Khirnov [Thu, 9 Jul 2015 18:08:13 +0000 (20:08 +0200)]
qsvdec: avoid an infinite loop with no consumed data and no output
This is triggerable with the HEVC decoder. It is unclear yet whether the
bug is in the calling code or the MSDK, but it seems better to check for
this in any case.
Steve Lhomme [Fri, 24 Jul 2015 07:38:04 +0000 (09:38 +0200)]
use a wrapper script to call MS link.exe to avoid mixing with /usr/bin/link.exe
Fallback to "link" in the path if the one next to cl is not found.
Signed-off-by: Martin Storsjö <martin@martin.st>
Steve Lhomme [Thu, 23 Jul 2015 17:25:44 +0000 (19:25 +0200)]
configure: force -nologo- when detecting MSVC
The -nologo- option is the inverse of -nologo, reenabling printing the
"logo" version header. This is useful if the compiler actually is a
wrapper that forces -nologo.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 23 Jul 2015 14:59:44 +0000 (17:59 +0300)]
dds: Write the palette in the native endian form
This fixes the palette on big endian, broken (or, differing from
little endian) since
57214b2f7.
Signed-off-by: Martin Storsjö <martin@martin.st>
Tom Butterworth [Tue, 21 Jul 2015 00:21:39 +0000 (01:21 +0100)]
hap: Name enums, remove unused struct member
Tom Butterworth [Tue, 21 Jul 2015 00:21:38 +0000 (01:21 +0100)]
snappy: Refactor so ff_snappy_uncompress() uses an existing buffer
Some uses of Snappy require uncompressing to positions within
an existing buffer. Also adds a function to get the uncompressed
length of Snappy data.
Alexandra Hájková [Wed, 22 Jul 2015 14:10:25 +0000 (16:10 +0200)]
asfdec: remove the wrong condition
this condition breaks reading from the pipe as data_reached variable
have to be set to break while in the asf_read_header just after the Data
Object is found
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Tom Butterworth [Wed, 22 Jul 2015 23:01:01 +0000 (00:01 +0100)]
hap: Fix slice size computation
A bug was introduced in
977105407cae55876041dddbf4ce0934cdd4cd6c whereby when
frame height wasn't divisible by the number of threads, pixels would be omitted
from the bottom rows during decode.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Tom Butterworth [Wed, 22 Jul 2015 23:03:29 +0000 (00:03 +0100)]
dds: Fix the slice size computation
A bug was introduced in
6b2b26e7af3ede0abfb46eb5725c26d1083f50bc whereby when
frame height wasn't divisible by the number of threads, pixels would be omitted
from the bottom rows during decode.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Anton Khirnov [Wed, 22 Jul 2015 09:30:37 +0000 (11:30 +0200)]
af_channelmap: properly set the supported output channel layouts
The current code expects query_formats() to be called exactly once, it
will leak if it's not called at all (filter initialized, but never
configured or used) or try to read freed memory if it's called more than
once.
Found-by: James Almer <jamrial@gmail.com>
CC: libav-stable@libav.org
Alexandra Hájková [Thu, 23 Jul 2015 06:59:53 +0000 (08:59 +0200)]
asfdec: increment nb_streams right after the stream allocation
to prevent possible memory leaks
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Wed, 22 Jul 2015 19:38:15 +0000 (21:38 +0200)]
asfdec: set nb_streams to 0 in the asf_read_close
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Vittorio Giovara [Mon, 20 Jul 2015 17:24:19 +0000 (18:24 +0100)]
mpegvideo: Add missing include
Vittorio Giovara [Mon, 20 Jul 2015 22:47:14 +0000 (23:47 +0100)]
dds: Add a rgba fate test
Michael Niedermayer [Mon, 20 Jul 2015 22:47:13 +0000 (23:47 +0100)]
dds: Fix 32bpp bitmaps decoding
Found-By: ami_stuff
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Mon, 20 Jul 2015 22:47:12 +0000 (23:47 +0100)]
dds: Fix palette decoding
Red and blue channels were decoded in the wrong order.
Found-By: ami_stuff
Vittorio Giovara [Wed, 22 Jul 2015 12:20:07 +0000 (13:20 +0100)]
dds: Fix enum declaration
Drop the global variables with anonymous enum type.
Alexandra Hájková [Tue, 21 Jul 2015 08:45:01 +0000 (10:45 +0200)]
asfdec: avoid crash in the case when chunk_len is 0 or pkt_len is 0
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Fri, 17 Jul 2015 12:17:02 +0000 (14:17 +0200)]
asfdec: close the demuxer properly when read_header is failing
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Tue, 21 Jul 2015 07:14:39 +0000 (09:14 +0200)]
asfdec: factor out seeking to the Data Object outside while
return INVALIDDARA if Data Object was not found
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Sun, 19 Jul 2015 09:24:36 +0000 (11:24 +0200)]
qsvenc_hevc: use the correct HW plugin UID
Janne Grunau [Mon, 20 Jul 2015 21:17:57 +0000 (23:17 +0200)]
checkasm: remove empty array initializer list in h264pred test
Fixes MSVC compilation.
Luca Barbato [Tue, 21 Jul 2015 21:22:42 +0000 (23:22 +0200)]
checkasm: Always link statically
Checkasm needs to use internal symbols that should not be made public.
Luca Barbato [Fri, 17 Jul 2015 01:07:08 +0000 (03:07 +0200)]
dds: Decode using optimal slices sizes
Enjoy some cache locality and use less threads.
About the same speedup provided to HAP.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Fri, 17 Jul 2015 01:07:07 +0000 (03:07 +0200)]
hap: Decode using optimal slices sizes
Enjoy some cache locality and use less threads.
About 5x speedup (from 60ms to 12ms to decode a 4k frame).
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Mon, 20 Jul 2015 14:50:43 +0000 (16:50 +0200)]
parseutil: Use non ambiguous aliases for uhd
uhd1 and uhd2 would be ambigous.
Janne Grunau [Mon, 20 Jul 2015 08:46:15 +0000 (10:46 +0200)]
arm: use a local label instead of the function symbol in ff_prefetch_arm
Avoids a relocation which might end out of range for thumb2.
Reported-By: Ludovic Fauvet <etix@videolan.org>
Bug-Id: https://bugs.webkit.org/show_bug.cgi?id=137022
CC: libav-stable@libav.org
Janne Grunau [Sun, 12 Jul 2015 16:30:09 +0000 (18:30 +0200)]
h264: aarch64: intra prediction optimisations
Vittorio Giovara [Wed, 15 Jul 2015 17:41:22 +0000 (18:41 +0100)]
Deprecate avctx.coded_frame
The rationale is that coded_frame was only used to communicate key_frame,
pict_type and quality to the caller, as well as a few other random fields,
in a non predictable, let alone consistent way.
There was agreement that there was no use case for coded_frame, as it is
a full-sized AVFrame container used for just 2-3 int-sized properties,
which shouldn't even belong into the AVCodecContext in the first place.
The appropriate AVPacket flag can be used instead of key_frame, while
quality is exported with the new AVPacketSideData quality factor.
There is no replacement for the other fields as they were unreliable,
mishandled or just not used at all.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:21 +0000 (18:41 +0100)]
Add a quality factor packet side data
This is necessary to preserve the quality information currently exported
with coded_frame. Add the new side data to every encoder that needs it,
and use it in avconv.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:20 +0000 (18:41 +0100)]
Gather all coded_frame allocations and free functions to a single place
Allocating coded_frame is what most encoders do anyway, so it makes
sense to always allocate and free it in a single place. Moreover a lot
of encoders freed the frame with av_freep() instead of the correct API
av_frame_free().
This bring uniformity to encoder behaviour and prevents applications
from erroneusly accessing this field when not allocated. Additionally
this helps isolating encoders that export information with coded_frame,
and heavily simplifies its deprecation.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:19 +0000 (18:41 +0100)]
flashsvenc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:18 +0000 (18:41 +0100)]
ffv1enc: Use input frame to set SAR and interlacing
Vittorio Giovara [Wed, 15 Jul 2015 17:41:17 +0000 (18:41 +0100)]
ffv1enc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:16 +0000 (18:41 +0100)]
qtrleenc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:15 +0000 (18:41 +0100)]
libtheoraenc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:14 +0000 (18:41 +0100)]
libvpxenc: Do not entangle coded_frame
Keep coded_frame.key_frame a write-only variable.
Vittorio Giovara [Wed, 15 Jul 2015 17:41:13 +0000 (18:41 +0100)]
libxvid: Do not entangle coded_frame
Vittorio Giovara [Wed, 15 Jul 2015 17:41:12 +0000 (18:41 +0100)]
svq1enc: Do not entangle coded_frame
Vittorio Giovara [Wed, 15 Jul 2015 17:41:11 +0000 (18:41 +0100)]
proresenc: Do not entangle coded_frame
Vittorio Giovara [Wed, 15 Jul 2015 17:41:10 +0000 (18:41 +0100)]
a64multienc: Do not entangle coded_frame
This change (and the following ones of the same kind) is mainly to
simplify wrapping this section with an #if FF_API block later on.
No functional changes are applied, the fields of the context coded_frame
fields are directly initialized, instead of keeping a reference to the
coded_frame itself.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:09 +0000 (18:41 +0100)]
roqvideoenc: Drop unneeded initialization
Its fields are never initialized to begin with.
Vittorio Giovara [Wed, 15 Jul 2015 17:41:08 +0000 (18:41 +0100)]
mpegvideo_enc: Drop unnneded initialization
coded_frame is already initialized where needed.
Luca Barbato [Thu, 16 Jul 2015 22:31:54 +0000 (00:31 +0200)]
parseutil: Add more resolution aliases
Add DCI 2k and 4k and uhd1 and uhd2.
Anton Khirnov [Tue, 14 Jul 2015 16:16:26 +0000 (18:16 +0200)]
qsvenc: properly handle asynchronous encoding
Wait for async_depth frames before syncing.
Anton Khirnov [Tue, 14 Jul 2015 16:16:26 +0000 (18:16 +0200)]
qsvdec: properly handle asynchronous decoding
Wait for async_depth frames before syncing.
Anton Khirnov [Thu, 16 Jul 2015 17:26:36 +0000 (19:26 +0200)]
af_resample: do not touch the timestamps if we are not resampling
This filter currently assumes that the input audio is continuous and
does some timestamps manipulation based on this assumption.
This is unnecessary if we are only converting the channel layout or the
sample format, without resampling. In such a case, just leave the
timestamps as they are.
Anton Khirnov [Wed, 15 Jul 2015 17:49:24 +0000 (19:49 +0200)]
avconv: split creating and (re-)configuring complex filtergraphs
The current code is less than straightforward due to the fact that
output streams can be created based on filtergraph definitions. This
change should make the code simpler and more readable. It will also be
useful in the future commits.
Anton Khirnov [Wed, 15 Jul 2015 15:17:54 +0000 (17:17 +0200)]
avconv: create the complex filtergraphs earlier
Since global options are processed before all the other options now, we
do not have to try creating the complex filtergraphs several times
anymore, it is enough to do it once after the input files are opened.
Anton Khirnov [Wed, 15 Jul 2015 13:51:39 +0000 (15:51 +0200)]
avconv: move the no streams failure to open_output_file()
It is a better place for it, there is no reason to wait until
transcode_init().
Anton Khirnov [Sun, 28 Jun 2015 08:49:19 +0000 (10:49 +0200)]
avconv: factor out the output stream initialization
Anton Khirnov [Sun, 28 Jun 2015 06:45:02 +0000 (08:45 +0200)]
avconv: use read_file() for reading the 2pass stats
Also, drop the now unused cmdutils_read_file(). There is no reason to
have two functions doing essentially the same thing.
Anton Khirnov [Sun, 28 Jun 2015 06:37:58 +0000 (08:37 +0200)]
avconv: move handling the 2pass logfile into avconv_opt
It more logically belongs there.
Anton Khirnov [Sun, 28 Jun 2015 06:03:44 +0000 (08:03 +0200)]
avconv: set the encoding/decoding_needed flags earlier
This will be useful in the following commits.
Anton Khirnov [Sun, 28 Jun 2015 05:41:22 +0000 (07:41 +0200)]
avconv: drop update_sample_fmt()
There is only one decoder left that supports this (libopus, which is not
used by default since we have a native one) and this code goes against
the avconv design, since it propagates information back from the encoder
to decoder.
Alexandra Hájková [Fri, 17 Jul 2015 12:17:07 +0000 (14:17 +0200)]
asfdec: make nb_sub to be unsigned int
number of subpayloads should be always positive
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Fri, 17 Jul 2015 12:17:06 +0000 (14:17 +0200)]
asfdec: read the replicated data in a separate function
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Fri, 17 Jul 2015 12:17:05 +0000 (14:17 +0200)]
asfdec: convert condition for the replicated data reading to be safer
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Fri, 17 Jul 2015 12:17:03 +0000 (14:17 +0200)]
asfdec: do not read replicated data when their length is 0
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Janne Grunau [Sun, 12 Jul 2015 15:35:21 +0000 (17:35 +0200)]
fate: add checkasm target
Janne Grunau [Sun, 12 Jul 2015 14:41:42 +0000 (16:41 +0200)]
checkasm: test all architectures with optimisations
Michael Niedermayer [Fri, 17 Jul 2015 16:07:58 +0000 (18:07 +0200)]
checkasm: Give macro a body to avoid potential unexpected syntax issues
Henrik Gramner [Fri, 17 Jul 2015 16:07:57 +0000 (18:07 +0200)]
checkasm: exit with status 0 instead of 1 if there are no tests to perform
Janne Grunau [Sun, 12 Jul 2015 15:03:13 +0000 (17:03 +0200)]
h264: arm: use intra pred8x8 functions only for chroma_format_idc <= 1
Luca Barbato [Fri, 17 Jul 2015 18:07:26 +0000 (20:07 +0200)]
cosmetics: Reformat checkasm tests
Henrik Gramner [Wed, 15 Jul 2015 22:10:28 +0000 (00:10 +0200)]
checkasm: Add unit tests for bswapdsp
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Henrik Gramner [Wed, 15 Jul 2015 22:10:27 +0000 (00:10 +0200)]
x86: bswapdsp: Don't treat 32-bit integers as 64-bit
The upper halves are not guaranteed to be zero in x86-64.
Also use `test` instead of `and` when the result isn't used for anything other
than as a branch condition, this allows some register moves to be eliminated.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Vittorio Giovara [Thu, 16 Jul 2015 15:11:04 +0000 (16:11 +0100)]
configure: Factor out g722dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:03 +0000 (16:11 +0100)]
configure: Factor out wmv2dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:02 +0000 (16:11 +0100)]
configure: Factor out vp8dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:01 +0000 (16:11 +0100)]
configure: Factor out vp56dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:00 +0000 (16:11 +0100)]
configure: Factor out rv34dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:10:59 +0000 (16:10 +0100)]
configure: Factor out mss34dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:10:58 +0000 (16:10 +0100)]
configure: Factor out ividsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:10:57 +0000 (16:10 +0100)]
configure: Factor out flacdsp module
Dave Yeo [Fri, 17 Jul 2015 05:21:11 +0000 (22:21 -0700)]
OS/2: Cleanup slib_create_def_cmd
Export symbols by name rather then ordinal.
Remove PROTMODE directive as it does not make sense for 32 bit library.
Also silences a warning from some linkers.
Signed-off-by: Dave Yeo <dave.r.yeo@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Fri, 10 Jul 2015 12:45:14 +0000 (14:45 +0200)]
libx264: Add support for the MPEG2 encoder
Vittorio Giovara [Fri, 10 Jul 2015 14:52:00 +0000 (15:52 +0100)]
hq_hqa: Fix decoding when INFO section is absent
Vittorio Giovara [Mon, 13 Jul 2015 23:11:16 +0000 (00:11 +0100)]
APIchanges: Mention lavfi and lavd identification symbol addition
Vittorio Giovara [Fri, 10 Jul 2015 17:46:19 +0000 (18:46 +0100)]
Revert "mov: Double-check that alias path is not an absolute path"
This reverts commit
9286de045968ad456d4e752651eec22de5e89060.
The change broke support for legit absolute file paths.
Reported-by: Maksym Veremeyenko <verem@m1stereo.tv>.
Kieran Kunhya [Wed, 8 Jul 2015 22:17:44 +0000 (23:17 +0100)]
h264: Add support for Closed Caption export
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Henrik Gramner [Mon, 13 Jul 2015 21:11:25 +0000 (23:11 +0200)]
checkasm: Add unit tests for h264qpel
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Tue, 30 Jun 2015 14:24:12 +0000 (16:24 +0200)]
mpegts: Mark the muxer as supporting variable fps
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Tue, 14 Jul 2015 10:31:15 +0000 (12:31 +0200)]
hevc: Split the struct setup from the pps parsing
Luca Barbato [Sun, 12 Jul 2015 13:48:00 +0000 (15:48 +0200)]
mp3: Forward seeking errors
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 12 Jul 2015 22:48:49 +0000 (00:48 +0200)]
hevc: Print the non-supported chroma_format_idc
And drop the spurious newline.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 12 Jul 2015 22:48:48 +0000 (00:48 +0200)]
hevc: Factor out the pixel format mapping from the sps parser
The function will grow larger as more formats are supported.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Alexandra Hájková [Mon, 13 Jul 2015 10:02:03 +0000 (12:02 +0200)]
asfdec: prevent memory leaks found with Coverity Scan
Signed-off-by: Anton Khirnov <anton@khirnov.net>
James Almer [Mon, 13 Jul 2015 03:05:11 +0000 (00:05 -0300)]
dxva2_hevc: unbreak compilation after recent sps/pps changes
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Mon, 13 Jul 2015 06:56:53 +0000 (08:56 +0200)]
hevc_parser: fix standalone build with the hevc decoder disabled
The parser depends on hevc_ps, which in turn needs some data tables.
Found-by: James Almer <jamrial@gmail.com>
Anton Khirnov [Mon, 13 Jul 2015 05:49:03 +0000 (07:49 +0200)]
hevc_ps: make sure failing to decode an SPS always returns an error
Some of the goto err clauses do not set the error code. It seems better
to fall back on INVALIDDATA instead of adding it everywhere explicitly.
Anton Khirnov [Sun, 12 Jul 2015 16:57:10 +0000 (18:57 +0200)]
hevc: handle a NULL sps in set_sps() properly
This can happen in update_thread_context(), when the previous frame was
corrupted.
Anton Khirnov [Sun, 12 Jul 2015 16:52:02 +0000 (18:52 +0200)]
hevc: do not pass an entire HEVCContext into export_stream_params()
It only needs the parameter sets.
Anton Khirnov [Thu, 9 Jul 2015 17:34:51 +0000 (19:34 +0200)]
hevc_parser: parse and export some stream parameters
Particularly those that will be needed by the QSV decoder.
More can be added later as necessary.
Anton Khirnov [Thu, 9 Jul 2015 16:36:16 +0000 (18:36 +0200)]
hevc: improve a comment
That loop does the actual full decoding, so 'parse' can be misleading.
Anton Khirnov [Thu, 9 Jul 2015 16:33:52 +0000 (18:33 +0200)]
hevc: move splitting the packet into NALUs into a separate function
This function is independent of the decoding context, so we'll be able
to use it in the parser.
Anton Khirnov [Thu, 9 Jul 2015 16:11:44 +0000 (18:11 +0200)]
hevc: eliminate the second call to hls_nal_unit()
Also, make hls_nal_unit() work only on the provided NAL unit, without
requiring a whole decoding context.
This will allow splitting this code for reuse by the parser.
Anton Khirnov [Thu, 9 Jul 2015 16:01:08 +0000 (18:01 +0200)]
hevc: skip invalid/ignored NALUs when splitting the packet
There is no need to wait until actually decoding the NALU. This will
allow to get rid of the second hls_nal_unit() call later.
Anton Khirnov [Thu, 9 Jul 2015 12:22:43 +0000 (14:22 +0200)]
hevc: remove HEVCContext usage from hevc_ps
Factor out the parameter sets into a separate struct and use it instead.
This will allow us to reuse this code in the parser.