ffmpeg.git
3 months agolavfi/zscale: make use of AVFILTER_DEFINE_CLASS
Jun Zhao [Tue, 5 Mar 2019 11:10:06 +0000 (19:10 +0800)]
lavfi/zscale: make use of AVFILTER_DEFINE_CLASS

use AVFILTER_DEFINE_CLASS for defining the filter classes

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
3 months agoavcodec/g723_1dec: actually decode second channel
Paul B Mahol [Thu, 7 Mar 2019 00:58:43 +0000 (01:58 +0100)]
avcodec/g723_1dec: actually decode second channel

3 months agoavcodec/imm4: fix artifacts on some files with special coding mode
Paul B Mahol [Thu, 7 Mar 2019 00:38:26 +0000 (01:38 +0100)]
avcodec/imm4: fix artifacts on some files with special coding mode

3 months agoavcodec/scpr: Fix use of uninitialized variable
Michael Niedermayer [Wed, 27 Feb 2019 23:12:14 +0000 (00:12 +0100)]
avcodec/scpr: Fix use of uninitialized variable

Fixes: Undefined shift
Fixes: 12911/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5677102915911680

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/imm4: add support for mid-stream size changes
Paul B Mahol [Fri, 1 Mar 2019 14:01:17 +0000 (15:01 +0100)]
avcodec/imm4: add support for mid-stream size changes

3 months agoavformat/dashenc: Added #EXT-X-PROGRAM-DATE-TIME to HLS playlists
joepadmiraal [Tue, 5 Mar 2019 14:37:10 +0000 (15:37 +0100)]
avformat/dashenc: Added #EXT-X-PROGRAM-DATE-TIME to HLS playlists

3 months agoconfigure: allow enabling libvpx vp9 modules when vp8 is disabled
James Almer [Mon, 4 Mar 2019 14:50:53 +0000 (11:50 -0300)]
configure: allow enabling libvpx vp9 modules when vp8 is disabled

libvpx can be compiled with the VP8 decoder and encoder disabled, and
there's no reason to force their presence if the user only wants VP9.

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoconfigure: use vpx_codec_vp8_dx/cx for libvpx-vp8 checking
Guo, Yejun [Mon, 4 Mar 2019 22:09:18 +0000 (06:09 +0800)]
configure: use vpx_codec_vp8_dx/cx for libvpx-vp8 checking

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoconfigure: add missing pthreads extralibs dependency for libvpx-vp9
Guo, Yejun [Mon, 4 Mar 2019 22:09:11 +0000 (06:09 +0800)]
configure: add missing pthreads extralibs dependency for libvpx-vp9

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/qtrle : improve 24bbp decoding speed
Martin Vignali [Tue, 26 Feb 2019 09:38:25 +0000 (10:38 +0100)]
avcodec/qtrle : improve 24bbp decoding speed

benchmark on x86_64 :
mainly raw data : 20 -> 39 fps
mainly rle data : 97 -> 119fps

3 months agoavcodec/qtrle : 32bpp dec copy two raw argb value at the same time
Martin Vignali [Tue, 26 Feb 2019 09:38:10 +0000 (10:38 +0100)]
avcodec/qtrle : 32bpp dec copy two raw argb value at the same time

benchmark on x86_64 :
38 fps -> 40 fps

3 months agoavcodec/qtrle : avoid swap in 32bpp decoding on little endian
Martin Vignali [Tue, 26 Feb 2019 09:37:32 +0000 (10:37 +0100)]
avcodec/qtrle : avoid swap in 32bpp decoding on little endian

improve speed on little endian

benchmark on x86_64 :
mainly raw : 33fps -> 38fps
mainly rle : 128fps -> 153 fps

3 months agofate/qtrle : change 32b test to output bgra instead of rgb24
Martin Vignali [Tue, 26 Feb 2019 09:36:34 +0000 (10:36 +0100)]
fate/qtrle : change 32b test to output bgra instead of rgb24

3 months agolavc/libx265: signal CPB properties through side data
Jan Ekström [Sat, 23 Feb 2019 00:35:28 +0000 (02:35 +0200)]
lavc/libx265: signal CPB properties through side data

This way values such as maxrate/bufsize can be utilized
further down the chain.

3 months agoavcodec/hcom: check that index into array is valid
Paul B Mahol [Sun, 3 Mar 2019 19:21:20 +0000 (20:21 +0100)]
avcodec/hcom: check that index into array is valid

