ffmpeg.git
2 years agolavfi: add a preinit callback to filters.
Nicolas George [Sun, 30 Jul 2017 22:29:01 +0000 (00:29 +0200)]
lavfi: add a preinit callback to filters.

It is necessary for filters with child objects, to set the class
and default options values.

2 years agolavfi/vf_overlay: move to framesync2.
Nicolas George [Mon, 17 Jul 2017 18:46:31 +0000 (20:46 +0200)]
lavfi/vf_overlay: move to framesync2.

2 years agolavfi/framesync2: add dualinput helper functions.
Nicolas George [Mon, 17 Jul 2017 18:45:52 +0000 (20:45 +0200)]
lavfi/framesync2: add dualinput helper functions.

2 years agolavfi/f_streamselect: convert to framesync2.
Nicolas George [Mon, 31 Jul 2017 11:47:34 +0000 (13:47 +0200)]
lavfi/f_streamselect: convert to framesync2.

2 years agoavcodec/snowenc: fix setting motion_est option
James Almer [Sat, 26 Aug 2017 00:03:00 +0000 (21:03 -0300)]
avcodec/snowenc: fix setting motion_est option

Remove usage of FF_MPV_COMMON_OPTS, and set SnowContext.motion_est directly.
Based on code from svq1enc.c

Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agolavf/dump: Remove superfluous cast.
Carl Eugen Hoyos [Mon, 28 Aug 2017 23:33:47 +0000 (01:33 +0200)]
lavf/dump: Remove superfluous cast.

2 years agohevc: Add names for reserved NAL unit types
Mark Thompson [Sun, 14 May 2017 14:47:36 +0000 (15:47 +0100)]
hevc: Add names for reserved NAL unit types

While not yet used, these NAL units do already have some defined
semantics and are referred to elsewhere.

(cherry picked from commit 3daaa4417317ca732fb00476fdb3308d784f87e4)

2 years agolavc/vaapi_encode: Change the slice/parameter buffers to dynamic alloc.
Jun Zhao [Thu, 24 Aug 2017 01:13:01 +0000 (09:13 +0800)]
lavc/vaapi_encode: Change the slice/parameter buffers to dynamic alloc.

Change the slice/parameter buffers to be allocated dynamically.

Signed-off-by: Wang, Yi A <yi.a.wang@intel.com>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2 years agolavc/vaapi_encode_h265: Enable VBR mode
Jun Zhao [Fri, 25 Aug 2017 07:56:51 +0000 (15:56 +0800)]
lavc/vaapi_encode_h265: Enable VBR mode

Follow vaapi_h264 style, enable the VBR mode.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2 years agolibavutil/opencl: fix potential null dereference
Timo Rothenpieler [Sun, 11 Jun 2017 14:05:45 +0000 (16:05 +0200)]
libavutil/opencl: fix potential null dereference

Fixes CID 1396840

Reviewed-by: Wei Gao <highgod0401@gmail.com>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2 years agoavfilter/vf_zoompan: remove AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
Michael Niedermayer [Sun, 27 Aug 2017 18:41:56 +0000 (20:41 +0200)]
avfilter/vf_zoompan: remove AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC

Suggested-by: <durandal_1707>
Fixes: assertion failure

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/aacpsdsp_template: Fix undefined integer overflow in ps_add_squares_c()
Michael Niedermayer [Sat, 26 Aug 2017 12:08:51 +0000 (14:08 +0200)]
avcodec/aacpsdsp_template: Fix undefined integer overflow in ps_add_squares_c()

Fixes runtime error: signed integer overflow: 1997494407 + 613252359 cannot be represented in type 'int'
Fixes: 2014/clusterfuzz-testcase-minimized-5186337030275072

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/sbrdsp_fixed: Fix undefined overflows in autocorrelate()
Michael Niedermayer [Sat, 26 Aug 2017 12:00:55 +0000 (14:00 +0200)]
avcodec/sbrdsp_fixed: Fix undefined overflows in autocorrelate()

Fixes: runtime error: signed integer overflow: 8903997421129740175 + 354481484684609529 cannot be represented in type 'long'
Fixes: 2045/clusterfuzz-testcase-minimized-6751255865065472

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/mvdec: Fix DoS due to lack of eof check
Michael Niedermayer [Thu, 24 Aug 2017 23:15:30 +0000 (01:15 +0200)]
avformat/mvdec: Fix DoS due to lack of eof check

