ffmpeg.git
22 months agolsws/rgb2rgb: Add unscaled 48bit to 64bit rgb conversion.
Carl Eugen Hoyos [Wed, 23 Aug 2017 12:19:14 +0000 (14:19 +0200)]
lsws/rgb2rgb: Add unscaled 48bit to 64bit rgb conversion.

Based on b4befca2 and 6b7849e6 by Paul B Mahol.

Fixes ticket #6608.

22 months agoffprobe: Fix NULL pointer handling in color parameter printing
Michael Niedermayer [Tue, 22 Aug 2017 15:27:17 +0000 (17:27 +0200)]
ffprobe: Fix NULL pointer handling in color parameter printing

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoffprobe: Fix null pointer dereference with color primaries
Michael Niedermayer [Tue, 22 Aug 2017 09:02:38 +0000 (11:02 +0200)]
ffprobe: Fix null pointer dereference with color primaries

Found-by: AD-lab of venustech
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/hevc_ps: Check delta_pocs in ff_hevc_decode_short_term_rps()
Michael Niedermayer [Sun, 20 Aug 2017 22:18:48 +0000 (00:18 +0200)]
avcodec/hevc_ps: Check delta_pocs in ff_hevc_decode_short_term_rps()

Fixes: integer overflow
Fixes: 2893/clusterfuzz-testcase-minimized-5809330567774208

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavformat/mov: Fix trampling of ctts during seeks when sidx support is enabled.
Dale Curtis [Tue, 18 Jul 2017 00:38:09 +0000 (17:38 -0700)]
avformat/mov: Fix trampling of ctts during seeks when sidx support is enabled.

When sidx box support is enabled, the code will skip reading all
trun boxes (each containing ctts entries for samples inthat box).

If seeks are attempted before all ctts values are known, the old
code would dump ctts entries into the wrong location. These are
then used to compute pts values which leads to out of order and
incorrectly timestamped packets.

This patch fixes ctts processing by always using the index returned
by av_add_index_entry() as the ctts_data index. When the index gains
new entries old values are reshuffled as appropriate.

This approach makes sense since the mov demuxer is already relying
on the mapping of AVIndex entries to samples for correct demuxing.

As a result of this all ctts entries are now 1-count. A followup
change will be submitted to remove support for > 1 count entries
which will simplify seeking.

Notes for future improvement:
Probably there are other boxes (stts, stsc, etc) that are impacted
by this issue... this patch only attempts to fix ctts since it
completely breaks packet timestamping.

This patch continues using an array for the ctts data, which is not
the most ideal given the rearrangement that needs to happen (via
memmove as new entries are read in). Ideally AVIndex and the ctts
data would be set-type structures so addition is always worst case
O(lg(n)) instead of the O(n^2) that exists now; this slowdown is
noticeable during seeks.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavformat/rtpdec_h264: Fix heap-buffer-overflow
Michael Niedermayer [Wed, 23 Aug 2017 19:30:37 +0000 (21:30 +0200)]
avformat/rtpdec_h264: Fix heap-buffer-overflow

Fixes: rtp_sdp/poc.sdp

Found-by: Bingchang <l.bing.chang.bc@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavformat/aviobuf: Fix signed integer overflow in avio_seek()
Vitaly Buka [Sun, 20 Aug 2017 18:56:47 +0000 (11:56 -0700)]
avformat/aviobuf: Fix signed integer overflow in avio_seek()

Signed integer overflow is undefined behavior.
Detected with clang and -fsanitize=signed-integer-overflow

Signed-off-by: Vitaly Buka <vitalybuka@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavformat/mov: Fix signed integer overflows with total_size
Vitaly Buka [Sun, 20 Aug 2017 18:56:47 +0000 (11:56 -0700)]
avformat/mov: Fix signed integer overflows with total_size

Signed integer overflow is undefined behavior.
Detected with clang and -fsanitize=signed-integer-overflow

Signed-off-by: Vitaly Buka <vitalybuka@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/utils: Fix signed integer overflow in rc_initial_buffer_occupancy initialization
Vitaly Buka [Sun, 20 Aug 2017 18:56:47 +0000 (11:56 -0700)]
avcodec/utils: Fix signed integer overflow in rc_initial_buffer_occupancy initialization

