]> git.sesse.net Git - ffmpeg/log
ffmpeg
7 years agobuild: Allow generating dependencies as a side-effect of assembling
Diego Biurrun [Thu, 13 Oct 2016 00:45:09 +0000 (00:45 +0000)]
build: Allow generating dependencies as a side-effect of assembling

(Cherry-picked from libav commit 3c0efbd03349ae68d3a25a082222652a102e3fd4)

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agobuild: Generalize yasm/nasm-related variable names
Diego Biurrun [Sat, 8 Oct 2016 14:18:33 +0000 (14:18 +0000)]
build: Generalize yasm/nasm-related variable names

None of them are specific to the YASM assembler.

(Cherry-picked from libav commit 39e208f4d4756367c7cd2d581847e0c1b8a429c1)

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavfilter/af_stereotools: add forgotten break
Paul B Mahol [Wed, 21 Jun 2017 17:20:25 +0000 (19:20 +0200)]
avfilter/af_stereotools: add forgotten break

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agomdec: stop preferring the simple IDCT.
Ronald S. Bultje [Wed, 21 Jun 2017 13:01:20 +0000 (09:01 -0400)]
mdec: stop preferring the simple IDCT.

This was added in e3e3c82555e2382125195c1ba9f34b5a43299abc, probably
as a workaround for the fact that the quant table was not permutated
and the IDCT coefficients are, meaning that you'd only get correct
reconstruction if the IDCT permutation was an identity matrix, which
happens to be the case when you use the simple IDCT. The quant table
permutation bug was fixed in 42dd1434bf6a7230e4175c08fcfabc3ba51a0463,
meaning this workaround is no longer necessary.

In practical terms, before 42dd1434bf6a7230e4175c08fcfabc3ba51a0463,
the PSNR between decodes of the fate-mdec using simple (C) or simplemmx
IDCTs was 35. After 42dd1434bf6a7230e4175c08fcfabc3ba51a0463, it's 90.

7 years agomdec: use correctly permutated quant matrix for dequantization.
Ronald S. Bultje [Wed, 21 Jun 2017 12:53:43 +0000 (08:53 -0400)]
mdec: use correctly permutated quant matrix for dequantization.

7 years agoaarch64: vp9 16bpp: Fix assembling with Xcode 6.2 and older
Memphiz [Sun, 18 Jun 2017 10:29:38 +0000 (12:29 +0200)]
aarch64: vp9 16bpp: Fix assembling with Xcode 6.2 and older

