ffmpeg.git
2 years agolavfi: Add filters to run arbitrary OpenCL programs
Mark Thompson [Tue, 2 Jan 2018 23:17:32 +0000 (23:17 +0000)]
lavfi: Add filters to run arbitrary OpenCL programs

2 years agolavfi/opencl: Use filter device if no input device is available
Mark Thompson [Tue, 2 Jan 2018 23:12:57 +0000 (23:12 +0000)]
lavfi/opencl: Use filter device if no input device is available

This allows implementing sources as well as filters.

2 years agofftools/ffmpeg_opt: Remove a write-only variable.
Carl Eugen Hoyos [Sun, 7 Jan 2018 23:17:00 +0000 (00:17 +0100)]
fftools/ffmpeg_opt: Remove a write-only variable.

Fixes a warning:
fftools/ffmpeg_opt.c:2057:21: warning: variable 'file_oformat' set but not used

2 years agoavfilter/af_aiir: rename options, provide gains in separate option
Paul B Mahol [Sun, 7 Jan 2018 20:16:25 +0000 (21:16 +0100)]
avfilter/af_aiir: rename options, provide gains in separate option

This way it can be also used for other format.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_aiir: add support for alternative coefficients format
Paul B Mahol [Sun, 7 Jan 2018 08:43:50 +0000 (09:43 +0100)]
avfilter/af_aiir: add support for alternative coefficients format

Support for zeros/poles syntax on Z-plane.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavcodec/h264_slice: Do not attempt to render into frames already output
Michael Niedermayer [Wed, 3 Jan 2018 22:42:01 +0000 (23:42 +0100)]
avcodec/h264_slice: Do not attempt to render into frames already output

Fixes: null pointer dereference
Fixes: 4698/clusterfuzz-testcase-minimized-5096956322906112

This testcase does not reproduce the issue before 03b82b3ab9883cef017e513c7d0b3b986b3b3e7b

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 agocompat/os2threads: support static mutexes
KO Myung-Hun [Thu, 28 Dec 2017 13:03:56 +0000 (22:03 +0900)]
compat/os2threads: support static mutexes

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoconfigure: check SDL2 function with a header
KO Myung-Hun [Thu, 28 Dec 2017 14:41:30 +0000 (23:41 +0900)]
configure: check SDL2 function with a header

SDL2 uses SDLCALL to specify a calling convention. On OS/2, it's defined
to `_System' which is similar to `_cdecl' but does not prepend '_'.