Signed integer overflow is undefined behavior.
Detected with clang and -fsanitize=signed-integer-overflow

Signed-off-by: Vitaly Buka <vitalybuka@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agolibavdevice/decklink: configurablity to set max queue size
Ravindra [Thu, 10 Aug 2017 06:29:30 +0000 (11:59 +0530)]
libavdevice/decklink: configurablity to set max queue size

Signed-off-by: Ravindra Patagar <rpatagar@akamai.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoavcodec/aacdec_template: Fix running cleanup in decode_ics_info()
Michael Niedermayer [Mon, 21 Aug 2017 00:15:49 +0000 (02:15 +0200)]
avcodec/aacdec_template: Fix running cleanup in decode_ics_info()

Fixes: out of array read
Fixes: 2873/clusterfuzz-testcase-minimized-5924145713905664

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Previous version reviewed-by: Alex Converse <alex.converse@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/pngdec: Fix () placement
Michael Niedermayer [Tue, 22 Aug 2017 16:36:26 +0000 (18:36 +0200)]
avcodec/pngdec: Fix () placement

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavfilter/vf_pseudocolor: add high bitdepth support
Paul B Mahol [Mon, 21 Aug 2017 13:32:32 +0000 (15:32 +0200)]
avfilter/vf_pseudocolor: add high bitdepth support

22 months agovp9: set color range to MPEG for intraonly profile 0
James Zern [Fri, 18 Aug 2017 23:37:02 +0000 (16:37 -0700)]
vp9: set color range to MPEG for intraonly profile 0

this is undocumented in the vp9 bitstream and decoding specification
doc, but matches libvpx

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
22 months agoavformat/hlsenc: move free fmp4_init_filename after hls_window operation
Steven Liu [Tue, 22 Aug 2017 02:21:42 +0000 (10:21 +0800)]
avformat/hlsenc: move free fmp4_init_filename after hls_window operation

fix ticket id: 6599

Signed-off-by: Steven Liu <lq@onvideo.cn>
22 months agoavcodec/me_cmp: Fix crashes on ARM due to misalignment
Michael Niedermayer [Sat, 19 Aug 2017 21:38:58 +0000 (23:38 +0200)]
avcodec/me_cmp: Fix crashes on ARM due to misalignment

Adds a diff_pixels_unaligned()

Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872503

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agolavc/g726: Add a little-endian G.726 encoder.
Carl Eugen Hoyos [Fri, 18 Aug 2017 18:57:54 +0000 (20:57 +0200)]
lavc/g726: Add a little-endian G.726 encoder.

Fixes ticket #6596.

22 months agoavcodec/pixlet: Fixes: undefined shift in av_mod_uintp2()
Michael Niedermayer [Fri, 18 Aug 2017 14:42:59 +0000 (16:42 +0200)]
avcodec/pixlet: Fixes: undefined shift in av_mod_uintp2()

Fixes: runtime error: shift exponent 4294967289 is too large for 32-bit type 'int'
Fixes: 3030/clusterfuzz-testcase-minimized-4649809254285312

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/dirac_dwt_template: Fix integer overflow in vertical_compose53iL0()
Michael Niedermayer [Fri, 18 Aug 2017 14:42:58 +0000 (16:42 +0200)]
avcodec/dirac_dwt_template: Fix integer overflow in vertical_compose53iL0()

Fixes: runtime error: signed integer overflow: 2147483646 + 2 cannot be represented in type 'int'
Fixes: 3013/clusterfuzz-testcase-minimized-4644084197097472

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavfilter/vf_pseudocolor: add support for some subsampled formats
Paul B Mahol [Sun, 20 Aug 2017 16:12:15 +0000 (18:12 +0200)]
avfilter/vf_pseudocolor: add support for some subsampled formats

22 months agodoc/encoders: add "coder" option documentation for h264_vaapi
Jun Zhao [Wed, 16 Aug 2017 01:49:08 +0000 (21:49 -0400)]
doc/encoders: add "coder" option documentation for h264_vaapi

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
22 months agolavc/vaapi_encode_h264: add "coder" option support
Jun Zhao [Tue, 8 Aug 2017 07:33:53 +0000 (03:33 -0400)]
lavc/vaapi_encode_h264: add "coder" option support

