ffmpeg.git
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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.)

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

21 months 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>
21 months 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

21 months 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.

21 months 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>
21 months 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().

21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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.

21 months 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.

21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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

21 months 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

21 months 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.

21 months 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.

21 months 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>
21 months 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>
21 months agoconfigure: bump year
Carl Eugen Hoyos [Mon, 1 Jan 2018 17:05:55 +0000 (18:05 +0100)]
configure: bump year

Happy new year!

21 months 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>
21 months 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>
21 months 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.

21 months 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>.

21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months agoconfigure: libvmaf depends on pthreads.
Carl Eugen Hoyos [Sun, 26 Nov 2017 13:29:27 +0000 (14:29 +0100)]
configure: libvmaf depends on pthreads.

21 months 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-*.

21 months 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>
21 months 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>
21 months 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>
21 months 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>
21 months agolavc/jpeg2000dec: Support reading 64-bit atom size.
Carl Eugen Hoyos [Wed, 27 Dec 2017 22:18:58 +0000 (23:18 +0100)]
lavc/jpeg2000dec: Support reading 64-bit atom size.

Fixes ticket #6935.

21 months agolavfi/minterpolate: Split struct Pixel to allow higher resolutions.
Carl Eugen Hoyos [Sun, 3 Dec 2017 04:26:25 +0000 (05:26 +0100)]
lavfi/minterpolate: Split struct Pixel to allow higher resolutions.

Raises the maximum resolution from 2716x2707 to approximately 4096x4095.

Fixes ticket #6795.

21 months agoMerge commit 'c6558e8840fbb2386bf8742e4d68dd6e067d262e'
James Almer [Thu, 28 Dec 2017 00:09:45 +0000 (21:09 -0300)]
Merge commit 'c6558e8840fbb2386bf8742e4d68dd6e067d262e'

* commit 'c6558e8840fbb2386bf8742e4d68dd6e067d262e':
  x264: Support version 153

See
2a111c99a60fdf4fe5eea2b073901630190c6c93
7e60c74329353db28db00552028bc88cd2a52346

Merged-by: James Almer <jamrial@gmail.com>
21 months agoMerge commit '2beba58e0e4bda688bf96e12413231607ceafdd4'
James Almer [Thu, 28 Dec 2017 00:05:11 +0000 (21:05 -0300)]
Merge commit '2beba58e0e4bda688bf96e12413231607ceafdd4'

* commit '2beba58e0e4bda688bf96e12413231607ceafdd4':
  mmaldec: Fix compilation after 2fcb0090

This commit is a noop, see 758fbc54fef2f31957b5c5f22e05e5fd9b04f631

Merged-by: James Almer <jamrial@gmail.com>
21 months agoMerge commit 'ddea22a684611c1fec9d8b5c70d835e983a9252e'
James Almer [Wed, 27 Dec 2017 23:56:13 +0000 (20:56 -0300)]
Merge commit 'ddea22a684611c1fec9d8b5c70d835e983a9252e'

* commit 'ddea22a684611c1fec9d8b5c70d835e983a9252e':
  avconv: Use codec hardware config to configure hwaccels
  lavc: Mark all AVHWAccel structures as const
  lavc: Delete all fake hwaccels
  lavc: Remove register mechanism for hwaccels
  lavc: Deprecate av_hwaccel_next() and av_register_hwaccel()
  lavc: Use hardware config information in ff_get_format()
  webp: Fix alpha initialisation
  lavc: Add hardware config metadata for decoders supporting hardware output
  lavc: Add codec metadata to indicate hardware support

This commit is a noop, see
24cc0a53e99e281b0ff502e82e7cf857111eca3f
758fbc54fef2f31957b5c5f22e05e5fd9b04f631
9f00fa536938130e3c7ad2640a61795770d419a1
67e81d79ccfc6713c797ddb19a3b8aea476c947b
3536a3efb9fde88d34d526a51b1080247326cd6e
9bd326ac465db2eee47301a1225d55dffd7bfe93
da4e02b1961572c15d7cd6a701d153155f196477
3a71bcc213f223428622ac3750fe1a923f2f3ab4
b0cd14fb1dab4b044f7fe6b53ac635409849de77

Merged-by: James Almer <jamrial@gmail.com>
21 months agoconfigure: add missing avcodec dep to avfilter for de/convolve filters
James Almer [Wed, 27 Dec 2017 18:38:13 +0000 (15:38 -0300)]
configure: add missing avcodec dep to avfilter for de/convolve filters

21 months agox264: Support version 153
Luca Barbato [Tue, 26 Dec 2017 11:32:42 +0000 (12:32 +0100)]
x264: Support version 153

It has native simultaneus 8 and 10 bit support.