Fixes: loop.mv

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/rl2: Fix DoS due to lack of eof check
孙浩 and 张洪亮(望初) [Thu, 24 Aug 2017 23:15:29 +0000 (01:15 +0200)]
avformat/rl2: Fix DoS due to lack of eof check

Fixes: loop.rl2

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/rmdec: Fix DoS due to lack of eof check
孙浩 and 张洪亮(望初) [Thu, 24 Aug 2017 23:15:28 +0000 (01:15 +0200)]
avformat/rmdec: Fix DoS due to lack of eof check

Fixes: loop.ivr

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/cinedec: Fix DoS due to lack of eof check
孙浩 and 张洪亮(望初) [Thu, 24 Aug 2017 23:15:27 +0000 (01:15 +0200)]
avformat/cinedec: Fix DoS due to lack of eof check

Fixes: loop.cine

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/asfdec: Fix DoS due to lack of eof check
孙浩 and 张洪亮(望初) [Fri, 25 Aug 2017 10:37:25 +0000 (12:37 +0200)]
avformat/asfdec: Fix DoS due to lack of eof check

Fixes: loop.asf

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/hls: Fix DoS due to infinite loop
Michael Niedermayer [Fri, 25 Aug 2017 23:26:58 +0000 (01:26 +0200)]
avformat/hls: Fix DoS due to infinite loop

Fixes: loop.m3u

The default max iteration count of 1000 is arbitrary and ideas for a better solution are welcome

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Previous version reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agolavd: implement NewTek NDI input/output device support
Maksym Veremeyenko [Fri, 18 Aug 2017 13:34:06 +0000 (09:34 -0400)]
lavd: implement NewTek NDI input/output device support

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavdevice/decklink_enc: enable 16 output channel
pkviet [Sun, 2 Jul 2017 21:50:56 +0000 (23:50 +0200)]
avdevice/decklink_enc: enable 16 output channel

Decklink devices can output 2, 8 or 16 audio channels along video.
The code was limited to 2 or 8 channels. The commit enables 16 audio
channels (relevant for SDI outputs).

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavdevice/decklink_dec: fix signed and unsigned comparison warning
Marton Balint [Sun, 27 Aug 2017 15:55:02 +0000 (17:55 +0200)]
avdevice/decklink_dec: fix signed and unsigned comparison warning

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavfilter/vf_zoompan: parse zoom,x and y expression during initialization
Paul B Mahol [Sun, 27 Aug 2017 15:11:40 +0000 (17:11 +0200)]
avfilter/vf_zoompan: parse zoom,x and y expression during initialization

Fixes #6127.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_zoompan: switch to activate
Paul B Mahol [Sun, 27 Aug 2017 14:51:24 +0000 (16:51 +0200)]
avfilter/vf_zoompan: switch to activate

Fixes #5182.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_amix: do not request samples if inlink reached EOF
Paul B Mahol [Sun, 27 Aug 2017 06:49:58 +0000 (08:49 +0200)]
avfilter/af_amix: do not request samples if inlink reached EOF

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavcoec/snowenc: silence some deprecation warnings
James Almer [Sun, 27 Aug 2017 01:08:47 +0000 (22:08 -0300)]
avcoec/snowenc: silence some deprecation warnings

2 years agoconfigure: add avx2 enabled log
Martin Vignali [Sat, 26 Aug 2017 19:26:00 +0000 (21:26 +0200)]
configure: add avx2 enabled log

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/af_amix: simplify const entries for duration in amix_options[]
Paul B Mahol [Sat, 26 Aug 2017 19:17:27 +0000 (21:17 +0200)]
avfilter/af_amix: simplify const entries for duration in amix_options[]

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_amix: switch to activate
Paul B Mahol [Sat, 26 Aug 2017 15:47:56 +0000 (17:47 +0200)]
avfilter/af_amix: switch to activate

Really fixes hangs and infinite loops.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agodoc/filters: improve pseudocolor example
Paul B Mahol [Sat, 26 Aug 2017 13:18:33 +0000 (15:18 +0200)]
doc/filters: improve pseudocolor example

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agolavc/sinewin_tablegen: Fix compilation with --enable-hardcoded-tables.
Carl Eugen Hoyos [Sat, 26 Aug 2017 10:48:43 +0000 (12:48 +0200)]
lavc/sinewin_tablegen: Fix compilation with --enable-hardcoded-tables.