Follow libx264 style to support "coder" option, and set it to
cabac by default.

Signed-off-by: Yi A Wang <yi.a.wang@intel.com>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
22 months agovaapi_encode: Move quality option to common code
Mark Thompson [Sun, 30 Apr 2017 18:27:54 +0000 (19:27 +0100)]
vaapi_encode: Move quality option to common code

Use AVCodecContext.compression_level rather than a private option,
replacing the H.264-specific quality option (which stays only for
compatibility).

This now works with the H.265 encoder in the i965 driver, as well as
the existing cases with the H.264 encoder.

(cherry picked from commit 19388a7200e5d99c703271f05dba1c806720e808)

22 months agolavf/bink: fix latest header and add all existing revisions
bnnm [Fri, 18 Aug 2017 17:45:16 +0000 (19:45 +0200)]
lavf/bink: fix latest header and add all existing revisions

KB2 'i' found in Life is Strange (Xbox 360), rest verified against binkconv.exe

Signed-off-by: bnnm <bananaman255@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/cngdec: Check skip_samples
Michael Niedermayer [Thu, 17 Aug 2017 21:40:45 +0000 (23:40 +0200)]
avcodec/cngdec: Check skip_samples

Without this its possible to make the new decode API decode billions of samples
out of a empty input and never return to the caller before all samples have been
created and discarded.

Fixes: Timeout
Fixes: 2992/clusterfuzz-testcase-6649611793989632

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/fic: Fixes signed integer overflow
Michael Niedermayer [Thu, 17 Aug 2017 16:24:37 +0000 (18:24 +0200)]
avcodec/fic: Fixes signed integer overflow

Fixes: runtime error: signed integer overflow: 1037142357 + 1227025305 cannot be represented in type 'int'
Fixes: 3024/clusterfuzz-testcase-minimized-5885660323905536

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/snowdec: Fix off by 1 error
Michael Niedermayer [Thu, 17 Aug 2017 18:32:03 +0000 (20:32 +0200)]
avcodec/snowdec: Fix off by 1 error

Fixes: runtime error: index 4 out of bounds for type 'int8_t [4]'
Fixes: 3023/clusterfuzz-testcase-minimized-6421736130084864

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoopus_pvq_search: Restore the proper use of conditional define and simplify the functi...
Ivan Kalvachev [Sat, 19 Aug 2017 11:29:40 +0000 (14:29 +0300)]
opus_pvq_search: Restore the proper use of conditional define and simplify the function name suffix handling.

Using named define properly documents the code paths.
It also avoids passing additional numbered arguments through
multiple levels of macro templates.

The suffix handling is done by concatenation, like in
other asm functions and avoid having two separate
"cglobal" defines.

Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
22 months agoavutil/eval: add linear interpolation helper
Paul B Mahol [Fri, 18 Aug 2017 07:15:33 +0000 (09:15 +0200)]
avutil/eval: add linear interpolation helper

22 months agoavfilter: add pseudocolor filter
Paul B Mahol [Thu, 17 Aug 2017 16:01:01 +0000 (18:01 +0200)]
avfilter: add pseudocolor filter

22 months agoopus_pvq_search: split functions into exactness and only use the exact if its faster
Rostislav Pehlivanov [Fri, 18 Aug 2017 18:29:33 +0000 (19:29 +0100)]
opus_pvq_search: split functions into exactness and only use the exact if its faster

This splits the asm function into exact and non-exact version. The exact
version is as fast or faster on newer CPUs (which EXTERNAL_AVX_FAST describes
well) whilst the non-exact version is faster than the exact on older CPUs.

Also fixes yasm compilation which doesn't accept !cpuflags(avx) syntax.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
22 months agolavd/libdc1394: Do not crash if dc1394_camera_new() fails.
Carl Eugen Hoyos [Fri, 18 Aug 2017 17:20:15 +0000 (19:20 +0200)]
lavd/libdc1394: Do not crash if dc1394_camera_new() fails.

Fixes Ubuntu bug 1710849

22 months agoopus_pvq_search: only use rsqrtps approximation on CPUs with avx
Rostislav Pehlivanov [Fri, 18 Aug 2017 16:28:40 +0000 (17:28 +0100)]
opus_pvq_search: only use rsqrtps approximation on CPUs with avx