After all, without a header, a function is used without `_System'. And
linker will try to `_func' but fail because the function is `func' not
`_func'.

Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoconfigure: remove check for SA_RESTART
James Almer [Sun, 7 Jan 2018 01:22:12 +0000 (22:22 -0300)]
configure: remove check for SA_RESTART

It's not used anymore.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agofate: remove ffm reference files
James Almer [Sun, 7 Jan 2018 01:21:35 +0000 (22:21 -0300)]
fate: remove ffm reference files

Missed in c17f4761443b471f47fa8f0a5bcff078cdff9479 and
8bbd8c8d52dbcb15773717d3512f8fb68e860bf2

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoChangelog: add VideoToolbox HEVC support
Aman Gupta [Sat, 6 Jan 2018 23:30:07 +0000 (15:30 -0800)]
Changelog: add VideoToolbox HEVC support

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agolavc/mediacodec_wrapper: allocate MediaCodec.BufferInfo once
Matthieu Bouron [Wed, 3 Jan 2018 12:54:34 +0000 (13:54 +0100)]
lavc/mediacodec_wrapper: allocate MediaCodec.BufferInfo once

2 years agolavc/mediacodecdec: remove mediacodec_process_data() indirection
Matthieu Bouron [Wed, 3 Jan 2018 12:10:58 +0000 (13:10 +0100)]
lavc/mediacodecdec: remove mediacodec_process_data() indirection

2 years agolavc/mediacodecdec: switch to new decoding API
Aman Gupta [Fri, 29 Dec 2017 01:33:14 +0000 (17:33 -0800)]
lavc/mediacodecdec: switch to new decoding API

Using the new API gives the decoder the ability to produce
N frames per input packet. This is particularly useful with
mpeg2 decoders on some android devices, which automatically
deinterlace video and produce one frame per field.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2 years agofate: remove missing references to ffm
James Almer [Sat, 6 Jan 2018 19:14:52 +0000 (16:14 -0300)]
fate: remove missing references to ffm

Missed in c17f4761443b471f47fa8f0a5bcff078cdff9479.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agolibavformat/network: fix function duplication
Rostislav Pehlivanov [Sat, 6 Jan 2018 18:59:46 +0000 (18:59 +0000)]
libavformat/network: fix function duplication

Since the function used to be exposed for ffserver's sake, it was renamed
to the same name as a system's aton function which caused a collision.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agolibavformat/mpjpeg: use "ffmpeg" instead of "ffserver" as boundary tag
Rostislav Pehlivanov [Sat, 21 Oct 2017 18:52:04 +0000 (19:52 +0100)]
libavformat/mpjpeg: use "ffmpeg" instead of "ffserver" as boundary tag

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agolibavformat: unexpose private ff_ functions needed by ffserver
Rostislav Pehlivanov [Sat, 6 Jan 2018 18:37:06 +0000 (18:37 +0000)]
libavformat: unexpose private ff_ functions needed by ffserver

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agolibavformat: remove the ff_rtp_get_local_rtcp_port function
Rostislav Pehlivanov [Sat, 21 Oct 2017 18:45:09 +0000 (19:45 +0100)]
libavformat: remove the ff_rtp_get_local_rtcp_port function

Only used by ffserver

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agolibavformat: unexpose the ff_inet_aton function
Rostislav Pehlivanov [Sat, 21 Oct 2017 18:40:50 +0000 (19:40 +0100)]
libavformat: unexpose the ff_inet_aton function

Used only by ffserver.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agolibavformat: remove the ffmenc and ffmdec muxer and demuxers
Rostislav Pehlivanov [Sat, 21 Oct 2017 18:38:59 +0000 (19:38 +0100)]
libavformat: remove the ffmenc and ffmdec muxer and demuxers

Used only by ffserver.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agoRemove the ffserver program
Rostislav Pehlivanov [Sat, 21 Oct 2017 18:31:44 +0000 (19:31 +0100)]
Remove the ffserver program

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agoavcodec/rkmpp : remove stream start retries before first frame.
LongChair [Tue, 2 Jan 2018 11:38:01 +0000 (12:38 +0100)]
avcodec/rkmpp : remove stream start retries before first frame.

those were needed because of some odd mpp behavior that seems to have
been fixed.

Makes the code cleaner.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2 years agoavcodec/rkmpp : Fix broken build due to missing control operation
LongChair [Sat, 6 Jan 2018 08:36:58 +0000 (09:36 +0100)]
avcodec/rkmpp : Fix broken build due to missing control operation

This patch is taking care of https://trac.ffmpeg.org/ticket/6834.
It seems that one of the control operations that was available to get
the free decoders input slots was removed.

There is another control operation to retrieve the used slots. Given
that the input slot count is hardcoded to 4 in mpp at this point,
replacing the old control operation by the other one.

This was tested on Rockchip ROCK64.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2 years agotools/uncoded_frame: remove use of AVStream.codec.
Nicolas George [Sat, 6 Jan 2018 13:34:00 +0000 (14:34 +0100)]
tools/uncoded_frame: remove use of AVStream.codec.

2 years agotools/uncoded_frame: use buffersink accessors.
Nicolas George [Sat, 6 Jan 2018 13:14:04 +0000 (14:14 +0100)]
tools/uncoded_frame: use buffersink accessors.

No longer access buffersink's link structure directly.

2 years agoavfilter: deprecate avfilter_link_get_channels()
James Almer [Fri, 5 Jan 2018 20:49:09 +0000 (17:49 -0300)]
avfilter: deprecate avfilter_link_get_channels()

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/av_biquads: scale a0 too
Paul B Mahol [Sat, 6 Jan 2018 13:58:00 +0000 (14:58 +0100)]
avfilter/av_biquads: scale a0 too

Fixes bug when using commands to alter coefficients.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoaiff: add explicit goto got_sound
Misty De Meo [Fri, 5 Jan 2018 09:06:49 +0000 (20:06 +1100)]
aiff: add explicit goto got_sound

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoadpcm: consume remainder after consuming XA chunks
Misty De Meo [Fri, 5 Jan 2018 09:06:48 +0000 (20:06 +1100)]
adpcm: consume remainder after consuming XA chunks

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agodoc/fate: Document how to upload samples to the fate suite
Michael Niedermayer [Mon, 1 Jan 2018 12:17:18 +0000 (13:17 +0100)]
doc/fate: Document how to upload samples to the fate suite

Suggested-by: Compn
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoRevert "avfilter: deprecate avfilter_link_get_channels()"
James Almer [Sat, 6 Jan 2018 01:13:28 +0000 (22:13 -0300)]
Revert "avfilter: deprecate avfilter_link_get_channels()"

This reverts commit 798dcf2432999f449c76c0e0fe2d7a4ee5eabbc2.

It was applied by accident before it could be reviewed.

2 years agoRevert "tools/uncoded_frame: remove usage of avfilter_link_get_channels()"
James Almer [Sat, 6 Jan 2018 01:12:14 +0000 (22:12 -0300)]
Revert "tools/uncoded_frame: remove usage of avfilter_link_get_channels()"

This reverts commit 01c21653eee53a353ae887a47cd2b48165902383.

It was applied by accident before it could be reviewed.

2 years agodoc/libav-merge: remove line about libavutil atomics API
James Almer [Sat, 6 Jan 2018 01:09:39 +0000 (22:09 -0300)]
doc/libav-merge: remove line about libavutil atomics API

See 89b84cb18b54d3af281643bcad8bba365a702e96.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agotools/uncoded_frame: remove usage of avfilter_link_get_channels()
James Almer [Fri, 5 Jan 2018 20:49:27 +0000 (17:49 -0300)]
tools/uncoded_frame: remove usage of avfilter_link_get_channels()

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter: deprecate avfilter_link_get_channels()
James Almer [Fri, 5 Jan 2018 20:49:09 +0000 (17:49 -0300)]
avfilter: deprecate avfilter_link_get_channels()

And move the channels field to the public section of the struct.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agofate: add PERSIST_RPARAM_A_RExt_Sony_3 hevc conformance test
James Almer [Tue, 10 Oct 2017 00:07:31 +0000 (21:07 -0300)]
fate: add PERSIST_RPARAM_A_RExt_Sony_3 hevc conformance test

The PERSIST_RPARAM_A_RExt_Sony_1 bitstream has an out-of-range value
and has therefore been superseded.
It is otherwise identical, and decodes the same.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/af_aiir: do not crash with invalid options
Paul B Mahol [Fri, 5 Jan 2018 18:55:09 +0000 (19:55 +0100)]
avfilter/af_aiir: do not crash with invalid options

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoIt has been replaced by C11 stdatomic.h and is now unused.
Anton Khirnov [Fri, 5 Jan 2018 17:06:02 +0000 (14:06 -0300)]
It has been replaced by C11 stdatomic.h and is now unused.

(cherry picked from commit 5cc0057f4910c8c72421b812c8f337ef6c43696c)
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec/error_resilience: remove unused header
James Almer [Fri, 5 Jan 2018 17:04:02 +0000 (14:04 -0300)]
avcodec/error_resilience: remove unused header

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter: use a mutex instead of atomics in avfilter_register()
James Almer [Thu, 4 Jan 2018 18:15:21 +0000 (15:15 -0300)]
avfilter: use a mutex instead of atomics in avfilter_register()

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavformat: use mutexes instead of atomics in av_register_{input,output}_format()
James Almer [Thu, 4 Jan 2018 18:12:53 +0000 (15:12 -0300)]
avformat: use mutexes instead of atomics in av_register_{input,output}_format()

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec/util: use a mutex instead of atomics in avcodec_register()
James Almer [Thu, 4 Jan 2018 18:11:31 +0000 (15:11 -0300)]
avcodec/util: use a mutex instead of atomics in avcodec_register()

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter: add arbitrary audio IIR filter
Paul B Mahol [Tue, 2 Jan 2018 13:30:54 +0000 (14:30 +0100)]
avfilter: add arbitrary audio IIR filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavcodec/dnxhddec: Check dc vlc
Michael Niedermayer [Wed, 3 Jan 2018 22:42:00 +0000 (23:42 +0100)]
avcodec/dnxhddec: Check dc vlc

Fixes: signed integer overflow: 1024 + 2147483640 cannot be represented in type 'int'
Fixes: 4671/clusterfuzz-testcase-minimized-6027464343027712

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>
2 years agoavfilter: rename variables in geq
Marc-Antoine Arnaud [Thu, 4 Jan 2018 07:50:51 +0000 (08:50 +0100)]
avfilter: rename variables in geq

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter: slice processing for geq
Marc-Antoine Arnaud [Thu, 4 Jan 2018 07:49:55 +0000 (08:49 +0100)]
avfilter: slice processing for geq

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter: reorder variable definition in geq
Marc-Antoine Arnaud [Thu, 30 Nov 2017 09:31:38 +0000 (10:31 +0100)]
avfilter: reorder variable definition in geq

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/parser: use a mutex instead of atomics in av_register_codec_parser()
James Almer [Thu, 4 Jan 2018 18:11:32 +0000 (15:11 -0300)]
avcodec/parser: use a mutex instead of atomics in av_register_codec_parser()

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/vf_framerate: calculate interpolation as integer
Marton Balint [Thu, 21 Dec 2017 23:18:25 +0000 (00:18 +0100)]
avfilter/vf_framerate: calculate interpolation as integer

It was truncated to int later on anyway. Fate test changes are due to rounding
instead of truncation.

Fixes fate test failures on x86-32 (gcc 4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.1))
after 090b740680f91e0f2bf07423c36df7166740e8f6.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoaiff: add support for XA ADPCM
Misty De Meo [Wed, 3 Jan 2018 08:14:22 +0000 (19:14 +1100)]
aiff: add support for XA ADPCM

Certain AIFF files encode XA ADPCM compressed audio using a chunk
with the tag `APCM`. Aside from this custom chunk type, they're
otherwise standard AIFF files. I've only observed these files in the
Sega Saturn game Sonic Jam so far.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavutil/log: use thread wrappers for the locking functionality
James Almer [Thu, 4 Jan 2018 04:11:43 +0000 (01:11 -0300)]
avutil/log: use thread wrappers for the locking functionality

w32threads and os2threads both support static mutex initialization now,
so don't limit it to pthreads only.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoffmpeg: use thread wrappers for the thread message functionality
James Almer [Thu, 4 Jan 2018 03:46:33 +0000 (00:46 -0300)]
ffmpeg: use thread wrappers for the thread message functionality

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoconfigure: update minimum required version of libvmaf
James Almer [Thu, 4 Jan 2018 04:34:14 +0000 (01:34 -0300)]
configure: update minimum required version of libvmaf

At least version 0.6.2 is needed since commit
df3222d4bb18cbceda443def17b1b29067ed6e3f.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agohttp: avoid logging reconnect warning if stream was aborted
wm4 [Thu, 4 Jan 2018 16:06:52 +0000 (17:06 +0100)]
http: avoid logging reconnect warning if stream was aborted

If the stream was aborted using the libavformat interrupt callback, we
don't want it to log the reconnect warning. (Exiting after logging this
warning worked well, so this is only for avoiding the ugly warning.)

2 years agohwcontext_dxva2: initialize D3DDISPLAYMODEEX correctly
wm4 [Thu, 4 Jan 2018 14:52:46 +0000 (15:52 +0100)]
hwcontext_dxva2: initialize D3DDISPLAYMODEEX correctly

2 years agolibavutil/hwcontext_dxva2: Add check for possible errors from GetAdapterDisplayModeEx
Humberto Ribeiro [Wed, 3 Jan 2018 23:22:15 +0000 (15:22 -0800)]
libavutil/hwcontext_dxva2: Add check for possible errors from GetAdapterDisplayModeEx

This prevents a possible crash in CreateDeviceEx when using faulty
response from GetAdapterDisplayModeEx and allows ffmpeg to fallback to
classic d3d9.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2 years agohttp: bump message level for reconnect message and log timeout
wm4 [Tue, 2 Jan 2018 16:17:41 +0000 (17:17 +0100)]
http: bump message level for reconnect message and log timeout

2 years agohttp: block while waiting for reconnecting
wm4 [Tue, 2 Jan 2018 16:05:03 +0000 (17:05 +0100)]
http: block while waiting for reconnecting

It makes no sense to return an error after the first reconnect, and then
somehow resume the next time it's called. Usually this will lead to
demuxer errors. Make reconnecting block instead, until it has either
successfully reconnected, or given up.

Also make the wait reasonably interruptible. Since there is no mechanism
for this in the API, polling is the best we can do. This behaves roughly
the same as other interruptible network functions in libavformat.

(The original code would work if it returned AVERROR(EAGAIN) or so,
which would make retry_transfer_wrapper() repeat the read call. But I
think having an explicit loop for this is better anyway.)

I also snuck in a fix for reconnect_at_eof. It has to check for
AVERROR_EOF, not 0.

2 years agoavfilter: add hilbert source FIR filter
Paul B Mahol [Mon, 1 Jan 2018 14:34:02 +0000 (15:34 +0100)]
avfilter: add hilbert source FIR filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agolavu/mem: Allow allocations close to max_alloc_size with av_fast_realloc().
Carl Eugen Hoyos [Tue, 2 Jan 2018 00:58:35 +0000 (01:58 +0100)]
lavu/mem: Allow allocations close to max_alloc_size with av_fast_realloc().

2 years agoopusenc_psy: disable stereo searches for mono streams
Rostislav Pehlivanov [Thu, 4 Jan 2018 02:52:40 +0000 (02:52 +0000)]
opusenc_psy: disable stereo searches for mono streams

Fixes a crash which happened when someone tried to encode mono.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agolavr: deprecate the entire library
Rostislav Pehlivanov [Mon, 25 Dec 2017 02:05:52 +0000 (02:05 +0000)]
lavr: deprecate the entire library

Deprecate the entire library. Merged years ago to provide compatibility
with Libav, it remained unmaintained by the FFmpeg project and duplicated
functionality provided by libswresample.

In order to improve consistency and reduce attack surface, as well as to ease
burden on maintainers, it has been deprecated. Users of this library are asked
to migrate to libswresample, which, as well as providing more functionality,
is faster and has higher accuracy.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agoavfilter: pass outlink to ff_get_audio_buffer()
Paul B Mahol [Wed, 3 Jan 2018 21:47:40 +0000 (22:47 +0100)]
avfilter: pass outlink to ff_get_audio_buffer()

This is more correct.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agolavc/audiotoolboxenc: fix noise in encoded audio
Jiejun Zhang [Wed, 3 Jan 2018 04:54:20 +0000 (12:54 +0800)]
lavc/audiotoolboxenc: fix noise in encoded audio

This fixes #6940

Although undocumented, AudioToolbox seems to require the data supplied
by the callback (i.e. ffat_encode_callback) being unchanged until the
next time the callback is called. In the old implementation, the
AVBuffer backing the frame is recycled after the frame is freed, and
somebody else (maybe the decoder) will write into the AVBuffer and
change the data. AudioToolbox then encodes some wrong data and noise
is produced. Retaining a frame reference solves this problem.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agolavfi/framesync: remove an invalid free.
Nicolas George [Tue, 2 Jan 2018 13:51:18 +0000 (14:51 +0100)]
lavfi/framesync: remove an invalid free.

2 years agolavfi/framesync: document frame ownership for dualinput.
Nicolas George [Tue, 2 Jan 2018 13:50:59 +0000 (14:50 +0100)]
lavfi/framesync: document frame ownership for dualinput.

2 years agoavfilter: add entropy filter
Paul B Mahol [Wed, 27 Dec 2017 17:51:23 +0000 (18:51 +0100)]
avfilter: add entropy filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agovf_paletteuse: Don't free the second frame from ff_framesync_dualinput_get_writable...
Derek Buitenhuis [Mon, 1 Jan 2018 16:28:37 +0000 (11:28 -0500)]
vf_paletteuse: Don't free the second frame from ff_framesync_dualinput_get_writable on error

This fixes a double free in he error case.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2 years agovf_paletteuse: Add error checking to apply_palette
Derek Buitenhuis [Mon, 1 Jan 2018 16:28:36 +0000 (11:28 -0500)]
vf_paletteuse: Add error checking to apply_palette

This fixes a segfault caused by passing NULL to ff_filter_frame
when an error occurs.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2 years agolavc/options: Remove unneeded header
Derek Buitenhuis [Wed, 27 Dec 2017 16:11:23 +0000 (11:11 -0500)]
lavc/options: Remove unneeded header

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2 years agoavcodec/utvideoenc: switch to planar RGB formats
Paul B Mahol [Sun, 31 Dec 2017 09:47:27 +0000 (10:47 +0100)]
avcodec/utvideoenc: switch to planar RGB formats

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavcodec/utvideodec: add support for UMH2, UMY2, UMH4, UMY4, UMRA, UMRG
Paul B Mahol [Fri, 29 Dec 2017 20:25:39 +0000 (21:25 +0100)]
avcodec/utvideodec: add support for UMH2, UMY2, UMH4, UMY4, UMRA, UMRG

These are new modes which are supposed to be more SIMD friendly.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/hlsenc: creation of variant streams in subdirectories
Vishwanath Dixit [Tue, 2 Jan 2018 02:46:48 +0000 (10:46 +0800)]
avformat/hlsenc: creation of variant streams in subdirectories

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
2 years agoavformat/hlsenc: configurable variant stream index position in filenames
Vishwanath Dixit [Tue, 2 Jan 2018 02:46:17 +0000 (10:46 +0800)]
avformat/hlsenc: configurable variant stream index position in filenames

2 years agoavformat/hlsenc: revamped master playlist url creation logic
Vishwanath Dixit [Tue, 2 Jan 2018 02:45:28 +0000 (10:45 +0800)]
avformat/hlsenc: revamped master playlist url creation logic

2 years agolavu/mem: Do not realloc in av_fast_realloc() if size == min_size.
Carl Eugen Hoyos [Sat, 30 Dec 2017 13:38:33 +0000 (14:38 +0100)]
lavu/mem: Do not realloc in av_fast_realloc() if size == min_size.

This can avoid OOM for min_size close to FFmpeg's arbitrary alloc limits.

2 years agolavf/mov: Use av_fast_realloc() in mov_read_stts().
Carl Eugen Hoyos [Sun, 31 Dec 2017 21:30:57 +0000 (22:30 +0100)]
lavf/mov: Use av_fast_realloc() in mov_read_stts().

Avoids large allocations for short files with invalid stts entry.
Fixes bugzilla 1102.

2 years agoavfilter/af_crystalizer: use outlink instead of inlink
Paul B Mahol [Mon, 1 Jan 2018 20:53:10 +0000 (21:53 +0100)]
avfilter/af_crystalizer: use outlink instead of inlink

Doesn't change anything but is more correct.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agolavc/Makefile: fix opus_parser dependencies
Rostislav Pehlivanov [Mon, 1 Jan 2018 19:55:25 +0000 (19:55 +0000)]
lavc/Makefile: fix opus_parser dependencies

Fix suggested by RiCON.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agoconfigure: bump year
Carl Eugen Hoyos [Mon, 1 Jan 2018 17:05:55 +0000 (18:05 +0100)]
configure: bump year

Happy new year!

2 years agoavformat/hls: release mem resource to fix memleak
Steven Liu [Sat, 30 Dec 2017 12:42:13 +0000 (20:42 +0800)]
avformat/hls: release mem resource to fix memleak

fix CID: 1426991

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2 years agoavfilter/af_afir: rework FIR gain measurement
Paul B Mahol [Sun, 31 Dec 2017 18:09:07 +0000 (19:09 +0100)]
avfilter/af_afir: rework FIR gain measurement

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agotcp: properly return EOF
wm4 [Sat, 30 Dec 2017 16:44:03 +0000 (17:44 +0100)]
tcp: properly return EOF

There is no POSIX error code for EOF - recv() signals EOF by simply
returning 0. But libavformat recently changed its conventions and
requires an explicit AVERROR_EOF, or it might get into an endless retry
loop, consuming 100% CPU while doing nothing.

2 years agolavf/concatdec: properly init streams timestamp parameters.
Nicolas George [Sat, 30 Dec 2017 11:17:08 +0000 (12:17 +0100)]
lavf/concatdec: properly init streams timestamp parameters.

pts_wrap_bits defaults to 33 (like MPEG), that causes valid
timestamps to be unwrapped and become invalid.
Inspired by a patch by Wu Zhiqiang <mymoeyard@gmail.com>.

2 years agoavformat/hls: ignore http_persistent for segments requring crypto
Aman Gupta [Fri, 29 Dec 2017 23:30:55 +0000 (15:30 -0800)]
avformat/hls: ignore http_persistent for segments requring crypto

Encrypted HLS segments have regular http:// urls, but open_input()
actually prefixes them with crypto+ before calling open_url(), so
they end up using the crypto protocol and not the http protocol.

This means invoking ff_http_do_new_request will fail, so we avoid
calling it in the first place. After the earlier http.c commit,
the failure results in a warning printed to the user. In earlier
versions, the failure would cause a segfault.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/exr: Check buf_size more completely
Michael Niedermayer [Fri, 29 Dec 2017 02:00:19 +0000 (03:00 +0100)]
avcodec/exr: Check buf_size more completely

Fixes: Out of heap array read
Fixes: 4683/clusterfuzz-testcase-minimized-6152313673613312

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/http: return EINVAL if ff_http_do_new_request is called with non-http URLContext
Aman Gupta [Fri, 29 Dec 2017 23:25:14 +0000 (15:25 -0800)]
avformat/http: return EINVAL if ff_http_do_new_request is called with non-http URLContext

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoopus: merge encoder and decoder bitallocation functions into one
Rostislav Pehlivanov [Sat, 30 Dec 2017 17:02:54 +0000 (17:02 +0000)]
opus: merge encoder and decoder bitallocation functions into one

There's no difference apart from which entropy coding functions get called.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agoavformat/dashenc: Persistent HTTP connections supported as an option
Karthick Jeyapal [Fri, 29 Dec 2017 10:12:32 +0000 (18:12 +0800)]
avformat/dashenc: Persistent HTTP connections supported as an option

Reviewed-by: Aman Gupta <aman@tmm1.net>
Reviewed-by: Steven Liu <lq@onvideo.cn>
2 years agoavformat/hlsenc, utils: Moved is_http_proto from hlsenc to utils for re-use
Karthick Jeyapal [Fri, 29 Dec 2017 10:11:09 +0000 (18:11 +0800)]
avformat/hlsenc, utils: Moved is_http_proto from hlsenc to utils for re-use

Reviewed-by: Aman Gupta <aman@tmm1.net>
Reviewed-by: Steven Liu <lq@onvideo.cn>
2 years agoavformat/dashenc: Addition of #EXT-X-MEDIA tag and AUDIO attribute
Karthick Jeyapal [Fri, 29 Dec 2017 05:47:53 +0000 (13:47 +0800)]
avformat/dashenc: Addition of #EXT-X-MEDIA tag and AUDIO attribute

This is required for AV playout from master.m3u8.
Otherwise master.m3u8 lists only video-only and/or audio-only streams.

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
2 years agoavformat/hlsplaylist: Audio rendition's name and defaultness made configurable
Karthick Jeyapal [Fri, 29 Dec 2017 05:47:12 +0000 (13:47 +0800)]
avformat/hlsplaylist: Audio rendition's name and defaultness made configurable

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
2 years agoavformat/hlsenc: Modularized audio rendition playlist write to allow reuse
Karthick Jeyapal [Fri, 29 Dec 2017 05:45:31 +0000 (13:45 +0800)]
avformat/hlsenc: Modularized audio rendition playlist write to allow reuse

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
2 years agoconfigure: libvmaf depends on pthreads.
Carl Eugen Hoyos [Sun, 26 Nov 2017 13:29:27 +0000 (14:29 +0100)]
configure: libvmaf depends on pthreads.

2 years agofate: Fix ffprobe dependency for fate-mov-guess-delay-*.
Carl Eugen Hoyos [Fri, 29 Dec 2017 00:54:59 +0000 (01:54 +0100)]
fate: Fix ffprobe dependency for fate-mov-guess-delay-*.

2 years agoavcodec/flacdec: Fix overflow in multiplication in decode_subframe_fixed()
Michael Niedermayer [Tue, 26 Dec 2017 22:24:44 +0000 (23:24 +0100)]
avcodec/flacdec: Fix overflow in multiplication in decode_subframe_fixed()

Fixes: signed integer overflow: 2 * 1629495328 cannot be represented in type 'int'
Fixes: 4716/clusterfuzz-testcase-minimized-5835915940331520

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/hevcdsp_template: Fix Invalid shifts in put_hevc_qpel_bi_w_h() and put_hevc_q...
Michael Niedermayer [Tue, 26 Dec 2017 22:24:45 +0000 (23:24 +0100)]
avcodec/hevcdsp_template: Fix Invalid shifts in put_hevc_qpel_bi_w_h() and put_hevc_qpel_bi_w_w()

Fixes: left shift of negative value -1
Fixes: 4690/clusterfuzz-testcase-minimized-6117482428366848

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/flacdec: avoid undefined shift
Michael Niedermayer [Tue, 26 Dec 2017 22:24:43 +0000 (23:24 +0100)]
avcodec/flacdec: avoid undefined shift

Fixes: shift exponent 32 is too large for 32-bit type 'unsigned int'
Fixes: 4688/clusterfuzz-testcase-minimized-6572210748653568

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/avio: check input URLContext value NULL
Steven Liu [Thu, 28 Dec 2017 04:07:22 +0000 (12:07 +0800)]
avformat/avio: check input URLContext value NULL

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Karthick Jeyapal <kjeyapal@akamai.com>