Commit Graph

95337 Commits

Author SHA1 Message Date
Paul B Mahol 4f4334bcbc avfilter/vf_waveform: fix typos which caused crash 2019-10-13 11:51:11 +02:00
Paul B Mahol a7fd127970 avfilter/vf_colorconstancy: fix overreads in gauss array
Fixes #8250
2019-10-12 19:07:51 +02:00
Paul B Mahol e923e6205e avfilter/vf_waveform: add yflat filter 2019-10-12 18:46:13 +02:00
Paul B Mahol 33fd82ae9e avfilter/vf_waveform: allow different cb for new modes 2019-10-12 17:57:23 +02:00
Paul B Mahol 42974eb13a avfilter/vf_waveform: add invert graticule 2019-10-12 17:44:52 +02:00
Paul B Mahol ecc1675368 avfilter/vf_waveform: add graticule enum 2019-10-12 16:02:34 +02:00
Matthieu Bouron 1921f866ec avformat/mov: parse sdtp atom and set the pkt disposable flag accordingly
Allows the creation of the sdtp atom while remuxing MP4 to MP4. This
atom is required by Apple devices (iPhone, Apple TV) in order to accept
2160p medias.
2019-10-12 14:36:15 +02:00
Andreas Rheinhardt def04022f4 avcodec/zmbvenc: Correct offset in buffer
zmbvenc allocates a buffer for a picture with padding on all four sides:
The stride is choosen so large that it already contains padding on the
right; the height also includes padding rows. The padding on the right
of each row is also reused as padding for the left of the next row. So
one still needs to add padding on the left for the first row. This is done
by offsetting the actual pointer used to access the picture from the
pointer returned by av_mallocz and the formula for this offset was
wrong, because it ignored that a pixel can take more than one byte when
calculating the offset resulting from the left padding of the first row.

This fixes accesses outside of the allocated buffer that were reported
in tickets #7980 and #7994. No writes were ever attempted outside of
the buffer.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-12 13:39:45 +02:00
Andreas Rheinhardt 223a2c2a60 fftools/ffmpeg: Improve streamcopy
do_streamcopy() has a packet that gets zero-initialized first, then gets
initialized via av_init_packet() after which some of its fields are
oerwritten again with the actually desired values (unless it's EOF): The
side data is copied into the packet with av_copy_packet_side_data() and
if the source packet is refcounted, the packet will get a new reference
to the source packet's data. Furthermore, the flags are copied and the
timestamp related fields are overwritten with new values.

This commit replaces this by using av_packet_ref() to both initialize
the packet as well as populate its fields with the right values (unless
it's EOF again in which case the packet will still be initialized). The
differences to the current approach are as follows:
a) There is no call to a deprecated function (av_copy_packet_side_data())
any more.
b) Several fields that weren't copied before are now copied from the source
packet to the new packet (e.g. pos). Some of them (the timestamp related
fields) may be immediately overwritten again and some don't seem to be
used at all (e.g. pos), but in return using av_packet_ref() allows to forgo
the initializations.
c) There was no check for whether copying side data fails or not. This
has been changed: Now the program is exited in this case.

Using av_packet_ref() does not lead to unnecessary copying of data,
because the source packets are already always refcounted (they originate
from av_read_frame()).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-12 13:39:45 +02:00
Michael Niedermayer 2c7975fe6f avcodec/qdmc: Check input space in qdmc_get_vlc()
Fixes: Timeout (125sec -> 0.4sec)
Fixes: 18059/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_QDMC_fuzzer-5656195825664000

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-12 13:21:50 +02:00
Moritz Barsnick f76a899abc avformat/mpjpegdec: ensure seekback for latest chunk
Not only the first, but each latest chunk must be cached to allow
seekback after finding the mime boundary.

Fixes trac #5023 and #5921.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-12 13:21:50 +02:00
Moritz Barsnick 1ea44a55fe avformat/mpjpegdec: fix strict boundary search string
According to RFC1341, the multipart boundary indicated by the
Content-Type header must be prepended by CRLF + "--", and followed
by CRLF. In the case of strict MIME header boundary handling, the
"--" was forgotten to add.