Makes the search produce idential results with the C version.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
22 months agoops_pvq_search: remove dead macro
Rostislav Pehlivanov [Fri, 18 Aug 2017 16:27:41 +0000 (17:27 +0100)]
ops_pvq_search: remove dead macro

There's no point in toggling it, even for debugging. Its just worse.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
22 months agoSIMD opus pvq_search implementation
Ivan Kalvachev [Thu, 8 Jun 2017 19:24:33 +0000 (22:24 +0300)]
SIMD opus pvq_search implementation

Explanation on the workings and methods used by the
Pyramid Vector Quantization Search function
could be found in the following Work-In-Progress mail threads:
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/212146.html
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-June/212816.html
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-July/213030.html
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-July/213436.html

Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
22 months agoAdd macros to x86util.asm .
Ivan Kalvachev [Sat, 5 Aug 2017 17:18:50 +0000 (20:18 +0300)]
Add macros to x86util.asm .

Improved version of VBROADCASTSS that works like the avx2 instruction.
Emulation of vpbroadcastd.
Horizontal sum HSUMPS that places the result in all elements.
Emulation of blendvps and pblendvb.

Signed-off-by: Ivan Kalvachev <ikalvachev@gmail.com>
22 months agoavcodec/pixlet: fixes integer overflow in read_highpass()
Michael Niedermayer [Thu, 17 Aug 2017 01:54:56 +0000 (03:54 +0200)]
avcodec/pixlet: fixes integer overflow in read_highpass()

Fixes: runtime error: negation of -2147483648 cannot be represented in type 'int32_t' (aka 'int'); cast to an unsigned type to negate this value to itself
Fixes: 2879/clusterfuzz-testcase-minimized-6317542639403008

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/ffv1dec: Check for bitstream end in decode_line()
Michael Niedermayer [Sun, 13 Aug 2017 22:15:55 +0000 (00:15 +0200)]
avcodec/ffv1dec: Check for bitstream end in decode_line()

Fixes: timeout
Fixes: 2971/clusterfuzz-testcase-6130678276030464

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/rangecoder: Do not increase the pointer beyond the buffer
Michael Niedermayer [Sun, 13 Aug 2017 22:15:54 +0000 (00:15 +0200)]
avcodec/rangecoder: Do not increase the pointer beyond the buffer

Fixes: undefined behavior

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agolibavformat/mov: Fix inserting frames before current_frame.
Jacob Trimble [Thu, 27 Jul 2017 17:34:32 +0000 (10:34 -0700)]
libavformat/mov: Fix inserting frames before current_frame.

When using streaming input, it may be possible to see frames that appear
before the current_frame.  When these frames are inserted into the
index, the current_frame needs to be updated so it is still pointing
at the same frame.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoffprobe: fix use of uninitialized variable
Zhao Zhili [Thu, 17 Aug 2017 02:24:01 +0000 (10:24 +0800)]
ffprobe: fix use of uninitialized variable

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agofilters.texi: clarify audio upsampling in loudnorm
Kyle Swanson [Thu, 17 Aug 2017 21:01:42 +0000 (14:01 -0700)]
filters.texi: clarify audio upsampling in loudnorm

Signed-off-by: Kyle Swanson <k@ylo.ph>
22 months agofilters.texi: explain audio upsampling in loudnorm
Werner Robitza [Wed, 16 Aug 2017 11:27:19 +0000 (13:27 +0200)]
filters.texi: explain audio upsampling in loudnorm

Explain that audio will be upsampled to 192 kHz. Addresses issues mentioned in
issue 6570.

Signed-off-by: Werner Robitza <werner.robitza@gmail.com>
22 months agoavformat/utils: always av_reduce r_frame_rate
Marton Balint [Wed, 16 Aug 2017 22:20:01 +0000 (00:20 +0200)]
avformat/utils: always av_reduce r_frame_rate

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoavcodec/zmbv: Check decomp_size
Michael Niedermayer [Wed, 16 Aug 2017 14:03:23 +0000 (16:03 +0200)]
avcodec/zmbv: Check decomp_size