21 months agoconfigure: note (de)convolve filter dependency
Paul B Mahol [Wed, 27 Dec 2017 11:31:43 +0000 (12:31 +0100)]
configure: note (de)convolve filter dependency

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavfilter: add deconvolve filter
Paul B Mahol [Mon, 25 Dec 2017 14:59:44 +0000 (15:59 +0100)]
avfilter: add deconvolve filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavfilter/vf_convolve: remove padding, its unused and not needed
Paul B Mahol [Wed, 27 Dec 2017 10:10:12 +0000 (11:10 +0100)]
avfilter/vf_convolve: remove padding, its unused and not needed

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavfilter/vf_convolve: cosmetics
Paul B Mahol [Wed, 27 Dec 2017 10:08:57 +0000 (11:08 +0100)]
avfilter/vf_convolve: cosmetics

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agolavc: remove uneffective attribute_deprecated on enum
wm4 [Wed, 27 Dec 2017 02:47:28 +0000 (03:47 +0100)]
lavc: remove uneffective attribute_deprecated on enum

Does not work. Even emits a warning with some compilers that the
attribute does not work on enums. It's likely that there is way to make
it work, but not worth the trouble.

21 months agoavformat/hls: enable http_multiple only for http/1.1 servers
Aman Gupta [Tue, 26 Dec 2017 04:37:55 +0000 (20:37 -0800)]
avformat/hls: enable http_multiple only for http/1.1 servers

Some http/1.0 implementations, like python's SimpleHTTPServer, can only support one client connection at a time. Making a second request while the first is still connected leads to a deadlock.

This change enables multiple connections for http/1.1 servers only, which need to support keepalive by default and should have no problem with concurrent requests.

Signed-off-by: Aman Gupta <aman@tmm1.net>
21 months agoavformat/http: export http_version from response
Aman Gupta [Tue, 26 Dec 2017 04:21:15 +0000 (20:21 -0800)]
avformat/http: export http_version from response

Can be used by the api user to figure out what http features the server supports based on the response received.

Signed-off-by: Aman Gupta <aman@tmm1.net>
21 months agoavformat/hls: respect http_persistent only for http playlist urls
Aman Gupta [Tue, 26 Dec 2017 02:25:13 +0000 (18:25 -0800)]
avformat/hls: respect http_persistent only for http playlist urls

Fixes a segfault when reading a live playlist (without end tag) from non-http url (like a file on disk).

Signed-off-by: Aman Gupta <aman@tmm1.net>
21 months agoavformat/http: avoid ff_http_do_new_request after http/1.0 response
Aman Gupta [Mon, 25 Dec 2017 19:35:26 +0000 (11:35 -0800)]
avformat/http: avoid ff_http_do_new_request after http/1.0 response

This makes do_new_request fail early when dealing with a http/1.0 server, avoiding unnecessary "reconnecting" warnings shown to the user.

Signed-off-by: Aman Gupta <aman@tmm1.net>
21 months agoavformat/hls: return AVERROR_PROTOCOL_NOT_FOUND when http protocol is not available
Aman Gupta [Mon, 25 Dec 2017 19:33:06 +0000 (11:33 -0800)]
avformat/hls: return AVERROR_PROTOCOL_NOT_FOUND when http protocol is not available

Fixes compile error when building with network or protocols disabled.

This code would never be reached (because the demuxer fails much earlier on http playlists or segments), so it doesn't matter much what we do here as long as it compiles.

Signed-off-by: Aman Gupta <aman@tmm1.net>
21 months agoavformat/hls: remove repeated http proto_name checks in open_url()
Aman Gupta [Tue, 26 Dec 2017 22:29:03 +0000 (14:29 -0800)]
avformat/hls: remove repeated http proto_name checks in open_url()

Signed-off-by: Aman Gupta <aman@tmm1.net>
21 months agoavcodec/libx264: set supported pix_fmts at runtime rather than build time
James Almer [Tue, 26 Dec 2017 22:40:27 +0000 (19:40 -0300)]
avcodec/libx264: set supported pix_fmts at runtime rather than build time

This partially reverts a change in behavior introduced in 2a111c99a60fdf4fe5eea2b073901630190c6c93.

Signed-off-by: James Almer <jamrial@gmail.com>
21 months agompeg4videodec: Fix unused variable warning
Mark Thompson [Thu, 21 Dec 2017 19:54:56 +0000 (19:54 +0000)]
mpeg4videodec: Fix unused variable warning

video_format is not used.

21 months agoavcodec/hevcdsp_template.c: Fix undefined shift in FUNC(dequant)
Michael Niedermayer [Fri, 22 Dec 2017 02:12:03 +0000 (03:12 +0100)]
avcodec/hevcdsp_template.c: Fix undefined shift in FUNC(dequant)

