ffmpeg.git
4 years agoavconv: Check that muxing_queue exists before reading from it
Diego Biurrun [Mon, 25 Jul 2016 13:04:02 +0000 (15:04 +0200)]
avconv: Check that muxing_queue exists before reading from it

This avoids a segfault on nonexisting codec names.

4 years agoconfigure: Allow detecting and using LLVM lld-link as linker for windows
Martin Storsjö [Fri, 22 Jul 2016 07:19:52 +0000 (10:19 +0300)]
configure: Allow detecting and using LLVM lld-link as linker for windows

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoconfigure: Move defines for controlling MSVCRT headers to the CRT detection section
Martin Storsjö [Wed, 20 Jul 2016 21:04:35 +0000 (00:04 +0300)]
configure: Move defines for controlling MSVCRT headers to the CRT detection section

This allows these flags to be automatically enabled for clang,
when using MSVCRT headers.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoconfigure: Check for strtoll and redirect to _strtoi64 in the msvcrt block
Martin Storsjö [Wed, 20 Jul 2016 20:39:20 +0000 (23:39 +0300)]
configure: Check for strtoll and redirect to _strtoi64 in the msvcrt block

This allows doing this redirection, if building with clang against
old enough MSVC headers that lack strtoll (2012 and older).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agohpeldsp: Explain why put_no_rnd_pixels_tab is larger than necessary
Diego Biurrun [Tue, 19 Jan 2016 16:57:03 +0000 (17:57 +0100)]
hpeldsp: Explain why put_no_rnd_pixels_tab is larger than necessary

4 years agocheckasm: Cast unsigned to signed
Luca Barbato [Tue, 19 Jul 2016 03:26:33 +0000 (05:26 +0200)]
checkasm: Cast unsigned to signed

Avoid a warning for passing an unsigned value to abs(), some compilers
might optimize away abs().

4 years agovpx: Support color range
Luca Barbato [Fri, 22 Jul 2016 07:33:04 +0000 (09:33 +0200)]
vpx: Support color range

The range field has been introduced in version 1.6.0

4 years agolavfi: add a QSV deinterlacing filter
Anton Khirnov [Sat, 2 Jul 2016 10:12:36 +0000 (12:12 +0200)]
lavfi: add a QSV deinterlacing filter

4 years agoqsvenc: print warnings from encode/init
Anton Khirnov [Thu, 14 Jul 2016 10:56:35 +0000 (12:56 +0200)]
qsvenc: print warnings from encode/init

4 years agoqsvenc: do not re-execute encoding on all positive status codes
Anton Khirnov [Thu, 14 Jul 2016 10:52:20 +0000 (12:52 +0200)]
qsvenc: do not re-execute encoding on all positive status codes

It should only be done for DEVICE_BUSY/IN_EXECUTION

4 years agoqsv: print more complete error messages
Anton Khirnov [Sat, 25 Jun 2016 19:38:10 +0000 (21:38 +0200)]
qsv: print more complete error messages

Include the libmfx error code and its description

4 years agoqsvenc: take only the allocated dimensions from the frames context
Anton Khirnov [Thu, 14 Jul 2016 10:05:58 +0000 (12:05 +0200)]
qsvenc: take only the allocated dimensions from the frames context

Other parameters, like the display size, should still be taken from the
codec context.

4 years agoqsvenc: add support for p010
Anton Khirnov [Wed, 22 Jun 2016 17:57:28 +0000 (19:57 +0200)]
qsvenc: add support for p010

4 years agoqsv: handle the semi-packed formats in map_fourcc as well
Anton Khirnov [Thu, 14 Jul 2016 10:31:47 +0000 (12:31 +0200)]
qsv: handle the semi-packed formats in map_fourcc as well

This will allow using this function for encoding as well, where the
input format is already the semi-packed version.

4 years agolavc: set sw_pix_fmt for hwaccel encoding
Anton Khirnov [Thu, 14 Jul 2016 10:13:53 +0000 (12:13 +0200)]
lavc: set sw_pix_fmt for hwaccel encoding