Fixes: OOM
Fixes: 2710/clusterfuzz-testcase-minimized-4750001420894208

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/dnxhdenc: call slice thread code only if slice threading is enabled
Paul B Mahol [Thu, 17 Aug 2017 09:42:16 +0000 (11:42 +0200)]
avcodec/dnxhdenc: call slice thread code only if slice threading is enabled

22 months agoavcodec/diracdec: Fixes integer overflow
Michael Niedermayer [Tue, 15 Aug 2017 01:32:44 +0000 (03:32 +0200)]
avcodec/diracdec: Fixes integer overflow

Fixes: runtime error: signed integer overflow: 340018243 * 27 cannot be represented in type 'int'
Fixes: 2861/clusterfuzz-testcase-minimized-5361070510178304

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/diracdec: Check perspective_exp and zrs_exp.
Michael Niedermayer [Tue, 15 Aug 2017 01:32:43 +0000 (03:32 +0200)]
avcodec/diracdec: Check perspective_exp and zrs_exp.

Fixes: undefined shift
Fixes: runtime error: shift exponent 264 is too large for 32-bit type 'int'
Fixes: 2860/clusterfuzz-testcase-minimized-4672811689836544

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agofate: add overlay filter tests with alpha
Marton Balint [Thu, 10 Aug 2017 23:10:19 +0000 (01:10 +0200)]
fate: add overlay filter tests with alpha

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoavfilter/vf_weave: fix top vs bottom field order
Paul B Mahol [Wed, 16 Aug 2017 11:29:34 +0000 (13:29 +0200)]
avfilter/vf_weave: fix top vs bottom field order

Fixes #6590.

22 months agoavfilter/vf_transpose: rewrite for x86 SIMD
Paul B Mahol [Tue, 15 Aug 2017 18:12:32 +0000 (20:12 +0200)]
avfilter/vf_transpose: rewrite for x86 SIMD

Transpose first in chunks of 8x8 blocks.
15% faster overall.

22 months agoencoders.texi: Replace x264 --full-help suggestion with --fullhelp
Leo Izen [Thu, 10 Aug 2017 16:40:23 +0000 (12:40 -0400)]
encoders.texi: Replace x264 --full-help suggestion with --fullhelp

Reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavformat/mov: Fix memory leak when reading DDTS box.
Nikolas Bowe [Tue, 15 Aug 2017 19:08:44 +0000 (12:08 -0700)]
avformat/mov: Fix memory leak when reading DDTS box.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoswresample/resample: Fix flush refelction length
Michael Niedermayer [Tue, 15 Aug 2017 12:58:25 +0000 (14:58 +0200)]
swresample/resample: Fix flush refelction length

Reviewed-by: atomnuker
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoAdd tonemap filter
Vittorio Giovara [Mon, 10 Jul 2017 14:34:30 +0000 (10:34 -0400)]
Add tonemap filter

Based off mpv automatic tonemapping capabilities.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
22 months agozscale: Enable single precision input/ouput filtering
Vittorio Giovara [Mon, 10 Jul 2017 15:21:30 +0000 (11:21 -0400)]
zscale: Enable single precision input/ouput filtering

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
22 months agoAdd single precision planar RGB pixel formats
Vittorio Giovara [Fri, 7 Jul 2017 21:42:57 +0000 (17:42 -0400)]
Add single precision planar RGB pixel formats

Add a pixel format flag to identify this family.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
22 months agoavfilter/vf_datascope: make it possible to change pixscope window position
Paul B Mahol [Tue, 15 Aug 2017 11:54:19 +0000 (13:54 +0200)]
avfilter/vf_datascope: make it possible to change pixscope window position

22 months agoavcodec/cavsdec: Check P/B frame mb decode which return error codes
Michael Niedermayer [Sun, 13 Aug 2017 16:44:25 +0000 (18:44 +0200)]
avcodec/cavsdec: Check P/B frame mb decode which return error codes

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/cavsdec: Check I frame mb decode for errors
Michael Niedermayer [Sun, 13 Aug 2017 16:42:45 +0000 (18:42 +0200)]
avcodec/cavsdec: Check I frame mb decode for errors