Fixes: runtime error: left shift of negative value -180
Fixes: 4626/clusterfuzz-testcase-minimized-5647837887987712

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
21 months agoavcodec/dirac_dwt: Fix integer overflow in COMPOSE_DD97iH0() and COMPOSE_DD137iL0()
Michael Niedermayer [Fri, 22 Dec 2017 02:06:14 +0000 (03:06 +0100)]
avcodec/dirac_dwt: Fix integer overflow in COMPOSE_DD97iH0() and COMPOSE_DD137iL0()

Fixes: runtime error: signed integer overflow: 2147483646 + 33554433 cannot be represented in type 'int'
Fixes: 4563/clusterfuzz-testcase-minimized-5438979567517696

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
21 months agoavcodec/libx264: fix compilation with x264 builds >= 153
James Almer [Mon, 25 Dec 2017 22:41:09 +0000 (19:41 -0300)]
avcodec/libx264: fix compilation with x264 builds >= 153

x264 now supports multibitdepth builds, with a slightly changed API to
request bitdepth during initialization.

Reviewed-by: Ricardo Constantino <wiiaboo@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
21 months agoavcodec/libx264: use the pixfmt descriptor to check for high bit depths
James Almer [Mon, 25 Dec 2017 22:40:42 +0000 (19:40 -0300)]
avcodec/libx264: use the pixfmt descriptor to check for high bit depths

The x264_bit_depth constant has been removed in newer x264 builds.

Signed-off-by: James Almer <jamrial@gmail.com>
21 months agow32pthreads: remove some remaining superfluous checks
James Almer [Tue, 26 Dec 2017 02:17:23 +0000 (23:17 -0300)]
w32pthreads: remove some remaining superfluous checks

Signed-off-by: James Almer <jamrial@gmail.com>
21 months agoh264: add AVOption to set x264_build default
wm4 [Sat, 23 Dec 2017 02:13:00 +0000 (03:13 +0100)]
h264: add AVOption to set x264_build default

This provides a generic way to the API user to deal with files that
either lack this SEI, or which have the SEI only in packets not passed
to the decoder (such as the common case of the SEI being in the very
firsat video packet, but decoding is started somewhere in the middle of
the file). Bugs like 840b41b2a643fc8f0617c0370125a19c02c6b586 make this
somewhat of a necessity.

This intentionally uses the version in the SEI instead, if any is found.

21 months agolavc: remove complex debug code around avcodec init locking
wm4 [Thu, 21 Dec 2017 22:03:24 +0000 (23:03 +0100)]
lavc: remove complex debug code around avcodec init locking

This is just a lot of complicated and confusing code that had no purpose
anymore.

Also, the functions return values were checked only sometimes. Locking
shouldn't fail anyway, so remove the return values. Barely any other
pthread lock calls check the return value (including more important code
that is more likely to fail horribly if locking fails).

It could be argued that it might be helpful in some debugging
situations, or when the user built FFmpeg without thread support against
all good advice.

But there are dummy atomics too, so the atomic check won't help with
ensuring correctness absolutely. You gain very little.

Also, for debugging, you can just raise the ASSERT_LEVEL, and then
libavutil/thread.h will redefine the locking functions to explicitly
check the return values.

21 months agolavc, lavf: move avformat static mutex from avcodec to avformat
wm4 [Thu, 21 Dec 2017 21:54:06 +0000 (22:54 +0100)]
lavc, lavf: move avformat static mutex from avcodec to avformat

It's completely absurd that libavcodec would care about libavformat
locking, but it was there because the lock manager was in libavcodec.

This is more stright forward. Changes ABI, but we don't require ABI
compatibility currently.

21 months agoffplay: drop lock manager use
wm4 [Thu, 21 Dec 2017 21:43:43 +0000 (22:43 +0100)]
ffplay: drop lock manager use

Deprecated and useless.

21 months agolavc: replace and deprecate the lock manager
wm4 [Thu, 21 Dec 2017 21:39:24 +0000 (22:39 +0100)]
lavc: replace and deprecate the lock manager

Use static mutexes instead of requiring a lock manager. The behavior
should be roughly the same before and after this change for API users
which did not set the lock manager at all (except that a minor memory
leak disappears).

21 months agow32pthreads: always use Vista+ API, drop XP support
wm4 [Thu, 21 Dec 2017 19:23:14 +0000 (20:23 +0100)]
w32pthreads: always use Vista+ API, drop XP support

This removes the XP compatibility code, and switches entirely to SWR
locks, which are available starting at Windows Vista.