Fixes trac #7921.

A side effect is that this coincidentally breaks enforcement of
strict MIME headers against servers running motion < 3.4.1, where
the boundary announcement in the HTTP headers incorrectly used the
prefix "--", which exactly matched this bug's behavior.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-12 13:21:50 +02:00
Moritz Barsnick a3846fe69b avformat/mpjpegdec: fix finding multipart boundary parameter
The string matching function's return value was evaluated incorrectly.

Fixes trac #7920.

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-12 13:21:50 +02:00
Paul B Mahol 961d6493e8 avutil/eval: add sgn() 2019-10-12 10:13:29 +02:00
James Almer 72704cbff4 avformat/dv: free all allocated structs on dv_read_header failure
Also propagate proper AVERROR codes while at it.

Fixes ticket #8230.

Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-10-11 20:38:36 -03:00
OvchinnikovDmitrii 27da30addd libavcodec/amfenc_h264.c: Changed loop filter flag default value.
The value has been changed to match the recommended(by AMF Encoder team)
2019-10-11 20:30:46 -03:00
Paul B Mahol 71d9ae11a5 avfilter/vf_signalstats: fix stack buffer overflow
Fixes #8249
2019-10-11 13:32:24 +02:00
Paul B Mahol 0e68e8c93f avfilter/vf_w3fdif: deny processing small videos
Fixes #8243
2019-10-11 12:55:13 +02:00
Paul B Mahol 0b56723874 avfilter/vf_bitplanenoise: fix overreads
Fixes #8244
2019-10-11 12:42:13 +02:00
Paul B Mahol b62f7e243c avfilter/vf_deflicker: fix invalid access
Fixes #8253
2019-10-11 12:23:26 +02:00
Paul B Mahol 7ad69a73f3 avfilter/vf_waveform: better guard against picking wrong pixel format
Fixes #8252
2019-10-11 12:07:54 +02:00
Paul B Mahol e787f8fd7e avfilter/vf_neighbor: check if width is 1
Fixes #8242
2019-10-11 11:19:00 +02:00
Paul B Mahol 1331e00179 avfilter/vf_floodfill: finish early if source and destination fill matches
Fixes #8236
2019-10-10 21:52:51 +02:00
Paul B Mahol b67af536be avfilter/vf_random: fix crash
Fixes #8235.
2019-10-10 21:04:56 +02:00
Michael Niedermayer f6df99dba1 avcodec/dstdec: Check for input exhaustion
Fixes: Timeout (239sec -> 16sec)
Fixes: 17811/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DST_fuzzer-5715508149616640

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-10 14:34:20 +02:00
Michael Niedermayer a5d29812ec avcodec/wmaprodec: Fix cleanup on error
Fixes: memleaks
Fixes: 18023/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_XMA2_fuzzer-5642535011090432

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-10 14:34:20 +02:00
Michael Niedermayer 5de19160a3 avcodec/pcm: Check bits_per_coded_sample
Fixes: shift exponent -2 is negative
Fixes: 17736/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PCM_F16LE_fuzzer-5742815929171968
Fixes: 17998/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PCM_F24LE_fuzzer-5716980383875072

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-10 14:34:20 +02:00
Limin Wang 6d18b62db9 avcodec/magicyuv: remove duplicate code
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-10 14:34:20 +02:00
Michael Niedermayer b3c25263d1 avcodec/scpr: Check minimum size of type 17
Improves: Timeout (85sec -> 46sec)
Improves: 17644/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5715704283660288

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-10 14:34:19 +02:00
Michael Niedermayer 080819b3b4 avcodec/exr: Allow duplicate use of channel indexes
Fixes: Ticket #8203