Fixes: timeout
Fixes: 2943/clusterfuzz-testcase-5430257156882432

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavfilter/scale_npp: fix logic used in previous patch
Timo Rothenpieler [Mon, 14 Aug 2017 14:03:11 +0000 (16:03 +0200)]
avfilter/scale_npp: fix logic used in previous patch

22 months agoavfilter/scale_npp: check for buffer allocation failure
Timo Rothenpieler [Mon, 14 Aug 2017 12:15:25 +0000 (14:15 +0200)]
avfilter/scale_npp: check for buffer allocation failure

I totally did not forget to amend this to the previous patch...

22 months agoavfilter/scale_npp: fix passthrough mode
Yogender Gupta [Mon, 14 Aug 2017 10:41:32 +0000 (16:11 +0530)]
avfilter/scale_npp: fix passthrough mode

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
22 months agoavcodec/lagarith: Detect end of input in lag_decode_line() loop
Michael Niedermayer [Fri, 11 Aug 2017 19:47:31 +0000 (21:47 +0200)]
avcodec/lagarith: Detect end of input in lag_decode_line() loop

Fixes: timeout
Fixes: 2933/clusterfuzz-testcase-5124990208835584

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/gdv: Check available space before reading palette
Michael Niedermayer [Fri, 11 Aug 2017 17:27:02 +0000 (19:27 +0200)]
avcodec/gdv: Check available space before reading palette

Fixes: Timeout
Fixes: 2926/clusterfuzz-testcase-498711001458278

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/ffv1dec_template: Fix undefined shift
Michael Niedermayer [Fri, 11 Aug 2017 16:20:03 +0000 (18:20 +0200)]
avcodec/ffv1dec_template: Fix undefined shift

Fixes: runtime error: left shift of negative value -127
Fixes: 2834/clusterfuzz-testcase-minimized-5988039123795968

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/mpeg4videodec: Clear mcsel before decoding an image
Michael Niedermayer [Sun, 6 Aug 2017 11:32:54 +0000 (13:32 +0200)]
avcodec/mpeg4videodec: Clear mcsel before decoding an image

Fixes: runtime error: signed integer overflow: 2146467840 + 1032192 cannot be represented in type 'int'
Fixes: 2826/clusterfuzz-testcase-minimized-5901511613743104

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavformat/avidec: Move packet skip after prefix and related checks
Michael Niedermayer [Tue, 8 Aug 2017 00:17:16 +0000 (02:17 +0200)]
avformat/avidec: Move packet skip after prefix and related checks

This fixes loosing packets
Fixes: big.avi

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/tests/dct: Add Mean square error test
Michael Niedermayer [Sun, 9 Jul 2017 01:10:51 +0000 (03:10 +0200)]
avcodec/tests/dct: Add Mean square error test

based on quotes of IEEE 1180 / ISO/IEC 23002-1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/tests/dct: Add peak mean error check
Michael Niedermayer [Sun, 9 Jul 2017 01:10:51 +0000 (03:10 +0200)]
avcodec/tests/dct: Add peak mean error check

based on quotes of IEEE 1180 / ISO/IEC 23002-1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/mjpegenc: cosmetic changes
Davinder Singh [Thu, 10 Aug 2017 01:40:36 +0000 (07:10 +0530)]
avcodec/mjpegenc: cosmetic changes

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/mjpegenc: disable unused code with AMV
Davinder Singh [Thu, 10 Aug 2017 01:38:34 +0000 (07:08 +0530)]
avcodec/mjpegenc: disable unused code with AMV

disable unused amv_encode_picture() when AMV encoder is not configured.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavfilter/vf_overlay: fix alpha blending for planar formats with a transparent background
Marton Balint [Wed, 2 Aug 2017 23:48:06 +0000 (01:48 +0200)]
avfilter/vf_overlay: fix alpha blending for planar formats with a transparent background

When the background had an alpha channel, the old code in blend_plane
calculated premultiplied alpha from the destination plane colors instead of the
destination alpha.

Also the calculation of the output alpha should only happen after the color
planes are already finished.