4 years agolavc: initialize AVCodecContext.sw_pix_fmt properly
Anton Khirnov [Thu, 14 Jul 2016 10:16:17 +0000 (12:16 +0200)]
lavc: initialize AVCodecContext.sw_pix_fmt properly

Currently it's memset to 0, which is YUV420P. It should be initialized
to none.

4 years agoavconv_qsv: use the actual pixel format provided by lavc
Anton Khirnov [Wed, 13 Jul 2016 07:16:35 +0000 (09:16 +0200)]
avconv_qsv: use the actual pixel format provided by lavc

Do not hardcode NV12. This allows 10bit decoding with -hwaccel qsv.

4 years agoavconv_qsv: align the surface size to 32
Anton Khirnov [Wed, 13 Jul 2016 07:15:56 +0000 (09:15 +0200)]
avconv_qsv: align the surface size to 32

This is required e.g. by HEVC.

4 years agoavconv: stop using setpts for input framerate forced with -r
Anton Khirnov [Fri, 15 Jul 2016 04:50:47 +0000 (06:50 +0200)]
avconv: stop using setpts for input framerate forced with -r

The setpts filter does not signal to the rest of the filtergraph that
the stream is CFR. Just generate the timestamps manually instead.

4 years agocheckasm: add HEVC test for testing IDCT DC
Alexandra Hájková [Thu, 21 Jul 2016 14:32:50 +0000 (16:32 +0200)]
checkasm: add HEVC test for testing IDCT DC

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agoriff: don't overwrite bps from WAVEFORMATEX if EXTENSIBLE doesn't contain that data.
Hendrik Leppkes [Wed, 2 May 2012 14:34:45 +0000 (16:34 +0200)]
riff: don't overwrite bps from WAVEFORMATEX if EXTENSIBLE doesn't contain that data.

According to the specification on the MSDN [1], 0 is valid for that
particular field, and it should be ignored in that case.

[1]: http://msdn.microsoft.com/en-us/library/windows/desktop/dd757714(v=vs.85).aspx

Bug-Id: 950

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agoRevert "avprobe: Zero the allocated avio buffer memory"
Vittorio Giovara [Thu, 21 Jul 2016 19:45:25 +0000 (21:45 +0200)]
Revert "avprobe: Zero the allocated avio buffer memory"

This reverts commit 0e0538aefc75958ded49f5d075c99a81cf6b2bbb.

The valgrind warning was a false positive due to OSX implementation of
printf (invoking a strnlen), while this code is actually fine, since the
format specifier %.*s guarantes that no more than buf_size bytes from
buf will be read.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agolibavutil: Always use some GCC style attributes on clang
Martin Storsjö [Mon, 18 Jul 2016 20:25:11 +0000 (23:25 +0300)]
libavutil: Always use some GCC style attributes on clang

Clang normally disguises as GCC (defining __GNUC__), and thus get
all the normal GCC specific attributes.

Clang can also work as a drop-in replacement for MSVC, and in these
cases, it doesn't define __GNUC__, but defines _MSC_VER instead.

Even in these setups, it still supports the GCC style attributes,
thus use them, especially where there isn't any MSVC specific
version, or where the MSVC specific version doesn't work on clang
(for DECLARE_ASM_CONST).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoarm: Check for support for the .fpu directive
Martin Storsjö [Mon, 18 Jul 2016 20:23:50 +0000 (23:23 +0300)]
arm: Check for support for the .fpu directive

When targeting COFF (windows), clang doesn't support this
directive (while binutils supports it for all targets).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agomov: Rework the check for invalid indexes in stsc
Vittorio Giovara [Wed, 13 Jul 2016 19:02:41 +0000 (15:02 -0400)]
mov: Rework the check for invalid indexes in stsc

There are samples with invalid stsc that may work fine as is and
do not need extradata change. So ignore any out of range index, and
error out only when explode is set.