Reported-by: durandal_1707
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-10 14:34:19 +02:00
Michael Niedermayer 4a3303d520 avcodec/fitsdec: Fail on 0 naxisn
Fixes: Timeout (100+ sec -> 23ms)
Fixes: 17769/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FITS_fuzzer-5678314672357376

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-10 14:34:19 +02:00
Steven Liu a76a516e76 avfilter/vf_delogo: make the interp value compute method simple
because the interp >= 0UL comparison of an unsigned value is always true
fix CID: 1454642

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-10-10 10:27:00 +08:00
Steven Liu aea82dfe22 avfilter/vf_delogo: add auto set the area inside of the frame
when the area outside of the frame, then use expr should
give user warning message and auto set to the area inside of the frame.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-10-10 10:26:57 +08:00
Steven Liu 9f0b9ae8bd avformat/iff: fix memleak when get st->codecpar->extradata failed in iff_read_header
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-10-10 09:54:48 +08:00
Steven Liu 6f84c1e907 avformat/jvdec: fix memleak when read_header failed
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-10-10 09:54:42 +08:00
Jun Zhao da0c0c7247 lavfi/hqdn3d: add slice thread optimization
Enabled one thread per plane, used the test command for 1080P video
(YUV420P format) as follow:

ffmpeg -i 1080p.mp4 -an -vf hqdn3d -f null /dev/nul

This optimization improved the performance about 30% in 1080P YUV420P
case (from 110fps to 143fps), also pass the framemd5 check and FATE.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Moritz Barsnick <barsnick@gmx.net>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-10-10 09:33:09 +08:00
Jun Zhao 7ab4fbdebc lavfi/v360: remove unnecessary cast for void *
Remove unnecessary cast for void * pointer.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-10-10 09:10:02 +08:00
Jun Zhao cc52815b82 lavfi/remap: remove unnecessary cast for void *
Remove unnecessary cast for void * pointer.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-10-10 09:09:20 +08:00
Jun Zhao a0e03589d4 lavfi/lenscorrection: remove unnecessary cast for void *
Remove unnecessary cast for void * pointer.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-10-10 09:01:24 +08:00
Jun Zhao 88a9998fe8 lavfi/colorspace: typedef ThreadData as all other filters
typedef ThreadData as all other filters.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-10-10 09:00:15 +08:00
Paul B Mahol 1cdb7c5839 doc/filters: add more examples for afftfilt 2019-10-09 19:03:45 +02:00
Paul B Mahol 3d262f9f32 avfilter/af_anlms: increase max limit for mu 2019-10-09 18:13:55 +02:00
Paul B Mahol 1ebac3cda9 avfilter/af_adelay: fix buggy behaviour 2019-10-09 09:56:33 +02:00
Paul B Mahol 24b6e968a2 doc/filters: document atempo command 2019-10-09 09:33:16 +02:00
Paul B Mahol 29327794b0 doc/filters: mention rubberband supported commands 2019-10-09 09:30:25 +02:00
Linjie Fu 5345965b3f lavc/qsvdec: Add GPU-accelerated memory copy support
GPU copy enables or disables GPU accelerated copying between video
and system memory. This may lead to a notable performance improvement.
Memory must be sequent and aligned with 128x64.

CMD:
ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv
                    -gpu_copy on -i input.h264 -f null -
or:
ffmpeg -c:v h264_qsv -gpu_copy on -i input.h264 -f null -

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: ChaoX A Liu <chaox.a.liu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-10-09 11:27:34 +08:00
Zhong Li 949a1b3e2f lavc/qsv: remove vaapi device free function
It is not needed since av_buffer_unref() will call it internally

Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-10-09 10:44:04 +08:00
Raphaël Zumer 9d92403add avformat/ivfdec: Change the length field to 32 bits
Signed-off-by: Raphaël Zumer <rzumer@tebako.net>
2019-10-08 21:45:00 -04:00
Raphaël Zumer d3807467b2 avformat/ivfenc: Change the length fields to 32 bits
There is no change in the encoded bitstream, but this
ensures that the written field length is consistent
with the reference implementation.

Unused bytes are zeroed out for backwards compatibility.

Signed-off-by: Raphaël Zumer <rzumer@tebako.net>
2019-10-08 21:44:41 -04:00
Raphaël Zumer eeb1c515a8 avformat/ivfenc: Comment the length field encoding process
Signed-off-by: Raphaël Zumer <rzumer@tebako.net>
2019-10-08 21:44:36 -04:00