Fixes output of:
ffplay -f lavfi "testsrc2=alpha=32[a];color=black[b];[b][a]overlay[out0]"

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoffplay: add support for more SDL pixel formats when rendering video
Marton Balint [Sun, 6 Aug 2017 12:22:20 +0000 (14:22 +0200)]
ffplay: add support for more SDL pixel formats when rendering video

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoffplay: add support for displaying rgb images with alpha
Marton Balint [Sat, 5 Aug 2017 20:54:18 +0000 (22:54 +0200)]
ffplay: add support for displaying rgb images with alpha

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoffplay: add support for rendering yuv images with negative line size
Marton Balint [Sat, 5 Aug 2017 20:15:10 +0000 (22:15 +0200)]
ffplay: add support for rendering yuv images with negative line size

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agopixfmt: Support chroma-derived and ictcp color matrices
Vittorio Giovara [Tue, 8 Aug 2017 14:30:32 +0000 (16:30 +0200)]
pixfmt: Support chroma-derived and ictcp color matrices

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
22 months agoh264: Add support for alternative transfer characterics SEI
Vittorio Giovara [Fri, 9 Jun 2017 21:27:22 +0000 (17:27 -0400)]
h264: Add support for alternative transfer characterics SEI

The use of this SEI is for backward compatibility in HLG HDR systems:
older devices that cannot interpret the "arib-std-b67" transfer will
get the compatible transfer (usually bt709 or bt2020) from the VUI,
while newer devices that can interpret HDR will read the SEI and use
its value instead.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
22 months agod3d11va: Check WINAPI_FAMILY instead of HAVE_LOADLIBRARY
Martin Storsjö [Tue, 4 Jul 2017 17:03:00 +0000 (20:03 +0300)]
d3d11va: Check WINAPI_FAMILY instead of HAVE_LOADLIBRARY