Found-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agomov: Wrap stsc index and count compare in a separate function
Vittorio Giovara [Wed, 20 Jul 2016 16:48:09 +0000 (18:48 +0200)]
mov: Wrap stsc index and count compare in a separate function

4 years agomov: Fix stsc_count comparison
Matthieu Bouron [Wed, 20 Jul 2016 16:48:08 +0000 (18:48 +0200)]
mov: Fix stsc_count comparison

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agoratecontrol: Reorder functions to avoid forward declarations
Vittorio Giovara [Wed, 20 Jul 2016 14:12:34 +0000 (16:12 +0200)]
ratecontrol: Reorder functions to avoid forward declarations

4 years agoratecontrol: Move Xvid-related functions to the place they are actually used
Vittorio Giovara [Wed, 20 Jul 2016 16:02:23 +0000 (18:02 +0200)]
ratecontrol: Move Xvid-related functions to the place they are actually used

This will simplify the de-MpegEncContextualization.

4 years agoratecontrol: Move mpegenc-only function where it is used
Vittorio Giovara [Wed, 20 Jul 2016 14:12:33 +0000 (16:12 +0200)]
ratecontrol: Move mpegenc-only function where it is used

4 years agoratecontrol: Drop commented out cruft
Vittorio Giovara [Wed, 20 Jul 2016 14:12:31 +0000 (16:12 +0200)]
ratecontrol: Drop commented out cruft

4 years agox86: huffyuv: Use EXTERNAL_SSSE3_FAST convenience macro where appropriate
Diego Biurrun [Mon, 18 Jan 2016 09:52:21 +0000 (10:52 +0100)]
x86: huffyuv: Use EXTERNAL_SSSE3_FAST convenience macro where appropriate

4 years agox86: cpu: Detect Conroe CPUs and their slow shuffle unit
Fiona Glaser [Thu, 14 Jan 2016 09:54:27 +0000 (10:54 +0100)]
x86: cpu: Detect Conroe CPUs and their slow shuffle unit

4 years agox86: Add SSSE3_SLOW CPU flag and related convenience macros
Diego Biurrun [Thu, 14 Jan 2016 10:37:34 +0000 (11:37 +0100)]
x86: Add SSSE3_SLOW CPU flag and related convenience macros