Reported by irc user JCount_.

2 years agolavc/utils: Calculate frame duration for little-endian G.726.
Carl Eugen Hoyos [Sat, 26 Aug 2017 09:59:34 +0000 (11:59 +0200)]
lavc/utils: Calculate frame duration for little-endian G.726.

2 years agolavf/rawenc: Add little- and big-endian G.726 muxers.
Carl Eugen Hoyos [Sat, 26 Aug 2017 09:43:09 +0000 (11:43 +0200)]
lavf/rawenc: Add little- and big-endian G.726 muxers.

2 years agoavfilter/af_surround: make volume configurable for front center and lfe channel
Paul B Mahol [Sat, 26 Aug 2017 09:26:48 +0000 (11:26 +0200)]
avfilter/af_surround: make volume configurable for front center and lfe channel

2 years agoffmpeg options: Enable trailing ? for map_channel
pkviet [Tue, 22 Aug 2017 09:30:45 +0000 (11:30 +0200)]
ffmpeg options: Enable trailing ? for map_channel

The -map option allows for a trailing ? so that an error is not thrown if
the input stream does not exist.
This capability is extended to the map_channel option.
This allows a ffmpeg command not to break if an input channel does not
exist, which can be of use (for instance, scripts processing audio
channels with sources having unset number of audio channels).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/dvbsubdec: Check for duplicate regions in dvbsub_parse_page_segment()
Michael Niedermayer [Tue, 22 Aug 2017 01:31:49 +0000 (03:31 +0200)]
avcodec/dvbsubdec: Check for duplicate regions in dvbsub_parse_page_segment()

Fixes: OOM
Fixes: 3051/clusterfuzz-testcase-minimized-5745818336231424

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec: add missing FF_API_DEBUG_MV wrappers
James Almer [Fri, 25 Aug 2017 16:44:52 +0000 (13:44 -0300)]
avcodec: add missing FF_API_DEBUG_MV wrappers

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec: make the avcodec_get_chroma_sub_sample deprecation effective
James Almer [Fri, 25 Aug 2017 15:09:26 +0000 (12:09 -0300)]
avcodec: make the avcodec_get_chroma_sub_sample deprecation effective

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
2 years agoutils: Do not expand a macro with 'defined' in it
Derek Buitenhuis [Thu, 24 Aug 2017 20:00:01 +0000 (21:00 +0100)]
utils: Do not expand a macro with 'defined' in it

Fixes:

    libswscale/utils.c:1632:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
    #if USE_MMAP
        ^
    libswscale/utils.c:1577:49: note: expanded from macro 'USE_MMAP'
    #define USE_MMAP (HAVE_MMAP && HAVE_MPROTECT && defined MAP_ANONYMOUS)
                                                    ^
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2 years agomjpeg: Add support for ICC side data
Derek Buitenhuis [Wed, 23 Aug 2017 16:08:44 +0000 (17:08 +0100)]
mjpeg: Add support for ICC side data

JPEGs store embedded profiles under the APP2 marker, signified
with a "ICC_PROFILE" null-terminated string header, and can be
split across multiple APP2 markers, out of order.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2 years agodoc/filters: add pseudocolor example
Paul B Mahol [Fri, 25 Aug 2017 12:27:21 +0000 (14:27 +0200)]
doc/filters: add pseudocolor example

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_firequalizer: fix minval on cepstrum calculation
Muhammad Faiz [Fri, 25 Aug 2017 10:36:04 +0000 (17:36 +0700)]
avfilter/af_firequalizer: fix minval on cepstrum calculation