3 months agoavcodec/utils: remove commented out obsolete code
Paul B Mahol [Sun, 3 Mar 2019 17:43:22 +0000 (18:43 +0100)]
avcodec/utils: remove commented out obsolete code

3 months agoavcodec/qpeg: Limit copy in qpeg_decode_intra() to the available bytes
Michael Niedermayer [Sat, 23 Feb 2019 23:44:40 +0000 (00:44 +0100)]
avcodec/qpeg: Limit copy in qpeg_decode_intra() to the available bytes

Fixes: Timeout (27 sec -> 39 milli sec)
Fixes: 13151/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_QPEG_fuzzer-5717536023248896

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/aic: Check remaining bits in aic_decode_coeffs()
Michael Niedermayer [Mon, 25 Feb 2019 12:26:25 +0000 (13:26 +0100)]
avcodec/aic: Check remaining bits in aic_decode_coeffs()

Fixes: Timeout (78 seconds -> 2 seconds)
Fixes: 13186/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AIC_fuzzer-5639516533030912

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/gdv: Check for truncated tags in decompress_5()
Michael Niedermayer [Mon, 25 Feb 2019 00:26:30 +0000 (01:26 +0100)]
avcodec/gdv: Check for truncated tags in decompress_5()

Testcase: 13169/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5666354038833152

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/bethsoftvideo: Check block_type
Michael Niedermayer [Sun, 24 Feb 2019 22:39:44 +0000 (23:39 +0100)]
avcodec/bethsoftvideo: Check block_type

Fixes: Timeout (17 seconds -> 1 second)
Fixes: 13184/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BETHSOFTVID_fuzzer-5711446296494080

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/diracdec: Correct max pixels check
Michael Niedermayer [Mon, 25 Feb 2019 20:37:45 +0000 (21:37 +0100)]
avcodec/diracdec: Correct max pixels check

Dirac internally allocates 5 images per plane and frame currently. One being the actual
image the other 4 being filtered for motion compensation.

Fixes: Out of memory
Fixes: 12870/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5684825871089664

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agodoc/protocols: move option follow entry to correct section
Gyan Doshi [Sun, 3 Mar 2019 05:26:48 +0000 (10:56 +0530)]
doc/protocols: move option follow entry to correct section

The entry for file protocol option 'follow' was inserted under ftp options
during merge of a Libav commit - 90eb24996913238e1a. Corrected.

3 months agoconfigure: select rotation filters for ffmpeg
Gyan Doshi [Sat, 2 Mar 2019 15:19:12 +0000 (20:49 +0530)]
configure: select rotation filters for ffmpeg

autorotate is enabled by default in ffmpeg so the rotation filters
are required and will be attempted for insertion without the user's
knowledge if an input stream has rotation side-data.

3 months agotools/target_dec_fate.list: Add testcases for #2000 to #4000
Michael Niedermayer [Thu, 21 Feb 2019 22:00:08 +0000 (23:00 +0100)]
tools/target_dec_fate.list: Add testcases for #2000 to #4000

Testcases which return 403 currently are commented out

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agotools/target_dec_fate.sh: Add support for lines that are comments
Michael Niedermayer [Thu, 21 Feb 2019 21:12:10 +0000 (22:12 +0100)]
tools/target_dec_fate.sh: Add support for lines that are comments

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/jpeg2000dwt: Fix integer overflow in dwt_decode97_int()
Michael Niedermayer [Mon, 18 Feb 2019 23:05:51 +0000 (00:05 +0100)]
avcodec/jpeg2000dwt: Fix integer overflow in dwt_decode97_int()

Fixes: runtime error: signed integer overflow: 2147483598 + 128 cannot be represented in type 'int'
Fixes: 12926/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-5705100733972480

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/get_bits: add assertion to limit ouptut value of get_bits
Marton Balint [Sat, 16 Feb 2019 23:21:09 +0000 (00:21 +0100)]
avcodec/get_bits: add assertion to limit ouptut value of get_bits

Should fix the following Coverity false positives:

Coverity CID #1415651.
Coverity CID #1420392.
Coverity CID #1420473.
Coverity CID #1433770.
Coverity CID #1435320.
Coverity CID #1439573.
Coverity CID #1439580.
Coverity CID #1439588.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavcodec/get_bits: use unsigned integers in show_bits and get_bits
Marton Balint [Sat, 16 Feb 2019 23:48:13 +0000 (00:48 +0100)]
avcodec/get_bits: use unsigned integers in show_bits and get_bits