If using the winstore compat library, a fallback LoadLibrary
function does exist, that only calls LoadPackagedLibrary though
(which doesn't work for dynamically loading d3d11 DLLs).

Therefore explicitly check the targeted API family instead.

Make this check a reusable HAVE_* component which other parts
of the libraries can check when necessary as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
Merged from Libav commit 4d330da006fe48178.

22 months agoavformat/movenc: reindent after the previous commit
James Almer [Thu, 10 Aug 2017 02:15:38 +0000 (23:15 -0300)]
avformat/movenc: reindent after the previous commit

22 months agolavf/movenc.c: Set sgpd and sbgp atoms to represent decoder delay for AAC.
Sasi Inguva [Wed, 9 Aug 2017 00:00:19 +0000 (17:00 -0700)]
lavf/movenc.c: Set sgpd and sbgp atoms to represent decoder delay for AAC.

According to https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFAppenG/QTFFAppenG.html and ISO-IEC-14496-12 Section 10.1.1.1 and 10.1.1.3

Signed-off-by: Sasi Inguva <isasi@google.com>
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/aacdec: Fix PCE channel_layout verification
Nicolas Sugino [Wed, 26 Jul 2017 18:29:02 +0000 (15:29 -0300)]
avcodec/aacdec: Fix PCE channel_layout verification

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavfilter/dynaudnorm: increment input outside of the FFMIN macro so it doesn't get...
Andy [Tue, 8 Aug 2017 22:42:21 +0000 (22:42 +0000)]
avfilter/dynaudnorm: increment input outside of the FFMIN macro so it doesn't get double incremented

22 months agoavcodec/dvenc: Change quantizer dead zone default to 7
Michael Niedermayer [Sun, 6 Aug 2017 23:20:56 +0000 (01:20 +0200)]
avcodec/dvenc: Change quantizer dead zone default to 7

This improves the quality and reduces the "blocking" in flat areas

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/dvenc: Support adjusting the quantizer deadzone
Michael Niedermayer [Sun, 6 Aug 2017 23:20:55 +0000 (01:20 +0200)]
avcodec/dvenc: Support adjusting the quantizer deadzone

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/dirac_dwt: Fixes integer overflows in COMPOSE_DAUB97*
Michael Niedermayer [Sun, 6 Aug 2017 03:01:45 +0000 (05:01 +0200)]
avcodec/dirac_dwt: Fixes integer overflows in COMPOSE_DAUB97*

Fix multiple: runtime error: signed integer overflow: 6497 * 3409630 cannot be represented in type 'int'
Fixes: 2819/clusterfuzz-testcase-minimized-4743700301217792

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavfilter/vf_separatefields: stop leaking last frame
Paul B Mahol [Tue, 8 Aug 2017 16:45:32 +0000 (18:45 +0200)]
avfilter/vf_separatefields: stop leaking last frame

This can happen when filtering is ended without receiving EOF.

22 months agoimgutils: add function to clear an image to black
wm4 [Sat, 22 Jul 2017 21:05:14 +0000 (23:05 +0200)]
imgutils: add function to clear an image to black

Black isn't always just memset(ptr, 0, size). Limited YUV in particular
requires relatively non-obvious values, and filling a frame with
repeating 0 bytes is disallowed in some contexts. With component sizes
larger than 8 or packed YUV, this can become relatively complicated. So
having a generic function for this seems helpful.

In order to handle the complex cases in a generic way without destroying
performance, this code attempts to compute a black pixel, and then uses
that value to clear the image data quickly by using a function like
memset.

Common cases like yuv410p10 or rgba can't be handled with a simple
memset, so there is some code to fill memory with 2/4/8 byte patterns.
For the remaining cases, a generic slow fallback is used.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
Merged from Libav commit 45df7adc1d9b7.

22 months agolavc, lavu: move frame cropping to a convenience function
wm4 [Sat, 22 Jul 2017 21:05:13 +0000 (23:05 +0200)]
lavc, lavu: move frame cropping to a convenience function

Signed-off-by: Anton Khirnov <anton@khirnov.net>
Merged from Libav commit 47399ccdfd.

22 months agofate: update ref files for gray pixel formats changes
James Almer [Tue, 8 Aug 2017 04:34:18 +0000 (01:34 -0300)]
fate: update ref files for gray pixel formats changes

22 months agoavfilter/drawutils: add gray9/10/12 support
Paul B Mahol [Mon, 7 Aug 2017 16:39:29 +0000 (18:39 +0200)]
avfilter/drawutils: add gray9/10/12 support

22 months agoavfilter/vf_premultiply: add inplace mode
Paul B Mahol [Fri, 4 Aug 2017 20:28:53 +0000 (22:28 +0200)]
avfilter/vf_premultiply: add inplace mode

22 months agoavfilter: add support for GRAY9 and GBRAP10
Paul B Mahol [Mon, 7 Aug 2017 09:52:18 +0000 (11:52 +0200)]
avfilter: add support for GRAY9 and GBRAP10

22 months agoavfilter/vf_waveform: add support for 9 bit depth lowpass
Paul B Mahol [Mon, 7 Aug 2017 08:34:34 +0000 (10:34 +0200)]
avfilter/vf_waveform: add support for 9 bit depth lowpass

22 months agoavfilter/vf_extractplanes: add 9 bitdepth support
Paul B Mahol [Sat, 5 Aug 2017 13:18:12 +0000 (15:18 +0200)]
avfilter/vf_extractplanes: add 9 bitdepth support

22 months agolibswscale: add gray9 support
Paul B Mahol [Sat, 5 Aug 2017 12:28:45 +0000 (14:28 +0200)]
libswscale: add gray9 support

22 months agolibavutil: add GRAY9 pixel format
Paul B Mahol [Sat, 5 Aug 2017 12:19:26 +0000 (14:19 +0200)]
libavutil: add GRAY9 pixel format

22 months agoavfilter/drawutils: support gbrap10 too
Paul B Mahol [Mon, 7 Aug 2017 10:50:13 +0000 (12:50 +0200)]
avfilter/drawutils: support gbrap10 too

22 months agoavformat/hlsenc: allow dynamic encryption key rotation
DeHackEd [Sun, 6 Aug 2017 07:10:35 +0000 (15:10 +0800)]
avformat/hlsenc: allow dynamic encryption key rotation

Makes behaviour of 805ce25b1d2f optional, re-enables
HLS key rotation feature

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: DHE <git@dehacked.net>
22 months agoavcodec/aacdec_fixed: fix invalid shift in predict()
Michael Niedermayer [Fri, 4 Aug 2017 01:26:30 +0000 (03:26 +0200)]
avcodec/aacdec_fixed: fix invalid shift in predict()

Fixes: runtime error: shift exponent -2 is negative
Fixes: 2818/clusterfuzz-testcase-minimized-5062943676825600

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>