ffmpeg.git
22 months agoMAINTAINERS: add AVS2 section
hwren [Sat, 28 Jul 2018 03:20:48 +0000 (11:20 +0800)]
MAINTAINERS: add AVS2 section

Signed-off-by: hwren <hwrenx@126.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agovaapi_encode_h265: Ensure that ref pics are always in the RPS
Mark Thompson [Fri, 25 Jan 2019 19:54:27 +0000 (19:54 +0000)]
vaapi_encode_h265: Ensure that ref pics are always in the RPS

When making a new P-frame when B-frames are present the previous P-frame
is normally in the DPB because it will be referred to by subsequent
B-frames.  However, this is not true if there are no B-frames, or in edge
cases where a GOP ends with two P-frames.  Fix this by adding the direct
ref pics to the RPS explicitly.

Fixes #7699.

Tested-by: Ullysses A Eoff <ullysses.a.eoff@intel.com>
22 months agolavf/subviewerdec: Skip leading BOM.
Carl Eugen Hoyos [Wed, 23 Jan 2019 23:22:47 +0000 (00:22 +0100)]
lavf/subviewerdec: Skip leading BOM.

Fixes ticket #7661.

22 months agoavfilter/buffersrc: print relevant info when skipping filter reinit
Gyan Doshi [Fri, 25 Jan 2019 12:26:11 +0000 (17:56 +0530)]
avfilter/buffersrc: print relevant info when skipping filter reinit

The timestamp of the changed input frame as well as its relevant
properties can be examined by the user. Only applicable when
reinit_filter is disabled on the input stream.

22 months agolavf/cafdec: Do not fail for unknown atoms with negative size.
Carl Eugen Hoyos [Mon, 14 Jan 2019 23:22:50 +0000 (00:22 +0100)]
lavf/cafdec: Do not fail for unknown atoms with negative size.

The specification requires the demuxer to only read the data
atom up to its given size, this is necessary as atoms are
allowed at the end of the file.
This patch duplicates the behaviour of the QuickTime player.

22 months agoavcodec: add ARBC decoder
Paul B Mahol [Sun, 20 Jan 2019 10:18:38 +0000 (11:18 +0100)]
avcodec: add ARBC decoder

Thanks Kostya for great help in reversing binary.

22 months agoavcodec/vp6: select idct based (loosely) on number of coefficients decoded
Peter Ross [Sun, 13 Jan 2019 04:45:07 +0000 (15:45 +1100)]
avcodec/vp6: select idct based (loosely) on number of coefficients decoded

The VP3/4/5/6 reference decoders all use three IDCT versions: one for the
DC-only case, another for blocks with more than 10 coefficients, and an
optimised one for blocks with up to 10 AC coefficents. VP6 relies on the
sparse 10 coefficient version, and without it, IDCT drift occurs.

Fixes: https://trac.ffmpeg.org/ticket/1282

Signed-off-by: Peter Ross <pross@xvid.org>
22 months agoavcodec/vp6: use ff_vp3dsp_[hv]_loop_filter_12
Peter Ross [Sun, 13 Jan 2019 04:15:29 +0000 (15:15 +1100)]
avcodec/vp6: use ff_vp3dsp_[hv]_loop_filter_12

Partially fixes: https://trac.ffmpeg.org/ticket/1282

Signed-off-by: Peter Ross <pross@xvid.org>
22 months agoavcodec/vp6: use rounded shift for chroma motion vector calculation
Peter Ross [Thu, 10 Jan 2019 09:55:06 +0000 (20:55 +1100)]
avcodec/vp6: use rounded shift for chroma motion vector calculation

Partially fixes: https://trac.ffmpeg.org/ticket/1282

Signed-off-by: Peter Ross <pross@xvid.org>
22 months agoavcodec/vp3dsp: add 10 coefficient version of the VP3 IDCT
Peter Ross [Sun, 13 Jan 2019 07:37:28 +0000 (18:37 +1100)]
avcodec/vp3dsp: add 10 coefficient version of the VP3 IDCT

This version of the IDCT is used by the VP6 decoder.