The return value is also unsigned.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavcodec/avpacket: add some assertions to ensure pkt->data is not null if pkt->size > 0
Marton Balint [Thu, 14 Feb 2019 21:36:46 +0000 (22:36 +0100)]
avcodec/avpacket: add some assertions to ensure pkt->data is not null if pkt->size > 0

This should fix the following Coverity false positives:

Coverity CID #1405450.
Coverity CID #1430930.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavformat/utils: fix indentation
Marton Balint [Sat, 16 Feb 2019 17:56:56 +0000 (18:56 +0100)]
avformat/utils: fix indentation

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavformat/utils: be even more strict about stream specifiers
Marton Balint [Sat, 16 Feb 2019 17:47:59 +0000 (18:47 +0100)]
avformat/utils: be even more strict about stream specifiers

After this change we always parse the full specifier even if we know the result
in the middle of the parsing. Sligtly slower, but this is needed to
consistently reject incorrect specifiers in both matching and non-matching
cases.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavformat/utils: be more strict about stream specifiers
Marton Balint [Sat, 16 Feb 2019 17:10:13 +0000 (18:10 +0100)]
avformat/utils: be more strict about stream specifiers

This reworks the code to be more strict about accepting stream specifiers. From
now on we strictly enforce the syntax in the documentation up until the
decisive part of the stream specifier. Therefore matching stream specifiers
always need to be correct, non matching specifiers only need to be correct
until the decisive part.

Also recursion is changed to a simple loop.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavformat/mpegtsenc: write format_identifier HEVC for HEVC streams
Marton Balint [Fri, 22 Feb 2019 23:10:30 +0000 (00:10 +0100)]
avformat/mpegtsenc: write format_identifier HEVC for HEVC streams