Properly use the b.eq form instead of the nonstandard form (which
both gas and newer clang accept though), and expand the register
lists that used a range (which the Xcode 6.2 clang, based on clang
3.5 svn, didn't support).

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoaarch64: vp9: Fix assembling with Xcode 6.2 and older
Memphiz [Sun, 18 Jun 2017 10:30:16 +0000 (12:30 +0200)]
aarch64: vp9: Fix assembling with Xcode 6.2 and older

Properly use the b.eq/b.ge forms instead of the nonstandard forms
(which both gas and newer clang accept though), and expand the
register list that used a range (which the Xcode 6.2 clang, based
on clang 3.5 svn, didn't support).

This is cherrypicked from libav commit
a970f9de865c84ed5360dd0398baee7d48d04620.

Signed-off-by: Martin Storsjö <martin@martin.st>
7 years agoavcodec/mpegvideo: Use intra_scantable in dct_unquantize_h263_intra_c()
Michael Niedermayer [Mon, 19 Jun 2017 22:37:40 +0000 (00:37 +0200)]
avcodec/mpegvideo: Use intra_scantable in dct_unquantize_h263_intra_c()

Reviewed-by: James Darnley <jdarnley@obe.tv>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/hevc_filter: Fix invalid shift
Michael Niedermayer [Tue, 20 Jun 2017 12:38:34 +0000 (14:38 +0200)]
avcodec/hevc_filter: Fix invalid shift

Fixes: runtime error: left shift of negative value -1
Fixes: 2299/clusterfuzz-testcase-minimized-4843509351710720
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/hevcdec: Check beta and tc offset in hls_slice_header()
Michael Niedermayer [Tue, 20 Jun 2017 12:32:50 +0000 (14:32 +0200)]
avcodec/hevcdec: Check beta and tc offset in hls_slice_header()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/mpeg4videodec: Fix overflow in virtual_ref computation
Michael Niedermayer [Tue, 20 Jun 2017 11:52:06 +0000 (13:52 +0200)]
avcodec/mpeg4videodec: Fix overflow in virtual_ref computation

Fixes: runtime error: signed integer overflow: 262144 * -16120 cannot be represented in type 'int'
Fixes: 2292/clusterfuzz-testcase-minimized-6156080415506432
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/lpc: signed integer overflow in compute_lpc_coefs() (aacdec_fixed)
Michael Niedermayer [Wed, 14 Jun 2017 23:35:49 +0000 (01:35 +0200)]
avcodec/lpc: signed integer overflow in compute_lpc_coefs() (aacdec_fixed)

Fixes: runtime error: signed integer overflow: -1575818955 + -915383657 cannot be represented in type 'int'
Fixes: 2224/clusterfuzz-testcase-minimized-6208559949807616
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoconfigure: Move up the avbuild directory creation
Luca Barbato [Fri, 10 Feb 2017 19:31:34 +0000 (19:31 +0000)]
configure: Move up the avbuild directory creation

The early check for inconsistent in-source vs out-of-source build
cannot generate a config.log otherwise.

(Cherry-picked from libav commit 0ee78020cd41d81eec651acd7fc65906207796f3)
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavcodec/decode: Update decode_simple_internal() to get the side data correctly.
John Rummell [Wed, 14 Jun 2017 21:43:04 +0000 (14:43 -0700)]
avcodec/decode: Update decode_simple_internal() to get the side data correctly.

Use avci->last_pkt_props to get the side data. Using |pkt| doesn't work
when FF_API_MERGE_SD is set, as the compressed side data is expanded into
|tmp|, leaving the original |pkt| unchanged.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavcodec/x86: allow future 8-bit simple idct to use slightly different coefficients
James Darnley [Mon, 12 Jun 2017 11:32:57 +0000 (12:32 +0100)]
avcodec/x86: allow future 8-bit simple idct to use slightly different coefficients

7 years agoavcodec/mdec: override IDCT choice before initing DSP structs
James Darnley [Sat, 17 Jun 2017 01:13:36 +0000 (03:13 +0200)]
avcodec/mdec: override IDCT choice before initing DSP structs

7 years agoavcodec/x86: modify simple_idct10 macros to add an action paramter
James Darnley [Mon, 12 Jun 2017 10:01:21 +0000 (12:01 +0200)]
avcodec/x86: modify simple_idct10 macros to add an action paramter

7 years agoavcodec/x86: cleanup simple_idct10
James Darnley [Thu, 1 Jun 2017 13:28:29 +0000 (15:28 +0200)]
avcodec/x86: cleanup simple_idct10

Use named arguments for the functions so we can remove a define.  The
stride/linesize argument is now ptrdiff_t type so we no longer need to
sign extend the register.

7 years agoavcodec/x86/mpegenc: support transpose permuation type
James Darnley [Fri, 16 Jun 2017 13:36:16 +0000 (15:36 +0200)]
avcodec/x86/mpegenc: support transpose permuation type

7 years agoavcodec/x86/mpegenc: check IDCT permutation type is a valid value
James Darnley [Fri, 16 Jun 2017 12:53:15 +0000 (14:53 +0200)]
avcodec/x86/mpegenc: check IDCT permutation type is a valid value

7 years agobuild: Add missing idctdsp dependency for clearvideo
Diego Biurrun [Wed, 7 Jun 2017 10:48:00 +0000 (12:48 +0200)]
build: Add missing idctdsp dependency for clearvideo

(cherry picked from commit 2f792cb6703b5b12f2e873bee13f33da8aa9940a)

7 years agoffmpeg: remove misleading and incorrect warning messages
wm4 [Thu, 15 Jun 2017 16:52:14 +0000 (18:52 +0200)]
ffmpeg: remove misleading and incorrect warning messages

It is wrong/incorrect in two aspects:
1. The pixel format is not enough to guarantee that the resulting file
   will be any more compatible with media players.
2. Media players not supporting higher profiles are not necessarily
   outdated (in fact this is simply an arrogant statement that
   libavcodec can handle these particular features).

You could add that there are plenty of other ways to produce widely
incompatible files with ffmpeg, and these don't show any warnings.

What we really want to do here is defaulting to codec profiles that
have wide compatibility, such as main/high for h264. Also, if an
encoder does not accept certain pixfmts, we should automatically
convert them to a pixfmt the encoder can accept. But the existing
message certainly is not appropriate.

It also works for 2 specific encoders only. Extending it for other
cases would result in a lot of special cases, so this is not the
right place.

7 years agoavcodec/x86/mpegvideo: Use intra scantable in dct_unquantize_h263_intra_mmx()
Michael Niedermayer [Mon, 19 Jun 2017 21:47:13 +0000 (23:47 +0200)]
avcodec/x86/mpegvideo: Use intra scantable in dct_unquantize_h263_intra_mmx()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/h264: Fix mix of lossless and lossy MBs decoding
Anton Mitrofanov [Wed, 14 Jun 2017 00:01:56 +0000 (03:01 +0300)]
avcodec/h264: Fix mix of lossless and lossy MBs decoding

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agoavcodec/h264_mb: Fix 8x8dct in lossless for new versions of x264
Anton Mitrofanov [Tue, 13 Jun 2017 20:37:29 +0000 (23:37 +0300)]
avcodec/h264_mb: Fix 8x8dct in lossless for new versions of x264

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agoavcodec/h264_cabac: Fix CABAC+8x8dct in 4:4:4
Anton Mitrofanov [Tue, 30 May 2017 23:37:41 +0000 (02:37 +0300)]
avcodec/h264_cabac: Fix CABAC+8x8dct in 4:4:4

Use the correct ctxIdxInc calculation for coded_block_flag.
Keep old behavior for old versions of x264 for backward compatibility.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agolibavfilter/scale: Populate ow/oh when using 0 as w/h
Kevin Mark [Wed, 14 Jun 2017 05:03:18 +0000 (01:03 -0400)]
libavfilter/scale: Populate ow/oh when using 0 as w/h

The input width and height is known at parse time so there's no
reason ow/oh should not be usable when using 0 as the width or
height expression.

Previously in "scale=0:ow" ow would be set to "0" which works,
conveniently, as "scale=0:0" is perfectly valid input but this breaks
down when you do something like "scale=0:ow/4" which one could
reasonably expect to work as well, but does not as ow is 0 not the
real value.

This change handles the 0 case for w/h immediately so the ow/oh
variables work as expected. Consequently, the rest of the code does
not need to handle 0 input. w/h will always be > 0 or < 0.

The second explicit (int) cast ensures that ow/oh appear as integers
as a user might expect when dealing with pixel dimensions.

Signed-off-by: Kevin Mark <kmark937@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agodoc/filters: Correct scale doc regarding w/h <= 0
Kevin Mark [Mon, 12 Jun 2017 05:59:05 +0000 (01:59 -0400)]
doc/filters: Correct scale doc regarding w/h <= 0

According to libavfilter/scale.c, if the width and height are both
less than or equal to 0 then the input size is used for both
dimensions. It does not need to be -1. -1:-1 is the same as 0:0 which
is the same as -10:-42, etc.

if (w < 0 && h < 0)
    eval_w = eval_h = 0;

The documentation for the zscale filter has also been updated since the
behavior is identical.

Signed-off-by: Kevin Mark <kmark937@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
7 years agodoc/filters: fix typo
Paul B Mahol [Mon, 19 Jun 2017 17:28:43 +0000 (19:28 +0200)]
doc/filters: fix typo

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavfilter/af_stereotools: add 2 more modes
Paul B Mahol [Mon, 19 Jun 2017 16:59:33 +0000 (18:59 +0200)]
avfilter/af_stereotools: add 2 more modes

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavfilter/af_superequalizer: stop leaking s->out frame
Paul B Mahol [Mon, 19 Jun 2017 16:34:04 +0000 (18:34 +0200)]
avfilter/af_superequalizer: stop leaking s->out frame

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavfilter/af_superequalizer: improve description
Paul B Mahol [Mon, 19 Jun 2017 16:15:51 +0000 (18:15 +0200)]
avfilter/af_superequalizer: improve description

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavfilter/af_superequalizer: fix out of array access
Paul B Mahol [Mon, 19 Jun 2017 16:12:29 +0000 (18:12 +0200)]
avfilter/af_superequalizer: fix out of array access

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavcodec/wavpack: Fix undefined integer negation
Michael Niedermayer [Mon, 19 Jun 2017 12:08:58 +0000 (14:08 +0200)]
avcodec/wavpack: Fix undefined integer negation

Fixes: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
Fixes: 2291/clusterfuzz-testcase-minimized-5538453481586688
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/aacdec_fixed: Check s for being too small
Michael Niedermayer [Mon, 19 Jun 2017 12:04:32 +0000 (14:04 +0200)]
avcodec/aacdec_fixed: Check s for being too small

Fixes: runtime error: shift exponent -8 is negative
Fixes: 2286/clusterfuzz-testcase-minimized-5711764169687040
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec: Rename ff_mpv_decode_mb() to ff_mpv_reconstruct_mb
Michael Niedermayer [Sun, 18 Jun 2017 18:15:05 +0000 (20:15 +0200)]
avcodec: Rename ff_mpv_decode_mb() to ff_mpv_reconstruct_mb

The new name more accuratly describes what the function does

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavfilter: add roberts cross operator
Paul B Mahol [Mon, 19 Jun 2017 10:54:29 +0000 (12:54 +0200)]
avfilter: add roberts cross operator

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavfilter: add superequalizer filter
Paul B Mahol [Fri, 16 Jun 2017 12:07:01 +0000 (14:07 +0200)]
avfilter: add superequalizer filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agolavfi: print the error message when threading init fails.
Nicolas George [Mon, 19 Jun 2017 08:28:41 +0000 (10:28 +0200)]
lavfi: print the error message when threading init fails.

7 years agoavformat/hlsenc: donnot show duplicate segment warning at byterange mode
Steven Liu [Mon, 19 Jun 2017 02:35:41 +0000 (10:35 +0800)]
avformat/hlsenc: donnot show duplicate segment warning at byterange mode

When the hlsenc at BYTERANGE mode, it should not show the warning message:
"Duplicated segment filename detected:"

Reported-by: Marco <marco@worldcast.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
7 years agox86/aacpsdsp: add ff_ps_hybrid_analysis_ileave_sse
James Almer [Mon, 12 Jun 2017 22:27:29 +0000 (19:27 -0300)]
x86/aacpsdsp: add ff_ps_hybrid_analysis_ileave_sse

About 2x faster than the c version.

7 years agox86/aacpsdsp: add ff_ps_hybrid_synthesis_deint_{sse,sse4}
James Almer [Mon, 19 Jun 2017 01:33:27 +0000 (22:33 -0300)]
x86/aacpsdsp: add ff_ps_hybrid_synthesis_deint_{sse,sse4}

About 2x faster than the c version.

7 years agoavformat/oggenc: add ogg_init() and ogg_free()
James Almer [Sun, 28 May 2017 20:07:06 +0000 (17:07 -0300)]
avformat/oggenc: add ogg_init() and ogg_free()

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agofate: use do_md5sum instead of the md5 protocol for most md5 fate tests
Marton Balint [Fri, 16 Jun 2017 20:08:02 +0000 (22:08 +0200)]
fate: use do_md5sum instead of the md5 protocol for most md5 fate tests

The md5 protocol has no seek support, but some tests use seeks. This changes
the fate tests to actually create the output files and calculate the md5 on the
written files, which also makes the tests independent of the size of the output
buffers and output buffering in general.

A new md5pipe fate test method is also introduced to keep the old functionality
for tests where using a non-seekable output was intentional, and matroska md5
tests are changed to use that.

Signed-off-by: Marton Balint <cus@passwd.hu>
7 years agoavfilter/af_amix: fix possible hang
Paul B Mahol [Sun, 18 Jun 2017 16:38:36 +0000 (18:38 +0200)]
avfilter/af_amix: fix possible hang

Fixes #6424.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavconv_hw: Free device on initialisation failure
Mark Thompson [Fri, 16 Jun 2017 22:18:55 +0000 (23:18 +0100)]
avconv_hw: Free device on initialisation failure

Fixes CID 1412852.

(cherry picked from commit c2b0bea40f1fd4399ff6184a2df4f397c0f4b3ab)

7 years agovf_hwmap: Properly free a locally derived device
Mark Thompson [Fri, 16 Jun 2017 22:11:51 +0000 (23:11 +0100)]
vf_hwmap: Properly free a locally derived device

Fixes CID 1412853.

(cherry picked from commit a670eea56087d0ecd4fbeccf3a9beb9110b7031f)

7 years agovf_hwmap: Add missing error code
Mark Thompson [Fri, 16 Jun 2017 22:08:47 +0000 (23:08 +0100)]
vf_hwmap: Add missing error code

Fixes CID 1412854.

(cherry picked from commit 5635c80bf59d90e63ede473e2c014647850a8446)

7 years agolibavfilter/af_biquads: add shorter option for width_type
Paul B Mahol [Sun, 18 Jun 2017 15:31:03 +0000 (17:31 +0200)]
libavfilter/af_biquads: add shorter option for width_type

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavformat/rmenc: do not access AVIO write buffer directly
Marton Balint [Fri, 16 Jun 2017 20:45:23 +0000 (22:45 +0200)]
avformat/rmenc: do not access AVIO write buffer directly

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
7 years agoCleanly exit at the end of an Interplay MVE
Hein-Pieter van Braam [Sat, 17 Jun 2017 19:43:36 +0000 (21:43 +0200)]
Cleanly exit at the end of an Interplay MVE

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavcodec/htmlsubtitles: Factor open brace handling into its own function
Michael Niedermayer [Mon, 12 Jun 2017 22:01:04 +0000 (00:01 +0200)]
avcodec/htmlsubtitles: Factor open brace handling into its own function

Suggested-by: wm4
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/htmlsubtitles: Replace very slow redundant sscanf() calls by cleaner and...
Michael Niedermayer [Sun, 11 Jun 2017 15:58:45 +0000 (17:58 +0200)]
avcodec/htmlsubtitles: Replace very slow redundant sscanf() calls by cleaner and faster code

This reduces the worst case from O(n²) to O(n) time

Fixes Timeout
Fixes: 2127/clusterfuzz-testcase-minimized-6595787859427328
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/takdec: Fixes: integer overflow in AV_SAMPLE_FMT_U8P output
Michael Niedermayer [Sun, 18 Jun 2017 12:37:19 +0000 (14:37 +0200)]
avcodec/takdec: Fixes: integer overflow in AV_SAMPLE_FMT_U8P output

Fixes: runtime error: signed integer overflow: 2147483543 + 128 cannot be represented in type 'int'
Fixes: 2234/clusterfuzz-testcase-minimized-6266896041115648
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/iff: Cleanup on init failure
Michael Niedermayer [Sun, 18 Jun 2017 12:05:12 +0000 (14:05 +0200)]
avcodec/iff: Cleanup on init failure

Fixes: memleak
Fixes: 2272/clusterfuzz-testcase-minimized-5059103858622464
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agolibavformat/file: return AVERROR_EOF on EOF
Daniel Kucera [Mon, 5 Jun 2017 18:30:16 +0000 (20:30 +0200)]
libavformat/file: return AVERROR_EOF on EOF

Signed-off-by: Daniel Kucera <daniel.kucera@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agolibavformat/subfile: return AVERROR_EOF on EOF
Daniel Kucera [Mon, 5 Jun 2017 18:32:39 +0000 (20:32 +0200)]
libavformat/subfile: return AVERROR_EOF on EOF

Signed-off-by: Daniel Kucera <daniel.kucera@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/jpeg2000dsp: Reorder operations in ict_int() to avoid 2 integer overflows
Michael Niedermayer [Sat, 17 Jun 2017 13:06:21 +0000 (15:06 +0200)]
avcodec/jpeg2000dsp: Reorder operations in ict_int() to avoid 2 integer overflows

Fixes: runtime error: signed integer overflow: 58065 * 51981 cannot be represented in type 'int'
Fixes: 2271/clusterfuzz-testcase-minimized-5778297776504832
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/hevcpred_template: Fix left shift of negative value
Michael Niedermayer [Sat, 17 Jun 2017 12:54:19 +0000 (14:54 +0200)]
avcodec/hevcpred_template: Fix left shift of negative value

Fixes: runtime error: left shift of negative value -1
Fixes: 2250/clusterfuzz-testcase-minimized-5693382112313344
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavformat/libssh: check the user provided a password before trying to use it
James Almer [Sun, 11 Jun 2017 17:17:30 +0000 (14:17 -0300)]
avformat/libssh: check the user provided a password before trying to use it

Fixes ticket #6413

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavcodec/hevcdec: Fix signed integer overflow in decode_lt_rps()
Michael Niedermayer [Fri, 16 Jun 2017 22:34:08 +0000 (00:34 +0200)]
avcodec/hevcdec: Fix signed integer overflow in decode_lt_rps()

Fixes: runtime error: signed integer overflow: 2147483647 + 6 cannot be represented in type 'int'
Fixes: 2263/clusterfuzz-testcase-minimized-4800359627227136
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/gdv: Fix undefined shift
Michael Niedermayer [Fri, 16 Jun 2017 21:31:42 +0000 (23:31 +0200)]
avcodec/gdv: Fix undefined shift

Fixes: runtime error: left shift of 255 by 24 places cannot be represented in type 'int'
Fixes: 2249/clusterfuzz-testcase-minimized-5388542379294720
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/jpeg2000dec: Check nonzerobits more completely
Michael Niedermayer [Fri, 16 Jun 2017 17:57:08 +0000 (19:57 +0200)]
avcodec/jpeg2000dec: Check nonzerobits more completely

Fixes: runtime error: shift exponent 36 is too large for 32-bit type 'int'
Fixes: 2239/clusterfuzz-testcase-minimized-5639766592716800
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/wavpack: Change wp_log2() to unsigned
Michael Niedermayer [Fri, 9 Jun 2017 11:49:30 +0000 (13:49 +0200)]
avcodec/wavpack: Change wp_log2() to unsigned

Fixes: runtime error: signed integer overflow: 2143315325 + 4186162 cannot be represented in type 'int'
Fixes: 2134/clusterfuzz-testcase-minimized-4619258405322752
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/shorten: Sanity check maxnlpc
Michael Niedermayer [Fri, 9 Jun 2017 00:16:54 +0000 (02:16 +0200)]
avcodec/shorten: Sanity check maxnlpc

Fixes OOM
Fixes: 2131/clusterfuzz-testcase-minimized-4718045157130240
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoconfigure: use -x instead of -wN ..@ to strip assembly files
Rostislav Pehlivanov [Tue, 16 May 2017 11:08:37 +0000 (12:08 +0100)]
configure: use -x instead of -wN ..@ to strip assembly files

Reduces the amount of debugging information of external asm from
uselessly verbose to informative enough.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Reviewed-by: James Darnley <james.darnley@gmail.com>
7 years agoavcodec/aacps: move checks for valid length outside the stereo_interpolate dsp function
James Almer [Sat, 3 Jun 2017 17:01:46 +0000 (14:01 -0300)]
avcodec/aacps: move checks for valid length outside the stereo_interpolate dsp function

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agox86/vorbisdsp: optimize ff_vorbis_inverse_coupling_sse
James Almer [Fri, 16 Jun 2017 02:20:05 +0000 (23:20 -0300)]
x86/vorbisdsp: optimize ff_vorbis_inverse_coupling_sse

About 7% faster.

7 years agoavcodec/parser: assert that there is a past buffer if theres a reference into the...
Michael Niedermayer [Thu, 15 Jun 2017 23:35:35 +0000 (01:35 +0200)]
avcodec/parser: assert that there is a past buffer if theres a reference into the past

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/truemotion2: Move skip computation after checks
Michael Niedermayer [Thu, 15 Jun 2017 21:41:46 +0000 (23:41 +0200)]
avcodec/truemotion2: Move skip computation after checks

Fixes: runtime error: signed integer overflow: 630067357 * 4 cannot be represented in type 'int'
Fixes: 2233/clusterfuzz-testcase-minimized-5943031318446080
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/jpeg2000: Fixes integer overflow in ff_jpeg2000_ceildivpow2()
Michael Niedermayer [Thu, 15 Jun 2017 21:26:18 +0000 (23:26 +0200)]
avcodec/jpeg2000: Fixes integer overflow in ff_jpeg2000_ceildivpow2()

Fixes: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
Fixes: 2231/clusterfuzz-testcase-minimized-4565181982048256
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/dnxhd_parser: Do not return invalid value from dnxhd_find_frame_end() on...
Michael Niedermayer [Wed, 14 Jun 2017 14:58:20 +0000 (16:58 +0200)]
avcodec/dnxhd_parser: Do not return invalid value from dnxhd_find_frame_end() on error

Fixes: Null pointer dereference
Fixes: CVE-2017-9608
Found-by: Yihan Lian
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agovc2enc: decrease default strictness level
Rostislav Pehlivanov [Thu, 15 Jun 2017 17:30:08 +0000 (18:30 +0100)]
vc2enc: decrease default strictness level

Given how incredibly limited the official specifications are (limiting all use
to only the most common broadcasting formats), permit all supported inputs
by default. This makes the encoder more useful.

7 years agovorbisenc: Stop tracking number of samples per frame
Tyler Jones [Wed, 14 Jun 2017 20:59:07 +0000 (14:59 -0600)]
vorbisenc: Stop tracking number of samples per frame

Each frame is now padded with 0 values if not enough samples are
present, and all frames are guaranteed to have exactly
1 << (venc->log2_blocksize[1] - 1) samples.

Signed-off-by: Tyler Jones <tdjones879@gmail.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
7 years agovorbisenc: Apply and output correct length window and mdct
Tyler Jones [Wed, 14 Jun 2017 20:58:55 +0000 (14:58 -0600)]
vorbisenc: Apply and output correct length window and mdct

Usage of blocksize, window, mode, and mdct indexes are switched from
default 0 to a default of 1 to better align with specs. A flag of 0
should correspond with short windows, a flag of 1 with long.

Signed-off-by: Tyler Jones <tdjones879@gmail.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
7 years agovorbisenc: Separate copying audio samples from windowing
Tyler Jones [Wed, 14 Jun 2017 20:58:22 +0000 (14:58 -0600)]
vorbisenc: Separate copying audio samples from windowing

Audio samples are shifted around when copying from the frame queue so that
analysis can be done without negatively impacting calculation of the MDCT.

Window coefficients are applied to the current two overlapped windows
simultaneously instead of applying overlap for the next frame ahead of time.
This improves readability when applying windows of varying lengths.

Signed-off-by: Tyler Jones <tdjones879@gmail.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
7 years agoavfilter/af_headphone: fix possible memory leaks on failure
Paul B Mahol [Thu, 15 Jun 2017 09:19:12 +0000 (11:19 +0200)]
avfilter/af_headphone: fix possible memory leaks on failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years agoavcodec/hevcdec: Check nb_sps
Michael Niedermayer [Wed, 14 Jun 2017 23:28:28 +0000 (01:28 +0200)]
avcodec/hevcdec: Check nb_sps

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/hevc_refs: Check nb_refs in add_candidate_ref()
Michael Niedermayer [Wed, 14 Jun 2017 23:26:01 +0000 (01:26 +0200)]
avcodec/hevc_refs: Check nb_refs in add_candidate_ref()

Fixes: runtime error: index 16 out of bounds for type 'int [16]'
Fixes: 2209/clusterfuzz-testcase-minimized-5012343912136704
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavutil/tests: remove float_dsp test
James Almer [Thu, 1 Jun 2017 22:56:17 +0000 (19:56 -0300)]
avutil/tests: remove float_dsp test

It's been ported to checkasm.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agocheckasm: add float_dsp tests
James Almer [Tue, 11 Apr 2017 20:16:56 +0000 (17:16 -0300)]
checkasm: add float_dsp tests

Ported from libavutil/tests/float_dsp.c

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agocheckasm: add a checkasm_checked_call function that doesn't issue emms
James Almer [Thu, 1 Jun 2017 21:50:49 +0000 (18:50 -0300)]
checkasm: add a checkasm_checked_call function that doesn't issue emms

Meant for DSP functions returning a float or double, as they'd fail if emms
is called after every run on x86_32.

Signed-off-by: James Almer <jamrial@gmail.com>
7 years agoavcodec/mpeg4videodec: Check sprite delta upshift against overflowing.
Michael Niedermayer [Wed, 14 Jun 2017 21:55:17 +0000 (23:55 +0200)]
avcodec/mpeg4videodec: Check sprite delta upshift against overflowing.

Fixes: runtime error: signed integer overflow: -268386304 * 16 cannot be represented in type 'int'
Fixes: 2204/clusterfuzz-testcase-minimized-5616756909408256
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/mpeg4videodec: Fix integer overflow in num_sprite_warping_points=2 case
Michael Niedermayer [Wed, 14 Jun 2017 21:49:23 +0000 (23:49 +0200)]
avcodec/mpeg4videodec: Fix integer overflow in num_sprite_warping_points=2 case

Fixes: runtime error: signed integer overflow: 131072 + 2147352576 cannot be represented in type 'int'
Fixes: 2192/clusterfuzz-testcase-minimized-5370387988742144
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agoavcodec/dnxhdenc: Assert that frame size is not assigned an error code
Michael Niedermayer [Wed, 14 Jun 2017 14:58:35 +0000 (16:58 +0200)]
avcodec/dnxhdenc: Assert that frame size is not assigned an error code

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 years agohevc: Fix scaling list prediction delta for the 32x32 inter matrix
Mark Thompson [Sun, 30 Apr 2017 12:21:03 +0000 (13:21 +0100)]
hevc: Fix scaling list prediction delta for the 32x32 inter matrix

Fixes ticket #6356.

7 years agodoc: Document hwupload, hwdownload and hwmap filters
Mark Thompson [Sun, 30 Apr 2017 21:11:54 +0000 (22:11 +0100)]
doc: Document hwupload, hwdownload and hwmap filters

(cherry picked from commit 66aa9b94dae217a0fc5acfb704490707629d95ed)

7 years agovf_hwmap: Add reverse mapping for hardware frames
Mark Thompson [Sat, 4 Mar 2017 23:57:42 +0000 (23:57 +0000)]
vf_hwmap: Add reverse mapping for hardware frames

This is something of a hack.  It allocates a new hwframe context for
the target format, then maps it back to the source link and overwrites
the input link hw_frames_ctx so that the previous filter will receive
the frames we want from ff_get_video_buffer().  It may fail if
the previous filter imposes any additional constraints on the frames
it wants to use as output.

(cherry picked from commit 81a4cb8e58636d4efd200c2b4fec786a7e948d8b)

7 years agovf_hwmap: Add device derivation
Mark Thompson [Sat, 4 Mar 2017 23:57:41 +0000 (23:57 +0000)]
vf_hwmap: Add device derivation

Also refactor a little and improve error messages to make failure
cases easier to understand.

(cherry picked from commit 38cb05f1c89cae1862b360d4e7e3f0cd2b5bbb67)

7 years agohwcontext: Improve allocation in derived contexts
Mark Thompson [Sat, 4 Mar 2017 23:57:40 +0000 (23:57 +0000)]
hwcontext: Improve allocation in derived contexts

Use the flags argument of av_hwframe_ctx_create_derived() to pass the
mapping flags which will be used on allocation.  Also, set the format
and hardware context on the allocated frame automatically - the user
should not be required to do this themselves.

(cherry picked from commit c5714b51aad41fef56dddac1d542e7fc6b984627)

7 years agohwcontext_qsv: Implement mapping frames to the child device type
Mark Thompson [Sat, 4 Mar 2017 23:57:45 +0000 (23:57 +0000)]
hwcontext_qsv: Implement mapping frames to the child device type

(cherry picked from commit e1c5d56b18b82e3fb42382b1b1f972e8b371fc38)

7 years agohwcontext_qsv: Implement mapping frames from the child device type
Mark Thompson [Sat, 4 Mar 2017 23:57:44 +0000 (23:57 +0000)]
hwcontext_qsv: Implement mapping frames from the child device type

Factorises out existing surface initialisation code to reuse.

(cherry picked from commit eaa5e0710496db50fc164806e5f49eaaccc83bb5)

7 years agohwcontext: Add frame context mapping for nontrivial contexts
Mark Thompson [Sat, 4 Mar 2017 23:57:39 +0000 (23:57 +0000)]
hwcontext: Add frame context mapping for nontrivial contexts

Some frames contexts are not usable without additional format-specific
state in hwctx.  This change adds new functions frames_derive_from and
frames_derive_to to initialise this state appropriately when deriving
a frames context which will require it to be set.

(cherry picked from commit 27978155bc661eec9f22bcf82c9cfc099cff4365)

7 years agohwcontext_qsv: Support derivation from child devices
Mark Thompson [Sat, 4 Mar 2017 23:57:43 +0000 (23:57 +0000)]
hwcontext_qsv: Support derivation from child devices

(cherry picked from commit aa51bb3d2756ed912ee40645efccf5f4a9609696)

7 years agoffmpeg: Support setting the hardware device to use when filtering
Mark Thompson [Sat, 4 Mar 2017 23:57:38 +0000 (23:57 +0000)]
ffmpeg: Support setting the hardware device to use when filtering

This only supports one device globally, but more can be used by
passing them with input streams in hw_frames_ctx or by deriving new
devices inside a filter graph with hwmap.

(cherry picked from commit e669db76108de8d7a36c2274c99da82cc94d1dd1)

7 years agovaapi: Add external control of allow-profile-mismatch
Mark Thompson [Mon, 27 Mar 2017 19:46:11 +0000 (20:46 +0100)]
vaapi: Add external control of allow-profile-mismatch

Uses the just-added ALLOW_PROFILE_MISMATCH flag.

(cherry picked from commit 7acb90333a187b0e847b66f9d3511245423dc0ce)

7 years agolavc: Add flag to allow profile mismatch with hardware decoding
Mark Thompson [Mon, 27 Mar 2017 19:45:21 +0000 (20:45 +0100)]
lavc: Add flag to allow profile mismatch with hardware decoding

(cherry picked from commit 64a5260c695dd8051509d3270295fd64eac56587)

7 years agovaapi_encode: Use gop_size consistently in RC parameters
Mark Thompson [Sun, 2 Apr 2017 22:05:13 +0000 (23:05 +0100)]
vaapi_encode: Use gop_size consistently in RC parameters

The non-H.26[45] codecs already use this form.  Since we don't
currently generate I frames for codecs which support them separately
to IDR, the p_per_i variable is set to infinity by default so that it
doesn't interfere with any other calculation.  (All the code for I
frames still exists, and it works for H.264 if set manually.)

(cherry picked from commit 6af014f4028238b4c50f1731b3369a41d65fa9c4)

7 years agoqsvenc: Allow use of hw_device_ctx to make the internal session
Mark Thompson [Sat, 4 Mar 2017 23:57:37 +0000 (23:57 +0000)]
qsvenc: Allow use of hw_device_ctx to make the internal session

(cherry picked from commit 3d197514e613ccd9eab43180c0a7c8b09a307606)

7 years agoqsvdec: Allow use of hw_device_ctx to make the internal session
Mark Thompson [Sat, 4 Mar 2017 23:57:36 +0000 (23:57 +0000)]
qsvdec: Allow use of hw_device_ctx to make the internal session

(cherry picked from commit 8848ba0bd6b035af77d4f13aa0d8aaaad9806fe8)