Signed-off-by: Peter Ross <pross@xvid.org>
22 months agoavcodec/vp3dsp: add 12 pixel loop filter functions
Peter Ross [Sun, 6 Jan 2019 01:45:40 +0000 (12:45 +1100)]
avcodec/vp3dsp: add 12 pixel loop filter functions

Signed-off-by: Peter Ross <pross@xvid.org>
22 months agoavcodec/vp3dsp: move vp3 init loop filter function to vp3dsp
Peter Ross [Sun, 13 Jan 2019 03:55:53 +0000 (14:55 +1100)]
avcodec/vp3dsp: move vp3 init loop filter function to vp3dsp

This is also used by the VP6 decoder.

Signed-off-by: Peter Ross <pross@xvid.org>
22 months agolavf/vaapi_deinterlace: return error if mode unsupported
Zhong Li [Mon, 14 Jan 2019 07:29:54 +0000 (15:29 +0800)]
lavf/vaapi_deinterlace: return error if mode unsupported

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Fuwei Tang <fuweix.tang@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
22 months agolavc/qsvenc: enable QVBR mode
Zhong Li [Wed, 23 Jan 2019 11:16:17 +0000 (19:16 +0800)]
lavc/qsvenc: enable QVBR mode

QVBR mode is to use the variable bitrate control algorithm
with constant quality.
mfxExtCodingOption3 should be supported to enable QVBR mode.

It is neccesary to specify a max_rate for QVBR, else it may be ICQ mode.
Example usage: ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v
h264_qsv -global_quality 25 -maxrate 2M test_qvbr.mp4 -v verbose

Clip QVBR quality range to be [0, 51] as Mark's commments.
It is similar to qp range of CQP but possibly should be updated when VP8/VP9
encoding can be supported.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Zhong Li <zhong.li@intel.com>
22 months agoavfilter/afade+acrossfade: allow skipping fade on inputs
Gyan Doshi [Wed, 23 Jan 2019 08:05:23 +0000 (13:35 +0530)]
avfilter/afade+acrossfade: allow skipping fade on inputs

New fade curve value 'nofade' passes audio samples as-is.
Primarily useful in carrying out acrossfade without fades.

22 months agoavcodec/libx265: add support for ROI-based encoding
Guo, Yejun [Wed, 23 Jan 2019 16:11:05 +0000 (00:11 +0800)]
avcodec/libx265: add support for ROI-based encoding

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
22 months agolavf/supenc: Remove some unneeded casts.
Carl Eugen Hoyos [Thu, 24 Jan 2019 12:08:27 +0000 (13:08 +0100)]
lavf/supenc: Remove some unneeded casts.

22 months agolavf/movenc: Mention video_track_timescale as option to fix the timescale.
Carl Eugen Hoyos [Thu, 24 Jan 2019 11:52:50 +0000 (12:52 +0100)]
lavf/movenc: Mention video_track_timescale as option to fix the timescale.

Smarter improvements for this error message were suggested in the past
but this is certainly an improvement.

22 months agolibavfilter: add transpose_vaapi filter
Zachary Zhou [Thu, 17 Jan 2019 03:33:05 +0000 (11:33 +0800)]
libavfilter: add transpose_vaapi filter

Swap width and height when do clock/cclock rotation
Add reversal/hflip/vflip options

ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128
-hwaccel_output_format vaapi -i input.264 -vf "transpose_vaapi=clock_flip"
-c:v h264_vaapi output.h264

Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
22 months agovaapi_encode_vp9: Support more complex reference structures
Mark Thompson [Thu, 20 Dec 2018 20:40:00 +0000 (20:40 +0000)]
vaapi_encode_vp9: Support more complex reference structures

22 months agovaapi_encode_h265: Support more complex reference structures
Mark Thompson [Thu, 20 Dec 2018 20:39:59 +0000 (20:39 +0000)]
vaapi_encode_h265: Support more complex reference structures

The reference picture sets are now constructed directly from the DPB
information.

22 months agovaapi_encode_h264: Support more complex reference structures
Mark Thompson [Thu, 20 Dec 2018 20:39:58 +0000 (20:39 +0000)]
vaapi_encode_h264: Support more complex reference structures

22 months agovaapi_encode: Let the reconstructed frame pool be sized dynamically
Mark Thompson [Thu, 20 Dec 2018 20:39:57 +0000 (20:39 +0000)]
vaapi_encode: Let the reconstructed frame pool be sized dynamically