This improves compatibility with some consumer (LG WebOS) TVs which apparently
search a HEVC descriptor (which our mpegts muxer can't generate) or a format
identifier.

Since the HEVC format identifier is not registered (but used in the wild), it is
not written if strict_std_compliance is higher than normal.

This fixes the issue in ticket #7744.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavformat/mpegtsenc: factorize writing registration_descriptor
Marton Balint [Fri, 22 Feb 2019 23:09:12 +0000 (00:09 +0100)]
avformat/mpegtsenc: factorize writing registration_descriptor

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavfilter/af_anlmdn: add output mode option
Paul B Mahol [Fri, 1 Mar 2019 15:38:59 +0000 (16:38 +0100)]
avfilter/af_anlmdn: add output mode option

3 months agoconfigure: update minimum required ffnvcodec versions
Timo Rothenpieler [Tue, 26 Feb 2019 16:24:49 +0000 (17:24 +0100)]
configure: update minimum required ffnvcodec versions

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
3 months agoconfigure: pass windows-path to nvcc whenever cygpath is available
Timo Rothenpieler [Tue, 26 Feb 2019 16:09:26 +0000 (17:09 +0100)]
configure: pass windows-path to nvcc whenever cygpath is available

It might be using cl.exe on Windows, which does not understand Unix-Paths.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
3 months agoconfigure: deprecate cuda_sdk dependency option
Philip Langdale [Thu, 21 Feb 2019 03:57:53 +0000 (19:57 -0800)]
configure: deprecate cuda_sdk dependency option

With all of our existing users of cuda_sdk switched over to ffnvcodec,
we could remove cuda_sdk completely and say that we should no longer
add code that requires the full sdk, and rather insist that such code
only use ffnvcodec.

As discussed previously, the use of nvcc from the sdk is still
supported with a distinct option.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
3 months agoavfilter/vf_thumbnail_cuda: Switch to using ffnvcodec
Philip Langdale [Thu, 21 Feb 2019 03:57:52 +0000 (19:57 -0800)]
avfilter/vf_thumbnail_cuda: Switch to using ffnvcodec

This change switches the vf_thumbnail_cuda filter from using the
full cuda sdk to using the ffnvcodec headers and loader.

Most of the change is a direct mapping, but I also switched from
using texture references to using texture objects. This is supposed
to be the preferred way of using textures, and the texture object API
is the one I added to ffnvcodec.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
3 months agoavfilter/vf_scale_cuda: Switch to using ffnvcodec
Philip Langdale [Thu, 21 Feb 2019 03:57:51 +0000 (19:57 -0800)]
avfilter/vf_scale_cuda: Switch to using ffnvcodec

This change switches the vf_scale_cuda filter from using the
full cuda sdk to using the ffnvcodec headers and loader.

Most of the change is a direct mapping, but I also switched from
using texture references to using texture objects. This is supposed
to be the preferred way of using textures, and the texture object API
is the one I added to ffnvcodec.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
3 months agoavfilter/vf_yadif_cuda: Switch to using ffnvcodec
Philip Langdale [Thu, 21 Feb 2019 03:57:50 +0000 (19:57 -0800)]
avfilter/vf_yadif_cuda: Switch to using ffnvcodec

This change switches the vf_thumbnail_cuda filter from using the
full cuda sdk to using the ffnvcodec headers and loader.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
3 months agoconfigure: Add an explicit check and option for nvcc
Philip Langdale [Thu, 21 Feb 2019 03:57:49 +0000 (19:57 -0800)]
configure: Add an explicit check and option for nvcc

The use of nvcc to compile cuda kernels is distinct from the use of
cuda sdk libraries and linking against those libraries. We have
previously not bothered to distinguish these two cases because all
the filters that used cuda kernels also used the sdk. In the following
changes, I'm going to remove the sdk dependency from those filters,
but we need a way to ensure that nvcc is present and functioning, and
also a way to explicitly disable its use so that the filters are not
built.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
3 months agofate/proresenc_aw : add test for interlace and 444 encoding
Martin Vignali [Tue, 26 Feb 2019 10:58:00 +0000 (11:58 +0100)]
fate/proresenc_aw : add test for interlace and 444 encoding

3 months agoavcodec/proresenc_aw : fix sub_image_with_fill for interlaced encoding
Martin Vignali [Tue, 26 Feb 2019 10:54:23 +0000 (11:54 +0100)]
avcodec/proresenc_aw : fix sub_image_with_fill for interlaced encoding

used when width and/or height, not multiple of sclice dim

3 months agoavcodec/mips: [loongson] mmi optimizations for VP9 put and avg functions
gxw [Mon, 25 Feb 2019 10:13:51 +0000 (18:13 +0800)]
avcodec/mips: [loongson] mmi optimizations for VP9 put and avg functions

VP9 decoding speed improved about 60.5%(from 38fps to 61fps, tested on loongson 3A3000).

Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agomov: Fix start_time for streams with empty edits in the middle
Justin Ruggles [Fri, 22 Feb 2019 22:21:00 +0000 (17:21 -0500)]
mov: Fix start_time for streams with empty edits in the middle

Empty edits can occur at any position within the edit list except for at
the end. Empty edits in the middle should not impact the reported stream
start_time or the video PTS adjustment, so only include empty edits at
the start of the list in empty_edits_sum_duration.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 months agohttp: Do not try to make a new request when seeking past the end of the file
Justin Ruggles [Wed, 20 Feb 2019 14:52:43 +0000 (09:52 -0500)]
http: Do not try to make a new request when seeking past the end of the file

This avoids making invalid HTTP Range requests for a byte range past the
known end of the file during a seek. Those requests generally return a HTTP
response of 416 Range Not Satisfiable, which causes an error response.

Reference: https://tools.ietf.org/html/rfc7233

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 months agovaapi_encode_mpeg2: Add missing marker bit in time_code
Mark Thompson [Sun, 10 Feb 2019 19:47:02 +0000 (19:47 +0000)]
vaapi_encode_mpeg2: Add missing marker bit in time_code

We don't have anything useful to put in this field, but there is still
meant to be a marker bit in the middle of it.

3 months agovaapi_encode_mjpeg: Use common quality option
Mark Thompson [Sun, 10 Feb 2019 19:47:01 +0000 (19:47 +0000)]
vaapi_encode_mjpeg: Use common quality option

Doesn't change anything, but makes the behaviour better match that of the
other codecs (the CONSTANT_QUALITY_ONLY flag already ensures that CQP is
the only RC mode selectable for MJPEG).

3 months agovaapi_encode_vp9: Fix whitespace after previous patch
Mark Thompson [Sun, 10 Feb 2019 19:47:00 +0000 (19:47 +0000)]
vaapi_encode_vp9: Fix whitespace after previous patch

3 months agovaapi_encode_vp9: Enable support for more RC modes
Mark Thompson [Sun, 10 Feb 2019 19:46:59 +0000 (19:46 +0000)]
vaapi_encode_vp9: Enable support for more RC modes

3 months agovaapi_encode_vp8: Enable support for more RC modes
Mark Thompson [Sun, 10 Feb 2019 19:46:58 +0000 (19:46 +0000)]
vaapi_encode_vp8: Enable support for more RC modes

3 months agovaapi_encode_mpeg2: Enable support for more RC modes
Mark Thompson [Sun, 10 Feb 2019 19:46:57 +0000 (19:46 +0000)]
vaapi_encode_mpeg2: Enable support for more RC modes

Fixes #7650.

3 months agovaapi_encode_h265: Enable support for more RC modes
Mark Thompson [Sun, 10 Feb 2019 19:46:56 +0000 (19:46 +0000)]
vaapi_encode_h265: Enable support for more RC modes

Also fixes QP going out of range when modified by the quant factor/offset
values, and clarifies the QP behaviour for >8-bit modes.

3 months agovaapi_encode_h264: Enable support for more RC modes
Mark Thompson [Sun, 10 Feb 2019 19:46:55 +0000 (19:46 +0000)]
vaapi_encode_h264: Enable support for more RC modes

Also fixes QP going out of range when modified by the quant factor/offset
values.

3 months agovaapi_encode: Support more RC modes
Mark Thompson [Sun, 10 Feb 2019 19:46:54 +0000 (19:46 +0000)]
vaapi_encode: Support more RC modes

Allow setting the mode explicitly, and try to make a sensible choice
given the available parameters if not.

3 months agovaapi_encode: Do not zero access unit structures
Mark Thompson [Mon, 25 Feb 2019 23:24:23 +0000 (23:24 +0000)]
vaapi_encode: Do not zero access unit structures

Following b8c45bbcbc207293f955e838ea66106f4b65b1ac they contain allocated
unit arrays which will get leaked.  These operations were inconsistently
applied and never actually needed (the old uninit left them in the correct
state), so just drop them entirely.

3 months agolibavcodec/cbs: Stop needlessly reallocating the units array
Andreas Rheinhardt [Mon, 11 Feb 2019 22:47:43 +0000 (23:47 +0100)]
libavcodec/cbs: Stop needlessly reallocating the units array

Currently, a fragment's unit array is constantly reallocated during
splitting of a packet. This commit changes this: One can keep the units
array by distinguishing between the number of allocated and the number
of valid units in the units array.

The more units a packet is split into, the bigger the benefit.
So MPEG-2 benefits the most; for a video coming from an NTSC-DVD
(usually 32 units per frame) the average cost of cbs_insert_unit (for a
single unit) went down from 6717 decicycles to 450 decicycles (based
upon 10 runs with 4194304 runs each); if each packet consists of only
one unit, it went down from 2425 to 448; for a H.264 video where most
packets contain nine units, it went from 4431 to 450.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
3 months agofilter_units, trace_headers: Always use fragment from context
Andreas Rheinhardt [Mon, 11 Feb 2019 22:47:42 +0000 (23:47 +0100)]
filter_units, trace_headers: Always use fragment from context

This is in preparation for another patch that will stop needless
reallocations of the unit array.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
3 months agoavcodec/wcmv: Avoid copying frames if they are unchanged
Michael Niedermayer [Tue, 19 Feb 2019 18:05:10 +0000 (19:05 +0100)]
avcodec/wcmv: Avoid copying frames if they are unchanged

Improves speed of the testcase by about a factor of 10

Fixes: Timeout
Fixes: 13132/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664190616829952

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/wcmv: Copy/Init frame later
Michael Niedermayer [Tue, 19 Feb 2019 18:02:07 +0000 (19:02 +0100)]
avcodec/wcmv: Copy/Init frame later

Speeds up error cases
Fixes: 13132/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664190616829952

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/error_resilience: Use a symmetric check for skipping MV estimation
Michael Niedermayer [Tue, 19 Feb 2019 17:41:42 +0000 (18:41 +0100)]
avcodec/error_resilience: Use a symmetric check for skipping MV estimation

This speeds up the testcase by a factor of 4

Fixes: Timeout
Fixes: 13100/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV2_fuzzer-5767533905313792

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/mjpegdec: Fix stereo3d memleak
Michael Niedermayer [Sun, 17 Feb 2019 19:43:28 +0000 (20:43 +0100)]
avcodec/mjpegdec: Fix stereo3d memleak

Fixes: 12937/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_THP_fuzzer-5714945346371584

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/arbc: Check nb_tiles against dimensions
Michael Niedermayer [Sun, 17 Feb 2019 21:40:34 +0000 (22:40 +0100)]
avcodec/arbc: Check nb_tiles against dimensions

Fixes: Timeout
Fixes: 12967/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ARBC_fuzzer-5639021454163968

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agodoc: -report defaults to loglevel debug
Gyan Doshi [Mon, 25 Feb 2019 16:11:14 +0000 (21:41 +0530)]
doc: -report defaults to loglevel debug

3 months agoavformat/dashenc: Added comments
Karthick J [Tue, 19 Feb 2019 06:45:29 +0000 (12:15 +0530)]
avformat/dashenc: Added comments

Added comments regarding usage of certain movflags in streaming mode.

3 months agoavformat/dashenc: Added option to repeatedly publish master playlist
Karthick J [Tue, 19 Feb 2019 06:31:32 +0000 (12:01 +0530)]
avformat/dashenc: Added option to repeatedly publish master playlist

The master playlist can be published at a specified interval with this option

3 months agoavformat:matroskadec: use a define to mark the EBML length is unknown
Steve Lhomme [Sat, 23 Feb 2019 10:14:33 +0000 (11:14 +0100)]
avformat:matroskadec: use a define to mark the EBML length is unknown

Unifying the way the EBML unknown length is signaled, rather than using two
incompatible values. UINT64_MAX cannot be read as a valid EBML length with the
current code.

Co-authored-by: Steve Lhomme <robux4@ycbcr.xyz>
Co-authored-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavutil/cuda_check: Fix non-dynamic-loader implementation
Philip Langdale [Wed, 20 Feb 2019 03:12:19 +0000 (19:12 -0800)]
avutil/cuda_check: Fix non-dynamic-loader implementation

The function typedefs we were using are only present when using the
dynamic loader, which means compilation breaks for code directly
using the cuda SDK.

To fix this, let's just duplicate the function typedefs locally.
These are not going to change.

3 months agoavcodec/mlpdec: Insuffient typo
Michael Niedermayer [Sat, 23 Feb 2019 21:00:39 +0000 (22:00 +0100)]
avcodec/mlpdec: Insuffient typo

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/pnm: Avoid structure pointer dereferences in inner loop in pnm_get()
Michael Niedermayer [Thu, 21 Feb 2019 17:38:40 +0000 (18:38 +0100)]
avcodec/pnm: Avoid structure pointer dereferences in inner loop in pnm_get()

Improves speed from 5.4 to 4.2 seconds
Fixes: 13149/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGM_fuzzer-5760833622114304
Fixes: 13166/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGMYUV_fuzzer-5763216322330624

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/zmbv: obtain frame later
Michael Niedermayer [Thu, 21 Feb 2019 16:25:14 +0000 (17:25 +0100)]
avcodec/zmbv: obtain frame later

The frame is not needed that early so obtaining it later avoids
the costly operation in case other checks fail.

Fixes: Timeout (14sec -> 4sec)
Fixes: 13140/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ZMBV_fuzzer-5738330308739072

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>
3 months agoavcodec/jvdec: Check available input space before decode8x8()
Michael Niedermayer [Thu, 21 Feb 2019 00:09:43 +0000 (01:09 +0100)]
avcodec/jvdec: Check available input space before decode8x8()

Fixes: Timeout (78 sec -> 15 millisec)
Fixes: 13147/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JV_fuzzer-5727107827630080

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agortpenc_chain: forward strict_std_compliance flags to rtp muxer
Tristan Matthews [Fri, 22 Feb 2019 20:40:27 +0000 (15:40 -0500)]
rtpenc_chain: forward strict_std_compliance flags to rtp muxer

fixes: https://trac.ffmpeg.org/ticket/6713
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/proresenc_aw : indent after prev commit
Martin Vignali [Sat, 9 Feb 2019 17:45:04 +0000 (18:45 +0100)]
avcodec/proresenc_aw : indent after prev commit

3 months agoavcodec/proresenc_aw : add interlace encoding
Martin Vignali [Sat, 9 Feb 2019 17:42:44 +0000 (18:42 +0100)]
avcodec/proresenc_aw : add interlace encoding

3 months agoavcodec/proresenc_aw : merge funcs subimage_with_fill and subimage_alpha_with_fill
Martin Vignali [Sat, 9 Feb 2019 17:25:31 +0000 (18:25 +0100)]
avcodec/proresenc_aw : merge funcs subimage_with_fill and subimage_alpha_with_fill

3 months agoavcodec/proresenc_aw : move scantable to prores context
Martin Vignali [Sat, 9 Feb 2019 17:20:21 +0000 (18:20 +0100)]
avcodec/proresenc_aw : move scantable to prores context

3 months agoavcodec/proresenc_aw : move picture encoding after frame header write
Martin Vignali [Sat, 9 Feb 2019 17:16:50 +0000 (18:16 +0100)]
avcodec/proresenc_aw : move picture encoding after frame header write

3 months agoavcodec/proresenc_aw : simplify frame flags
Martin Vignali [Sat, 9 Feb 2019 17:15:59 +0000 (18:15 +0100)]
avcodec/proresenc_aw : simplify frame flags

3 months agoavfilter/vf_amplify: add tolerance option
Paul B Mahol [Fri, 22 Feb 2019 22:32:27 +0000 (23:32 +0100)]
avfilter/vf_amplify: add tolerance option

3 months agoMAINTAINERS: remove myself as a docs & trac maintainer
Lou Logan [Fri, 22 Feb 2019 19:49:31 +0000 (10:49 -0900)]
MAINTAINERS: remove myself as a docs & trac maintainer

It is no longer interesting.

Signed-off-by: Lou Logan <lou@lrcd.com>
3 months agodoc/formats: add reference to ffmpeg(1) stream specifiers as that docs is more complete
Marton Balint [Sat, 16 Feb 2019 18:08:53 +0000 (19:08 +0100)]
doc/formats: add reference to ffmpeg(1) stream specifiers as that docs is more complete

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavformat/mpegtsenc: add support for service and provider names with utf8 encoding
Marton Balint [Sun, 10 Feb 2019 21:08:45 +0000 (22:08 +0100)]
avformat/mpegtsenc: add support for service and provider names with utf8 encoding

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoffmpeg_filter: initialize sub2video.end_pts together with last_pts
Jan Ekström [Wed, 20 Feb 2019 18:54:11 +0000 (20:54 +0200)]
ffmpeg_filter: initialize sub2video.end_pts together with last_pts

This way re-initializations properly update end_pts, enabling
sub2video_heartbeat to call sub2video_update as expected to re-init
the sub2video AVFrame's contents and to feed a frame into the filter
chain.

This then fixes memory usage ballooning due to framesync waiting
for secondary input in case of no actual subtitle samples being present
for a while in source after a re-init occurs.

3 months agolavc/aarch64/h264dsp_init: Only use neon horizontal intra loopfilter for 4:2:0.
Carl Eugen Hoyos [Wed, 20 Feb 2019 22:56:21 +0000 (23:56 +0100)]
lavc/aarch64/h264dsp_init: Only use neon horizontal intra loopfilter for 4:2:0.

3 months agoppc/h264dsp: change loop filter stride argument to ptrdiff_t
James Almer [Wed, 20 Feb 2019 22:40:09 +0000 (19:40 -0300)]
ppc/h264dsp: change loop filter stride argument to ptrdiff_t

This was missed in d5d699ab6e6f8a8290748d107416fd5c19757a1b

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoarm/h264dsp: change loop filter stride argument to ptrdiff_t
James Almer [Wed, 20 Feb 2019 22:38:55 +0000 (19:38 -0300)]
arm/h264dsp: change loop filter stride argument to ptrdiff_t

This was missed in d5d699ab6e6f8a8290748d107416fd5c19757a1b

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoaarch64/h264dsp: change loop filter stride argument to ptrdiff_t
James Almer [Wed, 20 Feb 2019 22:38:46 +0000 (19:38 -0300)]
aarch64/h264dsp: change loop filter stride argument to ptrdiff_t

This was missed in d5d699ab6e6f8a8290748d107416fd5c19757a1b

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/h264_direct: Fix overflow in POC comparission
Michael Niedermayer [Wed, 13 Feb 2019 23:05:34 +0000 (00:05 +0100)]
avcodec/h264_direct: Fix overflow in POC comparission

Fixes: runtime error: signed integer overflow: 2147421862 - -33624063 cannot be represented in type 'int'
Fixes: 12885/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-5733516975800320

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agodoc/mailing-list-faq: add Mail Delivery info
Lou Logan [Wed, 20 Feb 2019 20:50:17 +0000 (11:50 -0900)]
doc/mailing-list-faq: add Mail Delivery info

Can be used as a vacation mode to enable/disable mail delivery
without needing to unsubscribe.

Signed-off-by: Lou Logan <lou@lrcd.com>
3 months agoMAINTAINERS: add myself for tonemap_opencl
Ruiling Song [Wed, 13 Feb 2019 01:29:10 +0000 (09:29 +0800)]
MAINTAINERS: add myself for tonemap_opencl

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agolavf/jacosubdec: compute subtitle duration correctly
Adam Sampson [Tue, 19 Feb 2019 09:20:31 +0000 (09:20 +0000)]
lavf/jacosubdec: compute subtitle duration correctly

When a JACOsub subtitle has two timestamps, they represent its start and
end times (http://unicorn.us.com/jacosub/jscripts.html#l_times); the
duration is the difference between the two, not the sum of the two.

The subtitle end times in the FATE test for this were wrong as a result;
fix them too. (This test is based on JACOsub's demo.txt, and the end
time computed for the last line using @ now matches what the comments
there say it should be.)

Also tested in practice using MPV, a LaserDisc, and some authentic 1993
JACOsub files.

Signed-off-by: Adam Sampson <ats@offog.org>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoMerge commit '90b15f60bf4919deaed66d868e18107eba371da7'
James Almer [Wed, 20 Feb 2019 18:50:06 +0000 (15:50 -0300)]
Merge commit '90b15f60bf4919deaed66d868e18107eba371da7'

* commit '90b15f60bf4919deaed66d868e18107eba371da7':
  srt: Set srto_sender flag to sender srt socket

Merged-by: James Almer <jamrial@gmail.com>
3 months agoMerge commit '156ea66c91b1986a87916f187216978d686725f6'
James Almer [Wed, 20 Feb 2019 18:47:24 +0000 (15:47 -0300)]
Merge commit '156ea66c91b1986a87916f187216978d686725f6'

* commit '156ea66c91b1986a87916f187216978d686725f6':
  h264/x86: sign extend int stride in deblock functions

This commit is a noop, see d5d699ab6e6f8a8290748d107416fd5c19757a1b

Merged-by: James Almer <jamrial@gmail.com>
3 months agoMerge commit 'eec93e57096aa4804862d62760442380c70d489b'
James Almer [Wed, 20 Feb 2019 18:43:30 +0000 (15:43 -0300)]
Merge commit 'eec93e57096aa4804862d62760442380c70d489b'

* commit 'eec93e57096aa4804862d62760442380c70d489b':
  libopenh264dec: Use a newer decoding entry point function

Merged-by: James Almer <jamrial@gmail.com>
3 months agoMerge commit '28a8b5413b64b831dfb8650208bccd8b78360484'
James Almer [Wed, 20 Feb 2019 18:42:01 +0000 (15:42 -0300)]
Merge commit '28a8b5413b64b831dfb8650208bccd8b78360484'

* commit '28a8b5413b64b831dfb8650208bccd8b78360484':
  h264/aarch64: add intra loop filter neon asm

Merged-by: James Almer <jamrial@gmail.com>
3 months agoMerge commit '846c3d6aca5484904e60946c4fe8b8833bc07f92'
James Almer [Wed, 20 Feb 2019 18:41:03 +0000 (15:41 -0300)]
Merge commit '846c3d6aca5484904e60946c4fe8b8833bc07f92'

* commit '846c3d6aca5484904e60946c4fe8b8833bc07f92':
  h264/aarch64: optimize neon loop filter

Merged-by: James Almer <jamrial@gmail.com>
3 months agoMerge commit 'd7f4f5c4a18a0c9e62635cfa6fe8a9302b413c01'
James Almer [Wed, 20 Feb 2019 18:28:25 +0000 (15:28 -0300)]
Merge commit 'd7f4f5c4a18a0c9e62635cfa6fe8a9302b413c01'

* commit 'd7f4f5c4a18a0c9e62635cfa6fe8a9302b413c01':
  checkasm/h264: add loop filter tests

Merged-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/h264dsp: change loop filter stride argument to ptrdiff_t
James Almer [Wed, 20 Feb 2019 18:23:15 +0000 (15:23 -0300)]
avcodec/h264dsp: change loop filter stride argument to ptrdiff_t