4 years agox86: Use *_FAST/*_SLOW CPU feature detection macros where appropriate
Diego Biurrun [Thu, 14 Jan 2016 09:57:41 +0000 (10:57 +0100)]
x86: Use *_FAST/*_SLOW CPU feature detection macros where appropriate

4 years agox86: hpeldsp: Don't check for bitexact flag when initializing VP3-specific code
Diego Biurrun [Tue, 19 Jan 2016 16:55:59 +0000 (17:55 +0100)]
x86: hpeldsp: Don't check for bitexact flag when initializing VP3-specific code

That code is only ever initialized with that flag set.

4 years agox86: hpeldsp: Drop unused function parameters
Diego Biurrun [Mon, 11 Jan 2016 15:06:33 +0000 (16:06 +0100)]
x86: hpeldsp: Drop unused function parameters

4 years agox86: hpeldsp: Use EXTERNAL_SSE2_FAST where appropriate
Diego Biurrun [Mon, 11 Jan 2016 15:04:17 +0000 (16:04 +0100)]
x86: hpeldsp: Use EXTERNAL_SSE2_FAST where appropriate

4 years agox86: hpeldsp: Split off VP3-specific bits into a separate file
Diego Biurrun [Mon, 11 Jan 2016 14:53:41 +0000 (15:53 +0100)]
x86: hpeldsp: Split off VP3-specific bits into a separate file

4 years agoexamples: Properly free AVCodecContext
Vittorio Giovara [Wed, 20 Jul 2016 14:10:17 +0000 (16:10 +0200)]
examples: Properly free AVCodecContext

4 years agoavprobe: Zero the allocated avio buffer memory
Vittorio Giovara [Wed, 20 Jul 2016 13:44:10 +0000 (15:44 +0200)]
avprobe: Zero the allocated avio buffer memory

Fixes valgrind warning "Conditional jump or move depends on
uninitialised value(s)." from avio_flush().

4 years agolibdc1394: Fill in packet data directly
Vittorio Giovara [Wed, 13 Jul 2016 16:56:51 +0000 (12:56 -0400)]
libdc1394: Fill in packet data directly

Drop the packet embedded in the context.

4 years agoh264dec: do not call finish_setup() if we have not started a frame
Anton Khirnov [Wed, 20 Jul 2016 07:41:35 +0000 (09:41 +0200)]
h264dec: do not call finish_setup() if we have not started a frame

Found-By: Jan Ruge <jan.s.ruge@gmail.com>
Bug-Id: 952

4 years agoh264dec: handle zero-sized NAL units in get_last_needed_nal()
Anton Khirnov [Wed, 20 Jul 2016 06:31:38 +0000 (08:31 +0200)]
h264dec: handle zero-sized NAL units in get_last_needed_nal()

The current code will ignore the init_get_bits() failure and do an
invalid read from the uninitialized GetBitContext.

Found-By: Jan Ruge <jan.s.ruge@gmail.com>
Bug-Id: 952

4 years agoh264dec: make sure not to call finish_setup() more than once per frame
Anton Khirnov [Wed, 20 Jul 2016 07:59:45 +0000 (09:59 +0200)]
h264dec: make sure not to call finish_setup() more than once per frame

It does not break anything currently, but should not be done anyway.

4 years agoavconv_dxva2: add a profile check for hevc
Hendrik Leppkes [Sat, 30 Jan 2016 16:11:13 +0000 (17:11 +0100)]
avconv_dxva2: add a profile check for hevc

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agohevc: set profile based on the profile compatibility flags if needed
Hendrik Leppkes [Sat, 30 Jan 2016 16:44:34 +0000 (17:44 +0100)]
hevc: set profile based on the profile compatibility flags if needed

This fixes retrieving a valid profile for many of the FATE conformance samples,
allowing them to be properly decoded by the HWAccel after adding a profile check.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agohevc: Add AVX2 DC IDCT
James Almer [Wed, 29 Jun 2016 09:56:42 +0000 (11:56 +0200)]
hevc: Add AVX2 DC IDCT

Originally written by Pierre Edouard Lepere <pierre-edouard.lepere@insa-rennes.fr>.
Integrated to Libav by Josh de Kock <josh@itanimul.li>.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
4 years agohevc: Add coefficient limiting to speed up IDCT
Mickaël Raulet [Tue, 5 Jul 2016 16:52:38 +0000 (18:52 +0200)]
hevc: Add coefficient limiting to speed up IDCT

Integrated to libav by Josh de Kock <josh@itanimul.li>.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
4 years agohevc: Add DC IDCT
Mickaël Raulet [Mon, 4 Jul 2016 13:37:52 +0000 (15:37 +0200)]
hevc: Add DC IDCT

Integrated to Libav by Josh de Kock <josh@itanimul.li>.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
4 years agohevcdsp_template: Templatize IDCT
Mickaël Raulet [Mon, 4 Jul 2016 13:31:16 +0000 (15:31 +0200)]
hevcdsp_template: Templatize IDCT

Integrated to Libav by Josh de Kock <josh@itanimul.li>.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
4 years agohevc: Separate adding residual to prediction from IDCT
Alexandra Hájková [Sun, 3 Jul 2016 15:38:56 +0000 (17:38 +0200)]
hevc: Separate adding residual to prediction from IDCT

Based on patch 250430bf28118cf843df887e8c8b345f1c60c82d
by Mickaël Raulet <mraulet@insa-rennes.fr>, integrated
to Libav by Josh de Kock <josh@itanimul.li>.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
4 years agox86util: Extend SPLATW for avx2
James Almer [Tue, 28 Jun 2016 11:22:40 +0000 (13:22 +0200)]
x86util: Extend SPLATW for avx2

Integration to Libav by Josh de Kock <josh@itanimul.li>.

Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
4 years agocheckasm: arm: Ignore changes to bits 0-4 and 7 of FPSCR
Martin Storsjö [Sun, 17 Jul 2016 10:31:06 +0000 (13:31 +0300)]
checkasm: arm: Ignore changes to bits 0-4 and 7 of FPSCR

These bits are set by exceptions in NEON instructions.

Also print the differing bits when FPSCR is clobbered,
and use bic instead of lsl, for clearing the topmost bits.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agocheackasm/arm: remove NEON instructions from checkasm_checked_call_vfp
Janne Grunau [Sun, 17 Jul 2016 08:43:10 +0000 (10:43 +0200)]
cheackasm/arm: remove NEON instructions from checkasm_checked_call_vfp

Fixes AS error on non NEON builds introduced in 71a04721145. Also
set the fpu directly to vfp in checkasm.S to cause build errors on NEON
builds.

4 years agocheckasm: arm: Don't start new const blocks for each string
Martin Storsjö [Sat, 16 Jul 2016 19:31:02 +0000 (22:31 +0300)]
checkasm: arm: Don't start new const blocks for each string

Each const block needs to be terminated by one endconst
invocation so either call endconst after each, or just
declare plain labels to the later strings.

This fixes errors such as this, on some binutils versions:

checkasm.S:38: Error: Macro `endconst' was already defined

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoapichanges: Fill in missing hashes and dates
Diego Biurrun [Mon, 4 Jul 2016 18:50:43 +0000 (20:50 +0200)]
apichanges: Fill in missing hashes and dates

4 years agoswscale: Add proper ff_ prefix to init functions
Diego Biurrun [Wed, 13 Jul 2016 18:14:38 +0000 (20:14 +0200)]
swscale: Add proper ff_ prefix to init functions

They are internal symbols that should not be exported.

based on a patch by Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>

Signed-off-by: Diego Biurrun <diego@biurrun.de>
4 years agoswscale: Rename sws_context_class to ff_sws_context_class
Andreas Cadhalpun [Tue, 27 Oct 2015 21:56:53 +0000 (22:56 +0100)]
swscale: Rename sws_context_class to ff_sws_context_class

It is an internal swscale symbol and thus should not be exported.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
4 years agocheckasm: arm: report the first clobbered register in checkasm_checked_call
Janne Grunau [Thu, 14 Jul 2016 21:16:14 +0000 (23:16 +0200)]
checkasm: arm: report the first clobbered register in checkasm_checked_call

4 years agoavconv_dxva2: support HEVC Main10 decoding
Hendrik Leppkes [Tue, 28 Jun 2016 17:20:40 +0000 (19:20 +0200)]
avconv_dxva2: support HEVC Main10 decoding

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agohevc: offer DXVA2 for 10bit 420
Anton Khirnov [Wed, 29 Jun 2016 07:33:57 +0000 (09:33 +0200)]
hevc: offer DXVA2 for 10bit 420

4 years agoFATE: add a test for H.264 with two fields per packet
Anton Khirnov [Wed, 15 Jun 2016 09:11:32 +0000 (11:11 +0200)]
FATE: add a test for H.264 with two fields per packet

4 years agoh264: fix decoding multiple fields per packet with slice threads
Anton Khirnov [Sun, 12 Jun 2016 12:22:50 +0000 (14:22 +0200)]
h264: fix decoding multiple fields per packet with slice threads

Since we only know whether a NAL unit corresponds to a new field after
parsing the slice header, this requires reorganizing the calls to slice
parsing, per-slice/field/frame init and actual decoding.

In the previous code, the function for slice header decoding also
immediately started a new field/frame as necessary, so any slices
already queued for decoding would no longer be decodable.

After this patch, we first parse the slice header, and if we determine
that a new field needs to be started we decode all the queued slices.

4 years agoh264: eliminate decode_postinit()
Anton Khirnov [Thu, 9 Jun 2016 14:32:12 +0000 (16:32 +0200)]
h264: eliminate decode_postinit()

This function's purpose is not very well defined. Currently it does two
(only marginally related) things: selecting the next output frame and
calling ff_thread_finish_setup() for frame threading. The first of those
more properly belongs under field_start(), while the second can be
called directly from decode_nal_units().

4 years agoFATE: add a test of H.264 SEI recovery in an intra refresh stream
Anton Khirnov [Wed, 15 Jun 2016 08:39:08 +0000 (10:39 +0200)]
FATE: add a test of H.264 SEI recovery in an intra refresh stream

4 years agomp3enc: write trailing padding
Anton Khirnov [Fri, 1 Jul 2016 08:49:33 +0000 (10:49 +0200)]
mp3enc: write trailing padding

4 years agomp3dec: read the initial/trailing padding from the LAME tag
Anton Khirnov [Fri, 1 Jul 2016 08:44:41 +0000 (10:44 +0200)]
mp3dec: read the initial/trailing padding from the LAME tag

4 years agolibopenh264enc: Simplify init by setting FF_CODEC_CAP_INIT_CLEANUP
Martin Storsjö [Thu, 14 Jul 2016 19:24:55 +0000 (22:24 +0300)]
libopenh264enc: Simplify init by setting FF_CODEC_CAP_INIT_CLEANUP

Also set FF_CODEC_CAP_INIT_THREADSAFE while adding internal capabilities.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agolibopenh264enc: Return a more sensible error code in some init failure paths
Martin Storsjö [Thu, 14 Jul 2016 19:21:50 +0000 (22:21 +0300)]
libopenh264enc: Return a more sensible error code in some init failure paths

Previously they returned the default AVERROR_UNKNOWN.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agolibopenh264dec: Simplify the init thanks to FF_CODEC_CAP_INIT_CLEANUP being set
Martin Storsjö [Thu, 14 Jul 2016 19:20:25 +0000 (22:20 +0300)]
libopenh264dec: Simplify the init thanks to FF_CODEC_CAP_INIT_CLEANUP being set

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agolibopenh264dec: Fix cleanup if the init failed early
Martin Storsjö [Thu, 14 Jul 2016 19:03:16 +0000 (22:03 +0300)]
libopenh264dec: Fix cleanup if the init failed early

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agomov: fix stream extradata_size allocation
Matthieu Bouron [Fri, 15 Jul 2016 08:00:34 +0000 (10:00 +0200)]
mov: fix stream extradata_size allocation

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agolavd: Drop unneeded av_init_packet()s
Vittorio Giovara [Wed, 13 Jul 2016 15:41:35 +0000 (11:41 -0400)]
lavd: Drop unneeded av_init_packet()s

The input packet is already unref'd by the calling function.

4 years agofate: Add a mixed NAL coding sample
Vittorio Giovara [Mon, 11 Jul 2016 20:36:20 +0000 (16:36 -0400)]
fate: Add a mixed NAL coding sample

See 17c99b6158f2c6720af74e81ee727ee50d2e7e96.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agofate: Restore order of h264 entries
Vittorio Giovara [Mon, 11 Jul 2016 20:36:19 +0000 (16:36 -0400)]
fate: Restore order of h264 entries

4 years agoh264: Log more information about invalid NALu size
Vittorio Giovara [Tue, 5 Jul 2016 20:22:08 +0000 (16:22 -0400)]
h264: Log more information about invalid NALu size

4 years agocheckasm/arm: preserve the stack alignment checkasm_checked_call
Janne Grunau [Tue, 12 Jul 2016 20:46:43 +0000 (22:46 +0200)]
checkasm/arm: preserve the stack alignment checkasm_checked_call

The stack used by checkasm_checked_call_vfp was a multiple of 4 when the
checked function is called. AAPCS requires a double word (8 byte)
aligned stack public interfaces. Since both calls are public interfaces
the stack is misaligned when the checked is called.

Might fix the SIGBUS error in the armv7-linux-clang-3.7 fate config.

4 years agocheckasm: vp8.mc: initialize the full src buffer after ec32574209f
Janne Grunau [Tue, 12 Jul 2016 19:31:57 +0000 (21:31 +0200)]
checkasm: vp8.mc: initialize the full src buffer after ec32574209f

Fixes "Use of uninitialised value" valgrind warnings in checkasm.

4 years agoh2645_parse: handle embedded Annex B NAL units in size prefixed NAL units
Janne Grunau [Thu, 7 Jul 2016 18:33:01 +0000 (20:33 +0200)]
h2645_parse: handle embedded Annex B NAL units in size prefixed NAL units

Fixes a regression in ca2f19b9cc3 with some mov/mp4 files. The files have
several NAL units in the supposed single NAL unit after the size field.
Annex B start code prefixes are used to separate them. The first NAL unit
is correctly parsed but the buffer does not point to the next size field.
Instead semi random data (it seems to be the rbsp_stop_one_bit and the
start code prefix) is then parsed as length and will exceed the
remaining length of the buffer.

Patch based on the code in h264's decode_nal_units() and a similar
patch by Hendrik Leppkes in FFmpeg (a9bb4cf87d1).

Bug-Id: ffmpeg/trac5529
Reported-By: Vittorio Giovara
4 years agoh264_ps: export actual height in MBs as SPS.mb_height
Anton Khirnov [Sat, 2 Jul 2016 14:48:26 +0000 (16:48 +0200)]
h264_ps: export actual height in MBs as SPS.mb_height

Currently, SPS.mb_height is actually what the spec calls
PicHeightInMapUnits, which is half the frame height when interlacing is
allowed. Calling this 'mb_height' is quite confusing, and there are at
least two associated bugs where this field is treated as the actual
frame height - in the h264 parser and in the code computing maximum
reordering buffer size for a given level.

Fix those issues (and avoid possible future ones) by exporting the real
frame height in this field.

4 years agod3d11va: don't keep the context lock while waiting for a frame
Steve Lhomme [Wed, 15 Jun 2016 07:25:19 +0000 (09:25 +0200)]
d3d11va: don't keep the context lock while waiting for a frame

also fixes a deadlock found by Денис Кулаков <kudesnik33ra@gmail.com>

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agovp8dsp: Remove the comment saying that the height is equal to the width
Martin Storsjö [Sun, 10 Jul 2016 10:19:24 +0000 (13:19 +0300)]
vp8dsp: Remove the comment saying that the height is equal to the width

This comment isn't true, the height can be different from the width
for these functions (which is why the height is passed as a parameter
to them).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agocheckasm/arm: align the clobber check data properly for ldrd
Janne Grunau [Sun, 10 Jul 2016 11:23:13 +0000 (13:23 +0200)]
checkasm/arm: align the clobber check data properly for ldrd

Should fix the SIGBUS in the armv7-linux-clang-3.7 fate target.

4 years agocheckasm: vp8: mc: test unequal width/height for partitions
Janne Grunau [Sat, 9 Jul 2016 22:32:12 +0000 (00:32 +0200)]
checkasm: vp8: mc: test unequal width/height for partitions

4 years agovp8/armv6: mc: avoid boolean expression in calculation
Janne Grunau [Sat, 9 Jul 2016 13:30:34 +0000 (15:30 +0200)]
vp8/armv6: mc: avoid boolean expression in calculation

GNU as evaluates true as '-1' while Apple's variant and llvm's internal
assembler evaluate it as '1'. The best way to avoid this madness is to
eliminate boolean expressions instead of trying to fix it with
preprocessor directives. Use a direct formula to calculate the
required temporary space on the stack in
ff_put_vp8_{epel,bilin}{4,8,16}_h[246]v[246]_armv6().

Fixes a checkasm segfault in vp8dsp.mc when using llvm's internal
assembler for a non-Apple target.

4 years agodoc: escape left brace in texi2pod.pl regex
Janne Grunau [Fri, 6 May 2016 11:32:06 +0000 (13:32 +0200)]
doc: escape left brace in texi2pod.pl regex

Unescaped literal left braces are deprecated and a warning was added in
Perl 5.22.

4 years agolibopenh264: Support building with the 1.6 release
Martin Storsjö [Fri, 8 Jul 2016 20:21:41 +0000 (23:21 +0300)]
libopenh264: Support building with the 1.6 release

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agomovenc: Add an option for skipping writing the mfra/tfra/mfro trailer
Martin Storsjö [Mon, 13 Jun 2016 20:47:15 +0000 (23:47 +0300)]
movenc: Add an option for skipping writing the mfra/tfra/mfro trailer

When writing a fragmented file, we by default write an index pointing
to all the fragments at the end of the file. This causes constantly
increasing memory usage during the muxing. For live streams, the
index might not be useful at all.

A similar fragment index is written (but at the start of the file) if
the global_sidx flag is set. If ism_lookahead is set, we need to keep
data about the last ism_lookahead+1 fragments.

If no fragment index is to be written, we don't need to store information
about all fragments, avoiding increasing the memory consumption
linearly with the muxing runtime.

This fixes out of memory situations with long live mp4 streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agocheckasm: Add tests for vp8dsp
Martin Storsjö [Mon, 13 Jun 2016 20:00:51 +0000 (23:00 +0300)]
checkasm: Add tests for vp8dsp

The tests are inspired by similar tests for vp9 by
Ronald Bultje.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoarm: Fix a typo in a comment
Martin Storsjö [Mon, 4 Jul 2016 11:41:45 +0000 (14:41 +0300)]
arm: Fix a typo in a comment

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agovp8dsp: Clarify the first dimension of the mc function tables
Martin Storsjö [Thu, 23 Jun 2016 11:31:14 +0000 (14:31 +0300)]
vp8dsp: Clarify the first dimension of the mc function tables

Index 0 is w=16, 1 is wd=8, 2 is wd=4.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoqsvdec: when a frames ctx is supplied, use its frame dimensions
Anton Khirnov [Wed, 22 Jun 2016 09:57:36 +0000 (11:57 +0200)]
qsvdec: when a frames ctx is supplied, use its frame dimensions

The allocated frame size may be larger than the coded dimensions.

4 years agoqsvdec: add support for P010 (10-bit 420) decoding
Anton Khirnov [Wed, 22 Jun 2016 09:53:00 +0000 (11:53 +0200)]
qsvdec: add support for P010 (10-bit 420) decoding

4 years agoqsvdec: use the same mfxFrameInfo for allocating frames that was passed to DECODE_Init
Anton Khirnov [Wed, 22 Jun 2016 09:44:09 +0000 (11:44 +0200)]
qsvdec: use the same mfxFrameInfo for allocating frames that was passed to DECODE_Init

Stop duplicating this information.

4 years agoqsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as well
Anton Khirnov [Wed, 22 Jun 2016 09:41:26 +0000 (11:41 +0200)]
qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as well

Stop hardcoding NV12.

Also, move this function to the shared code, it will be used by the
encoder as well.

4 years agohwcontext_qsv: add support for p010
Anton Khirnov [Wed, 22 Jun 2016 11:00:49 +0000 (13:00 +0200)]
hwcontext_qsv: add support for p010

4 years agomatroskadec: export CodecDelay
Anton Khirnov [Sat, 2 Jul 2016 07:55:19 +0000 (09:55 +0200)]
matroskadec: export CodecDelay

4 years agovf_scale_vaapi: Respect driver quirks around buffer destruction
Mark Thompson [Sun, 26 Jun 2016 21:35:49 +0000 (22:35 +0100)]
vf_scale_vaapi: Respect driver quirks around buffer destruction

4 years agovaapi_encode: Respect driver quirks around buffer destruction
Mark Thompson [Sun, 12 Jun 2016 16:28:28 +0000 (17:28 +0100)]
vaapi_encode: Respect driver quirks around buffer destruction

No longer leaks memory when used with a driver with the "render does
not destroy param buffers" quirk (i.e. Intel i965).