No supported encode driver requires the pool to be fixed-size, so just
remove this constraint.

22 months agovaapi_encode: Convert to send/receive API
Mark Thompson [Thu, 20 Dec 2018 20:39:56 +0000 (20:39 +0000)]
vaapi_encode: Convert to send/receive API

This attaches the logic of picking the mode of for the next picture to
the output, which simplifies some choices by removing the concept of
the picture for which input is not yet available.  At the same time,
we allow more complex reference structures and track more reference
metadata (particularly the contents of the DPB) for use in the
codec-specific code.

It also adds flags to explicitly track the available features of the
different codecs.  The new structure also allows open-GOP support, so
that is now available for codecs which can do it.

22 months agovaapi_encode: Allocate picture-private data in generic code
Mark Thompson [Thu, 20 Dec 2018 20:39:55 +0000 (20:39 +0000)]
vaapi_encode: Allocate picture-private data in generic code

22 months agocbs_h2645: Avoid memcpy when splitting fragment #2
Andreas Rheinhardt [Wed, 28 Nov 2018 00:24:10 +0000 (01:24 +0100)]
cbs_h2645: Avoid memcpy when splitting fragment #2

Now memcpy can be avoided for NAL units containing escapes, too.

Particularly improves performance for files with hardcoded black bars.
For such a file, time spent in cbs_h2645_split_fragment went down from
369410 decicycles to 327677 decicycles. (It were 379114 decicycles when
every NAL unit was copied.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
22 months agoh2645_parse: Make ff_h2645_packet_split reference-compatible
Andreas Rheinhardt [Wed, 28 Nov 2018 00:24:09 +0000 (01:24 +0100)]
h2645_parse: Make ff_h2645_packet_split reference-compatible

This is in preparation for a patch for cbs_h2645. Now the packet's
rbsp_buffer can be owned by an AVBuffer.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
22 months agolavc/g723_1enc: Set the default bitrate to 6300.
Carl Eugen Hoyos [Tue, 22 Jan 2019 11:22:23 +0000 (12:22 +0100)]
lavc/g723_1enc: Set the default bitrate to 6300.

22 months agolavf/hlsproto: Replace a wrong eol comma with a semicolon.
caohui [Wed, 23 Jan 2019 03:13:27 +0000 (11:13 +0800)]
lavf/hlsproto: Replace a wrong eol comma with a semicolon.

22 months agoavformat/img2enc: mention -frames:v in error message
Lou Logan [Tue, 15 Jan 2019 00:14:48 +0000 (15:14 -0900)]
avformat/img2enc: mention -frames:v in error message

Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Kieran O Leary <kieran.o.leary@gmail.com>
22 months agoavformat/concatdec: always re-calculate start time and duration
Marton Balint [Wed, 21 Nov 2018 23:59:45 +0000 (00:59 +0100)]
avformat/concatdec: always re-calculate start time and duration

This allows the underlying files to change their duration on subsequent
avformat context opens.

An example use case where this matters:

ffconcat version 1.0
file dummy.mxf
file dummy.mxf

ffmpeg -re -stream_loop -1 -i dummy.ffconcat -f sdl2 none

The user can seamlessly change the input by atomically replacing dummy.mxf.

v2: Set ConcatFile duration in read_header for all segments with known
durations because from now on we always recalculate the start time in
open_file, and an instant seek could have caused unset ConcatFile durations.

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoavformat/concatdec: fix cur_dts based duration calculation with nonzero stream start_time
Marton Balint [Wed, 21 Nov 2018 23:59:04 +0000 (00:59 +0100)]
avformat/concatdec: fix cur_dts based duration calculation with nonzero stream start_time

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agoavformat/concatdec: factorize the duration calculating function
Marton Balint [Wed, 21 Nov 2018 23:57:01 +0000 (00:57 +0100)]
avformat/concatdec: factorize the duration calculating function

Signed-off-by: Marton Balint <cus@passwd.hu>
22 months agolavc/qsvenc: set BRCParamMultiplier to aviod BRC overflow
Zhong Li [Mon, 14 Jan 2019 07:12:15 +0000 (15:12 +0800)]
lavc/qsvenc: set BRCParamMultiplier to aviod BRC overflow

Fix ticket #7663

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
22 months agoavcodec/mips: [loongson] optimize put_hevc_qpel_bi_hv_8 with mmi.
Shiyou Yin [Mon, 21 Jan 2019 10:10:25 +0000 (18:10 +0800)]
avcodec/mips: [loongson] optimize put_hevc_qpel_bi_hv_8 with mmi.

Optimize put_hevc_qpel_bi_hv_8 with mmi in the case width=4/8/12/16/24/32/48/64.
This optimization improved HEVC decoding performance 11.4%(2.01x to 2.24x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/mips: [loongson] optimize put_hevc_qpel_hv_8 with mmi.
Shiyou Yin [Mon, 21 Jan 2019 10:10:24 +0000 (18:10 +0800)]
avcodec/mips: [loongson] optimize put_hevc_qpel_hv_8 with mmi.

Optimize put_hevc_qpel_hv_8 with mmi in the case width=4/8/12/16/24/32/48/64.
This optimization improved HEVC decoding performance 11%(1.81x to 2.01x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/tests: Add codec_desc to .gitignore
FeRD (Frank Dana) [Mon, 21 Jan 2019 18:21:51 +0000 (13:21 -0500)]
avcodec/tests: Add codec_desc to .gitignore

The compiled libavcodec/tests/codec_desc was left out of that dir's
.gitignore when the test was added, so it shows up in 'git status'
as an untracked file if it's been built.

Signed-off-by: FeRD (Frank Dana) <ferdnyc@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavformat/dashenc: Added documentation for $ext$ identifier in filenames
Karthick J [Thu, 17 Jan 2019 09:36:56 +0000 (15:06 +0530)]
avformat/dashenc: Added documentation for $ext$ identifier in filenames

22 months agoavformat/dashenc: Format xs:datetime in millisecond precision
Karthick J [Thu, 17 Jan 2019 08:58:20 +0000 (14:28 +0530)]
avformat/dashenc: Format xs:datetime in millisecond precision

For low latency streaming even milliseconds matter!

22 months agoavcodec/prosumer: Error out if decompress() stops reading data
Michael Niedermayer [Sat, 12 Jan 2019 21:36:00 +0000 (22:36 +0100)]
avcodec/prosumer: Error out if decompress() stops reading data

if 0 is encountered in the LUT then decompress() will continue to output 0 bytes but never read more data.
Without a specification it is impossible to say if this is invalid or a feature.
None of the valid prosumer files tested cause a 0 to be read, so it is likely
not a intended feature.

Fixes: Timeout
Fixes: 11266/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5681827423977472

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/prosumer: Reduce lut size
Michael Niedermayer [Sat, 12 Jan 2019 21:29:27 +0000 (22:29 +0100)]
avcodec/prosumer: Reduce lut size

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/prosumer: Simplify code slightly in decompress()
Michael Niedermayer [Sat, 12 Jan 2019 20:56:14 +0000 (21:56 +0100)]
avcodec/prosumer: Simplify code slightly in decompress()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/tiff: Check for 12bit gray fax
Michael Niedermayer [Sat, 12 Jan 2019 18:37:18 +0000 (19:37 +0100)]
avcodec/tiff: Check for 12bit gray fax

Fixes: Assertion failure
Fixes: 11898/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5759794191794176

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavutil/imgutils: Optimize memset_bytes() by using av_memcpy_backptr()
Michael Niedermayer [Tue, 25 Dec 2018 22:15:20 +0000 (23:15 +0100)]
avutil/imgutils: Optimize memset_bytes() by using av_memcpy_backptr()

This is strongly based on code by Marton Balint, and depends on the previous commit

Fixes: Timeout
Fixes: 11502/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664893810769920
Before: Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664893810769920 in 11209 ms
After:  Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664893810769920 in  4104 ms

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavutil/mem: Optimize fill32() by unrolling and using 64bit
Michael Niedermayer [Thu, 17 Jan 2019 21:35:10 +0000 (22:35 +0100)]
avutil/mem: Optimize fill32() by unrolling and using 64bit

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/mips: [loongson] optimize put_hevc_pel_bi_pixels_8 with mmi.
Shiyou Yin [Fri, 18 Jan 2019 06:42:20 +0000 (14:42 +0800)]
avcodec/mips: [loongson] optimize put_hevc_pel_bi_pixels_8 with mmi.

Optimize put_hevc_pel_bi_pixels_8 with mmi in the case width=8/16/24/32/48/64.
This optimization improved HEVC decoding performance 2%(1.77x to 1.81x, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agolavc/hls: Cosmetics: Fix indentation for free_segment_list
Jun Zhao [Mon, 14 Jan 2019 15:42:09 +0000 (23:42 +0800)]
lavc/hls: Cosmetics: Fix indentation for free_segment_list

Commit 673d8cfd518 missed the indent

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
22 months agolavu/frame: Fix typo.
Carl Eugen Hoyos [Fri, 18 Jan 2019 11:34:19 +0000 (12:34 +0100)]
lavu/frame: Fix typo.

22 months agoavcodec/libx264: add support for ROI-based encoding
Guo, Yejun [Thu, 10 Jan 2019 08:54:30 +0000 (16:54 +0800)]
avcodec/libx264: add support for ROI-based encoding

This patch just enables the path from ffmpeg to libx264,
the more encoders can be added later.

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
22 months agoavutil: add ROI (Region Of Interest) data struct and bump version
Guo, Yejun [Thu, 10 Jan 2019 08:53:30 +0000 (16:53 +0800)]
avutil: add ROI (Region Of Interest) data struct and bump version

The encoders such as libx264 support different QPs offset for different MBs,
it makes possible for ROI-based encoding. It makes sense to add support
within ffmpeg to generate/accept ROI infos and pass into encoders.

Typical usage: After AVFrame is decoded, a ffmpeg filter or user's code
generates ROI info for that frame, and the encoder finally does the
ROI-based encoding.

The ROI info is maintained as side data of AVFrame.

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
22 months agoavfilter/vf_paletteuse: don't constantly free and realloc internal frames
James Almer [Tue, 15 Jan 2019 04:14:34 +0000 (01:14 -0300)]
avfilter/vf_paletteuse: don't constantly free and realloc internal frames

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: James Almer <jamrial@gmail.com>
22 months agoavfilter/extractplanes: add support for 12-bit YUVA formats
Gyan Doshi [Thu, 17 Jan 2019 09:31:11 +0000 (15:01 +0530)]
avfilter/extractplanes: add support for 12-bit YUVA formats

At present, 16-bit auto-scaled format results in incorrect alpha
extraction.

22 months agoavformat/hcom: check probe buffer size
Paul B Mahol [Wed, 16 Jan 2019 09:26:53 +0000 (10:26 +0100)]
avformat/hcom: check probe buffer size

22 months agoavcodec/dirac_arith: Treat overread as error
Michael Niedermayer [Tue, 8 Jan 2019 22:40:54 +0000 (23:40 +0100)]
avcodec/dirac_arith: Treat overread as error

Fixes: Timeout
Fixes: 11663/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5636791864918016

Before:Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5636791864918016 in 26006 ms
After: Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5636791864918016 in 106 ms

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/diracdec: Propagate errors from dirac_get_arith_uint()
Michael Niedermayer [Tue, 8 Jan 2019 22:29:38 +0000 (23:29 +0100)]
avcodec/diracdec: Propagate errors from dirac_get_arith_uint()

Testcase: 11663/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5636791864918016

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/ac3dec: Optimize frame start search
Michael Niedermayer [Tue, 8 Jan 2019 17:11:47 +0000 (18:11 +0100)]
avcodec/ac3dec: Optimize frame start search

Fixes: Timeout
Fixes: 11619/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AC3_FIXED_fuzzer-5632398021099520
Fixes: 11620/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AC3_fuzzer-5711996515778560
Fixes: 11658/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EAC3_fuzzer-5701006524940288

Before: Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AC3_FIXED_fuzzer-5632398021099520 in 20338 ms
After:  Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AC3_FIXED_fuzzer-5632398021099520 in 11825 ms

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/lzw: Check for end of input
Michael Niedermayer [Fri, 11 Jan 2019 21:38:35 +0000 (22:38 +0100)]
avcodec/lzw: Check for end of input

Fixes: Timeout
Fixes: 11873/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5093495044308992

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agolavd/iec61883: Fix the include path for poll.h.
Carl Eugen Hoyos [Tue, 15 Jan 2019 23:13:49 +0000 (00:13 +0100)]
lavd/iec61883: Fix the include path for poll.h.

22 months agolavf/rtpproto: Use the correct patch when including poll.h
Carl Eugen Hoyos [Mon, 14 Jan 2019 17:21:15 +0000 (18:21 +0100)]
lavf/rtpproto: Use the correct patch when including poll.h

Fixes a warning using musl:
In file included from libavformat/rtpproto.c:43:0:
/usr/local/musl/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h>

22 months agoavcodec/hcom: get rid of single line brackets
Paul B Mahol [Tue, 15 Jan 2019 10:34:11 +0000 (11:34 +0100)]
avcodec/hcom: get rid of single line brackets

22 months agoavformat: add HCOM demuxer
Paul B Mahol [Wed, 2 Jan 2019 16:47:30 +0000 (17:47 +0100)]
avformat: add HCOM demuxer

22 months agoavcodec: add HCOM decoder
Paul B Mahol [Wed, 2 Jan 2019 17:50:38 +0000 (18:50 +0100)]
avcodec: add HCOM decoder

22 months agoffmpeg_opt: Print a warning if more than one -vf/-af option was specified.
Carl Eugen Hoyos [Mon, 14 Jan 2019 12:34:22 +0000 (13:34 +0100)]
ffmpeg_opt: Print a warning if more than one -vf/-af option was specified.

Fixes ticket #4184.

22 months agolavf/mov: Do not fail hard for more invalid atoms.
Carl Eugen Hoyos [Mon, 14 Jan 2019 11:44:01 +0000 (12:44 +0100)]
lavf/mov: Do not fail hard for more invalid atoms.

This is what several other players do and what FFmpeg already does for the sidx atom.

Fixes ticket #7679.

22 months agoavcodec/tests/rangecoder: initialize array to avoid valgrind warning
Michael Niedermayer [Fri, 4 Jan 2019 01:46:29 +0000 (02:46 +0100)]
avcodec/tests/rangecoder: initialize array to avoid valgrind warning

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/gdv: Optimize and factorize scaling loops
Michael Niedermayer [Fri, 4 Jan 2019 18:51:04 +0000 (19:51 +0100)]
avcodec/gdv: Optimize and factorize scaling loops

Fixes: Timeout
Fixes: 11067/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5686623711264768

Before change: Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5686623711264768 in 34386 ms
After  change: Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5686623711264768 in 24327 ms

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoapi-h264-slice-test: fix arguments and help
Rafaël Carré [Thu, 10 Jan 2019 11:00:27 +0000 (12:00 +0100)]
api-h264-slice-test: fix arguments and help

This program only takes 2 arguments
Remove comment that was never right

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/vc1: fix B predictor validity for 4-MV MBs
Jerome Borsboom [Mon, 14 Jan 2019 08:05:24 +0000 (09:05 +0100)]
avcodec/vc1: fix B predictor validity for 4-MV MBs

The B predictor for 4-MV MBs in interlace field pictures is not used
for blocks 0 and 2 when the picture is 1 MB wide.

Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
22 months agoavcodec/vp3: ref_frame/ref_frames are only required when HAVE_THREADS=1
Peter Ross [Fri, 4 Jan 2019 02:06:07 +0000 (13:06 +1100)]
avcodec/vp3: ref_frame/ref_frames are only required when HAVE_THREADS=1

22 months agocheckasm/af_afir: relax the max allowed absolute difference
James Almer [Thu, 10 Jan 2019 23:33:06 +0000 (20:33 -0300)]
checkasm/af_afir: relax the max allowed absolute difference

Should fix failures on x86_32.

Signed-off-by: James Almer <jamrial@gmail.com>
22 months agoavfilter/af_anlmdn: add timeline support
Paul B Mahol [Sun, 13 Jan 2019 10:55:01 +0000 (11:55 +0100)]
avfilter/af_anlmdn: add timeline support

22 months agoavfilter: add maskfun filter
Paul B Mahol [Mon, 19 Nov 2018 12:11:24 +0000 (13:11 +0100)]
avfilter: add maskfun filter

22 months agolavc: Allow very high bitrates in AVCPBProperties after next version bump.
Carl Eugen Hoyos [Thu, 10 Jan 2019 21:23:39 +0000 (22:23 +0100)]
lavc: Allow very high bitrates in AVCPBProperties after next version bump.

22 months agolavc/tiff: Support CMYK images.
Carl Eugen Hoyos [Sat, 12 Jan 2019 16:27:48 +0000 (17:27 +0100)]
lavc/tiff: Support CMYK images.

Fixes ticket #3459.

22 months agolavc/psd: Support CMYK images.
Carl Eugen Hoyos [Fri, 11 Jan 2019 02:20:38 +0000 (03:20 +0100)]
lavc/psd: Support CMYK images.

Based on a05635e by Michael Niedermayer.

Fixes ticket #6797.

22 months agoavcodec/h264_slice: Fix integer overflow in implicit_weight_table()
Michael Niedermayer [Fri, 4 Jan 2019 19:00:38 +0000 (20:00 +0100)]
avcodec/h264_slice: Fix integer overflow in implicit_weight_table()

Fixes: signed integer overflow: 2 * 2132811760 cannot be represented in type 'int'
Fixes: 11156/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-6237685933408256

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/exr: set layer_match in all branches
Michael Niedermayer [Tue, 25 Dec 2018 20:30:54 +0000 (21:30 +0100)]
avcodec/exr: set layer_match in all branches

Otherwise it is left to the value from the previous iteration

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/exr: Check for duplicate channel index
Michael Niedermayer [Tue, 25 Dec 2018 17:41:58 +0000 (18:41 +0100)]
avcodec/exr: Check for duplicate channel index

Fixes: Out of memory
Fixes: 11582/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5730204559867904

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/vc1: fix decoding of old WMV3 format
Jerome Borsboom [Sat, 12 Jan 2019 15:14:00 +0000 (16:14 +0100)]
avcodec/vc1: fix decoding of old WMV3 format

The position of the second MV predicitor candidate is slightly different
for the old WMV3 format indicated by RES_RTM_FLAG. This patch fixes
decoding of niceday.wmv on the samples server.

Fixes: #6641

Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
22 months agoavcodec/vc1: shuffle calculation of MV predictor candidates
Jerome Borsboom [Fri, 11 Jan 2019 14:36:47 +0000 (15:36 +0100)]
avcodec/vc1: shuffle calculation of MV predictor candidates

The B predictor for 4-MV macroblocks is only out of bounds when
the A predictor is also out of bounds.

Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
22 months agoavfilter/af_anlmdn: rework how denoising strength is used
Paul B Mahol [Sat, 12 Jan 2019 14:33:39 +0000 (15:33 +0100)]
avfilter/af_anlmdn: rework how denoising strength is used

Make into account patch size.

22 months agoavcodec/dstdec: use appropriate alignment
Peter Ross [Mon, 24 Dec 2018 09:09:18 +0000 (20:09 +1100)]
avcodec/dstdec: use appropriate alignment

this was a typo in my original dst decoder. there is no requirement for
64-byte alignment here. the change does not affect decoder performance.

Signed-off-by: Peter Ross <pross@xvid.org>
22 months agolavc/hevc_parser: report detailed log when missing picture occurs
Linjie Fu [Fri, 11 Jan 2019 08:07:33 +0000 (16:07 +0800)]
lavc/hevc_parser: report detailed log when missing picture occurs

Report the detailed log with buf_size in parse_nal_units to provide
more information when picture could not be found.

Match the behaviour in h264_parser.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavcodec/nuv: add FF_CODEC_CAP_INIT_CLEANUP
Michael Niedermayer [Fri, 11 Jan 2019 01:15:08 +0000 (02:15 +0100)]
avcodec/nuv: add FF_CODEC_CAP_INIT_CLEANUP

Fixes: memleak
Fixes: 12244/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_NUV_fuzzer-5099447273390080

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
22 months agoavfilter/af_anlmdn: do not output more samples than received
Paul B Mahol [Fri, 11 Jan 2019 15:51:49 +0000 (16:51 +0100)]
avfilter/af_anlmdn: do not output more samples than received

22 months agodstdec: big-endian compatiblity
Peter Ross [Sun, 6 Jan 2019 10:38:47 +0000 (21:38 +1100)]
dstdec: big-endian compatiblity

22 months agointreadwrite: add AV_RL64A, AV_WL64A
Peter Ross [Mon, 7 Jan 2019 11:12:13 +0000 (22:12 +1100)]
intreadwrite: add AV_RL64A, AV_WL64A

macros for reading and writing 64-bit aligned little-endian values.

these macros are used by the DST decoder and give a performance boost
on platforms that where the compiler must guard against unaligned
memory access.

22 months agoavfilter/af_anlmdn: drain samples at end
Paul B Mahol [Fri, 11 Jan 2019 10:45:42 +0000 (11:45 +0100)]
avfilter/af_anlmdn: drain samples at end

22 months agoavfilter/af_anlmdn: do not trim first samples
Paul B Mahol [Fri, 11 Jan 2019 10:23:59 +0000 (11:23 +0100)]
avfilter/af_anlmdn: do not trim first samples

Instead denoise from start, assumming missing samples are silence.

22 months agoavfilter/af_anlmdn: log used parameters
Paul B Mahol [Fri, 11 Jan 2019 10:14:35 +0000 (11:14 +0100)]
avfilter/af_anlmdn: log used parameters

22 months agoavfilter/af_anlmdn: use lut table to calculate weights
Paul B Mahol [Thu, 10 Jan 2019 11:00:56 +0000 (12:00 +0100)]
avfilter/af_anlmdn: use lut table to calculate weights

22 months agoavfilter: add anlmdn filter x86 SIMD optimizations
Paul B Mahol [Wed, 9 Jan 2019 12:33:02 +0000 (13:33 +0100)]
avfilter: add anlmdn filter x86 SIMD optimizations

22 months agolavfi/f_select: Cosmetics, move a function.
Carl Eugen Hoyos [Thu, 10 Jan 2019 19:14:08 +0000 (20:14 +0100)]
lavfi/f_select: Cosmetics, move a function.

Silences a warning when only aselect was enabled:
libavfilter/f_select.c:421:12: warning: 'query_formats' defined but not used

22 months agolavfi/f_select: Fix aselect filter standalone compilation.
Carl Eugen Hoyos [Thu, 10 Jan 2019 19:10:50 +0000 (20:10 +0100)]
lavfi/f_select: Fix aselect filter standalone compilation.

22 months agolavfi/Makefile: Fix bwdif filter standalone compilation.
Carl Eugen Hoyos [Thu, 10 Jan 2019 19:02:26 +0000 (20:02 +0100)]
lavfi/Makefile: Fix bwdif filter standalone compilation.

22 months agoconfigure: Fix hymt decoder standalone compilation.
Carl Eugen Hoyos [Thu, 10 Jan 2019 18:58:34 +0000 (19:58 +0100)]
configure: Fix hymt decoder standalone compilation.

22 months agolavc/qsvenc: set pict_type to be I for IDR frames.
Zhong Li [Wed, 12 Dec 2018 07:44:18 +0000 (15:44 +0800)]
lavc/qsvenc: set pict_type to be I for IDR frames.

Signed-off-by: Zhong Li <zhong.li@intel.com>
22 months agolavc/qsvenc: add VDENC support for H264
Linjie Fu [Thu, 29 Nov 2018 06:14:22 +0000 (14:14 +0800)]
lavc/qsvenc: add VDENC support for H264

Add VDENC(lowpower mode) support for QSV H264

It's an experimental function(like lowpower in vaapi) with
some limitations:
- CBR/VBR require HuC which should be explicitly loaded via i915
module parameter(i915.enable_guc=2 for linux kernel version >= 4.16)

Use option "-low_power 1" to enable VDENC.
Add in dump_video_param() to show the status of VDENC in runtime log.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
22 months agoavfilter/af_anlmdn: ignore too small values
Paul B Mahol [Wed, 9 Jan 2019 20:00:16 +0000 (21:00 +0100)]
avfilter/af_anlmdn: ignore too small values

22 months agoavfilter: add anlmdn audio filter
Paul B Mahol [Sat, 19 May 2018 20:06:27 +0000 (22:06 +0200)]
avfilter: add anlmdn audio filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>