The impulse response is scaled with 2/rdft_len.

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2 years agoavfilter/src_movie: check ff_insert_outpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 08:29:50 +0000 (10:29 +0200)]
avfilter/src_movie: check ff_insert_outpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/split: check ff_insert_outpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 08:27:19 +0000 (10:27 +0200)]
avfilter/split: check ff_insert_outpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_decimate: check ff_insert_inpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 08:23:21 +0000 (10:23 +0200)]
avfilter/vf_decimate: check ff_insert_inpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_fieldmatch: check ff_insert_inpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 08:20:13 +0000 (10:20 +0200)]
avfilter/vf_fieldmatch: check ff_insert_inpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/avf_concat: check ff_insert_pad() for failure
Paul B Mahol [Fri, 25 Aug 2017 08:13:48 +0000 (10:13 +0200)]
avfilter/avf_concat: check ff_insert_pad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/f_select: check ff_insert_outpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 08:04:28 +0000 (10:04 +0200)]
avfilter/f_select: check ff_insert_outpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_channelsplit: check ff_insert_outpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 08:01:52 +0000 (10:01 +0200)]
avfilter/af_channelsplit: check ff_insert_outpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_extractplanes: check ff_insert_outpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 07:57:53 +0000 (09:57 +0200)]
avfilter/vf_extractplanes: check ff_insert_outpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/f_interleave: check ff_insert_inpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 07:53:46 +0000 (09:53 +0200)]
avfilter/f_interleave: check ff_insert_inpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_merge: check ff_insert_inpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 07:50:57 +0000 (09:50 +0200)]
avfilter/af_merge: check ff_insert_inpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_join: check ff_insert_inpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 07:49:01 +0000 (09:49 +0200)]
avfilter/af_join: check ff_insert_inpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_headphone: check ff_insert_inpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 07:45:20 +0000 (09:45 +0200)]
avfilter/af_headphone: check ff_insert_inpad() for failure

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_amix: check ff_insert_inpad() for failure
Paul B Mahol [Fri, 25 Aug 2017 07:36:22 +0000 (09:36 +0200)]
avfilter/af_amix: check ff_insert_inpad() for failure

2 years agoavfilter/af_agate: switch to activate
Paul B Mahol [Fri, 25 Aug 2017 07:07:28 +0000 (09:07 +0200)]
avfilter/af_agate: switch to activate

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_firequalizer: reindent after previous commit
Muhammad Faiz [Fri, 25 Aug 2017 03:39:16 +0000 (10:39 +0700)]
avfilter/af_firequalizer: reindent after previous commit

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2 years agoavfilter/af_firequalizer: add min_phase option
Muhammad Faiz [Tue, 22 Aug 2017 18:35:35 +0000 (01:35 +0700)]
avfilter/af_firequalizer: add min_phase option

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2 years agocheckasm/vf_blend: rename addition128 and difference128 to grainmerge and grainextract
James Almer [Fri, 25 Aug 2017 02:39:05 +0000 (23:39 -0300)]
checkasm/vf_blend: rename addition128 and difference128 to grainmerge and grainextract

This was missing from f8d0689d3f.
Fixes checkasm.

2 years agofate: add test vector aac-al04sf_48
Alex Converse [Fri, 18 Aug 2017 21:07:29 +0000 (14:07 -0700)]
fate: add test vector aac-al04sf_48

2 years agoavcodec/aac: Add floating point 960/120 MDCT window
Paul B Mahol [Tue, 4 Jul 2017 14:59:13 +0000 (16:59 +0200)]
avcodec/aac: Add floating point 960/120 MDCT window

Co-Authored-By: Alex Converse <alex.converse@gmail.com>
Co-Authored-By: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agoavfilter/af_sidechaincompress: switch to activate
Paul B Mahol [Thu, 24 Aug 2017 18:34:35 +0000 (20:34 +0200)]
avfilter/af_sidechaincompress: switch to activate

2 years agoavfilter/vf_blend: rename addition128 and difference128 to grainmerge and grainextract
Paul B Mahol [Thu, 24 Aug 2017 12:43:00 +0000 (14:43 +0200)]
avfilter/vf_blend: rename addition128 and difference128 to grainmerge and grainextract

2 years agolavf/g726: Demuxer for raw G.726 streams, both left- and right-justified.
Carl Eugen Hoyos [Mon, 21 Aug 2017 14:17:17 +0000 (16:17 +0200)]
lavf/g726: Demuxer for raw G.726 streams, both left- and right-justified.

Compatible with the binary encoder attached to ticket #6596 (right-aligned)
and a sample from a SEG Mp3-Player (left-aligned).

2 years 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.

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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

2 years 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>
2 years 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>
2 years 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>
2 years 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.

2 years 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>
2 years 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>
2 years 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

2 years 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>
2 years 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>
2 years 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)

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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

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

2 years 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>
2 years 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

2 years 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>
2 years 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>
2 years 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>
2 years 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>