This removes CRITICAL_SECTION use, which allows us to add
PTHREAD_MUTEX_INITIALIZER, which will be useful later.

Windows XP is hereby not a supported build target anymore. It was
decided in a project vote that this is OK.

21 months agoavformat/hlsenc: fix resource leak
Steven Liu [Mon, 25 Dec 2017 15:51:25 +0000 (23:51 +0800)]
avformat/hlsenc: fix resource leak

fix CID: 1426931 1426929

21 months agoavfilter/vf_convolve: add threading for complex multiplication
Paul B Mahol [Mon, 25 Dec 2017 14:46:04 +0000 (15:46 +0100)]
avfilter/vf_convolve: add threading for complex multiplication

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavfilter/vf_convolve: implement slice threading
Paul B Mahol [Mon, 25 Dec 2017 10:53:54 +0000 (11:53 +0100)]
avfilter/vf_convolve: implement slice threading

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavfilter/vf_convolve: split input/output operations from fft
Paul B Mahol [Mon, 25 Dec 2017 10:05:26 +0000 (11:05 +0100)]
avfilter/vf_convolve: split input/output operations from fft

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavfilter/vf_convolve: use shorter variants for pointers
Paul B Mahol [Mon, 25 Dec 2017 09:19:47 +0000 (10:19 +0100)]
avfilter/vf_convolve: use shorter variants for pointers

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavfilter/vf_convolve: clear coefficients only when needed
Paul B Mahol [Mon, 25 Dec 2017 09:04:59 +0000 (10:04 +0100)]
avfilter/vf_convolve: clear coefficients only when needed

Signed-off-by: Paul B Mahol <onemda@gmail.com>
21 months agoavformat/hlsenc: Signal http end of chunk(http_shutdown) during hlsenc_io_close()
Karthick Jeyapal [Mon, 25 Dec 2017 04:08:06 +0000 (12:08 +0800)]
avformat/hlsenc: Signal http end of chunk(http_shutdown) during hlsenc_io_close()

Currently http end of chunk is signalled implicitly in hlsenc_io_open().
This mean playlists http writes would have to wait upto a segment duration to signal end of chunk causing delays.
This patch will fix that problem and improve performance.

21 months agoavformat/http: Avoid calling http_shutdown() if end of chunk is signalled already
Karthick Jeyapal [Mon, 25 Dec 2017 04:07:43 +0000 (12:07 +0800)]
avformat/http: Avoid calling http_shutdown() if end of chunk is signalled already

21 months agox86inc: set the correct amount of simd regs in x86_64 when avx512 is enabled but...
James Almer [Mon, 25 Dec 2017 00:34:19 +0000 (21:34 -0300)]
x86inc: set the correct amount of simd regs in x86_64 when avx512 is enabled but not used

Fixes compilation of libavresample/x86/audio_mix.asm

Reviewed-by: Gramner
Signed-off-by: James Almer <jamrial@gmail.com>
21 months agocheckasm: support for AVX-512 functions
James Darnley [Mon, 30 Oct 2017 12:04:59 +0000 (13:04 +0100)]
checkasm: support for AVX-512 functions

21 months agox86inc: AVX-512 support
Henrik Gramner [Sat, 25 Mar 2017 09:16:09 +0000 (10:16 +0100)]
x86inc: AVX-512 support

AVX-512 consists of a plethora of different extensions, but in order to keep
things a bit more manageable we group together the following extensions
under a single baseline cpu flag which should cover SKL-X and future CPUs:
 * AVX-512 Foundation (F)
 * AVX-512 Conflict Detection Instructions (CD)
 * AVX-512 Byte and Word Instructions (BW)
 * AVX-512 Doubleword and Quadword Instructions (DQ)
 * AVX-512 Vector Length Extensions (VL)

On x86-64 AVX-512 provides 16 additional vector registers, prefer using
those over existing ones since it allows us to avoid using `vzeroupper`
unless more than 16 vector registers are required. They also happen to
be volatile on Windows which means that we don't need to save and restore
existing xmm register contents unless more than 22 vector registers are
required.

Big thanks to Intel for their support.

21 months agoavcodec: add stride alignment needed for AVX-512
James Darnley [Mon, 6 Nov 2017 14:43:39 +0000 (15:43 +0100)]
avcodec: add stride alignment needed for AVX-512

21 months agoavutil: add alignment needed for AVX-512
James Darnley [Thu, 26 Oct 2017 17:51:37 +0000 (19:51 +0200)]
avutil: add alignment needed for AVX-512

21 months agoavutil: detect when AVX-512 is available
James Darnley [Thu, 26 Oct 2017 17:51:02 +0000 (19:51 +0200)]
avutil: detect when AVX-512 is available