ffmpeg.git
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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.

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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.

2 years 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.

2 years 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.

2 years 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.

2 years 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).

2 years 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.

2 years 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

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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.

2 years 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

2 years 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>
2 years 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

2 years 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.

2 years 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

2 years 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

2 years 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

2 years agoavutil: add AVX-512 flags
James Darnley [Thu, 26 Oct 2017 17:48:26 +0000 (19:48 +0200)]
avutil: add AVX-512 flags

2 years agoconfigure: test whether x86 assembler supports AVX-512
James Darnley [Thu, 26 Oct 2017 17:45:50 +0000 (19:45 +0200)]
configure: test whether x86 assembler supports AVX-512

2 years agoavformat/hls: fix SEGV in previous commit
Aman Gupta [Sun, 24 Dec 2017 20:31:27 +0000 (12:31 -0800)]
avformat/hls: fix SEGV in previous commit

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavformat/hls: fix memory leak with non-http segments
Aman Gupta [Sun, 24 Dec 2017 19:59:32 +0000 (11:59 -0800)]
avformat/hls: fix memory leak with non-http segments

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavformat/hls: fix CID 1426930
Aman Gupta [Sun, 24 Dec 2017 19:58:30 +0000 (11:58 -0800)]
avformat/hls: fix CID 1426930

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavfilter/vf_convolve: fix various issues
Paul B Mahol [Sun, 24 Dec 2017 15:09:23 +0000 (16:09 +0100)]
avfilter/vf_convolve: fix various issues

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_convolve: fix convolution of borders
Paul B Mahol [Sun, 24 Dec 2017 09:15:26 +0000 (10:15 +0100)]
avfilter/vf_convolve: fix convolution of borders

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/internal: fix compile error with some versions of g++
Aman Gupta [Sat, 23 Dec 2017 20:34:50 +0000 (12:34 -0800)]
avformat/internal: fix compile error with some versions of g++

Fixes #6926

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavfilter/vf_convolve: unbreak non-power of 2 width&height filtering
Paul B Mahol [Sat, 23 Dec 2017 15:27:39 +0000 (16:27 +0100)]
avfilter/vf_convolve: unbreak non-power of 2 width&height filtering

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_fftfilt: support >8 bit depth formats
Paul B Mahol [Sat, 23 Dec 2017 10:33:18 +0000 (11:33 +0100)]
avfilter/vf_fftfilt: support >8 bit depth formats

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_aspect: change outlink sample aspect ratio instead of inlink
Paul B Mahol [Sun, 10 Dec 2017 20:48:41 +0000 (21:48 +0100)]
avfilter/vf_aspect: change outlink sample aspect ratio instead of inlink

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/video: pick sar from link
Paul B Mahol [Thu, 7 Dec 2017 09:22:32 +0000 (10:22 +0100)]
avfilter/video: pick sar from link

It should not be needed for each filter that sets sample aspect ratio
to set it explicitly also for each and every frame, instead that is
automatically done in get_buffer call.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/hlsenc:addition of #EXT-X-MEDIA tag and AUDIO attribute
Vishwanath Dixit [Sat, 23 Dec 2017 05:42:00 +0000 (13:42 +0800)]
avformat/hlsenc:addition of #EXT-X-MEDIA tag and AUDIO attribute

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2 years agoavformat/internal: log underlying error with ff_rename failure
Aman Gupta [Fri, 22 Dec 2017 23:17:15 +0000 (15:17 -0800)]
avformat/internal: log underlying error with ff_rename failure

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: wm4 <nfxjfg@googlemail.com>
2 years agoavformat/hls: hide misleading warning when http reconnect is required
Aman Gupta [Sat, 23 Dec 2017 00:30:42 +0000 (16:30 -0800)]
avformat/hls: hide misleading warning when http reconnect is required

AVERROR_EOF is an internal error which means the http socket is no longer
valid for new requests. It informs the caller that a new connection must
be established, and as such does not need to be surfaced to the user as
a warning.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavformat/http: return EOF from ff_http_do_new_request if previous response said Conne...
Aman Gupta [Sat, 23 Dec 2017 00:29:41 +0000 (16:29 -0800)]
avformat/http: return EOF from ff_http_do_new_request if previous response said Connection:close

This fixes a deadlock when using the hls demuxer's new http_persistent feature
to stream a youtube live stream over HTTPS. The youtube servers are http/1.1
compliant, but return a "Connecton: close". Before this commit, the demuxer
would attempt to send a new request on the partially shutdown connection and
cause a deadlock in the tls protocol.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavformat/hls: add http_multiple option
Aman Gupta [Tue, 12 Dec 2017 23:25:46 +0000 (15:25 -0800)]
avformat/hls: add http_multiple option

This improves network throughput of the hls demuxer by avoiding
the latency introduced by downloading segments one at a time.

The problem is particularly noticable over high-latency network
connections: for instance, if RTT is 250ms, there will a 250ms idle
period between when one segment response is read and the next one
starts.

The obvious solution to this is to use HTTP pipelining, where a
second request can be sent (on the persistent http/1.1 connection)
before the first response is fully read. Unfortunately the way the
http protocol is implemented in avformat makes implementing pipleining
very complex.

Instead, this commit simulates pipelining using two separate persistent
http connections. This has the advantage of working independently of
the http_persistent option, and can be used with http/1.0 servers as
well. The pair of connections is swapped every time a new segment starts
downloading, and a request for the next segment is sent on the secondary
connection right away. This means the second response will be ready and
waiting by the time the current response is fully read.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2 years agoavformat/hls: allow open_input to be re-used
Aman Gupta [Tue, 12 Dec 2017 23:21:29 +0000 (15:21 -0800)]
avformat/hls: allow open_input to be re-used

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2 years agoavformat/hls: add http_persistent option
Aman Gupta [Wed, 4 Oct 2017 21:52:52 +0000 (14:52 -0700)]
avformat/hls: add http_persistent option

This teaches the HLS demuxer to use the HTTP protocols
multiple_requests=1 option, to take advantage of "Connection:
Keep-Alive" when downloading playlists and segments from the HLS server.

With the new option, you can avoid TCP connection and TLS negotiation
overhead, which is particularly beneficial when streaming via a
high-latency internet connection.

Similar to the http_persistent option recently implemented in hlsenc.c

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
2 years agoavformat/http: add "Opening" info logging to ff_http_do_new_request
Aman Gupta [Wed, 13 Dec 2017 00:02:09 +0000 (16:02 -0800)]
avformat/http: add "Opening" info logging to ff_http_do_new_request

This mimics logging that was added in 53e0d5d7247 for security
purposes.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/http: return EINVAL from ff_http_do_new_request() if re-used with different...
Aman Gupta [Tue, 12 Dec 2017 23:50:44 +0000 (15:50 -0800)]
avformat/http: return EINVAL from ff_http_do_new_request() if re-used with different hostname

This will prevent improper use of ff_http_do_new_request() if the user
tries to send a request for a different host to a previously connected
persistent http/1.1 connection.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Signed-off-by: Karthick J <kjeyapal@akamai.com>
2 years agoavfilter/vf_lut: add support for gray formats
Paul B Mahol [Fri, 22 Dec 2017 09:51:48 +0000 (10:51 +0100)]
avfilter/vf_lut: add support for gray formats

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/dashenc: avformat/dashenc: Fix the EXT-X-TARGETDURATION as per the hls speci...
Karthick J [Thu, 21 Dec 2017 23:44:51 +0000 (07:44 +0800)]
avformat/dashenc: avformat/dashenc: Fix the EXT-X-TARGETDURATION as per the hls specification

2 years agoavformat/hlsenc: set EXT-X-TARGETDURATION use lrint(EXTINF)
Karthick J [Thu, 21 Dec 2017 23:43:54 +0000 (07:43 +0800)]
avformat/hlsenc: set EXT-X-TARGETDURATION use lrint(EXTINF)

2 years agoavfilter/vf_framerate: fix scene score with negative linesize
Marton Balint [Sun, 10 Dec 2017 18:01:03 +0000 (19:01 +0100)]
avfilter/vf_framerate: fix scene score with negative linesize

Also, do not overread input if linesize > width, or linesize is not divisible
by 8, and use the proper rounded width/height for MAFD calculation.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavfilter/vf_framerate: do not calculate scene change score multiple times for the...
Marton Balint [Sun, 10 Dec 2017 02:18:49 +0000 (03:18 +0100)]
avfilter/vf_framerate: do not calculate scene change score multiple times for the same frame

This speeds up the filter, and also fixes scene change detection score which is
reduced based on the difference of the current MAFD to the preivous MAFD.
Obviously if we compare two frames twice, the difference will be 0...

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavfilter/vf_framerate: fix scene change detection score
Marton Balint [Sat, 9 Dec 2017 23:29:12 +0000 (00:29 +0100)]
avfilter/vf_framerate: fix scene change detection score

- normalize score to [0..100] instead of [0..85]
- change the default score to 8.2 to roughly keep existing behaviour
- take into account bit depth
- do not truncate to integer

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavfilter/vf_framerate: factorize get_scene_score
Marton Balint [Sat, 9 Dec 2017 23:00:52 +0000 (00:00 +0100)]
avfilter/vf_framerate: factorize get_scene_score

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavfilter/vf_framerate: factorize blend_frames
Marton Balint [Sat, 9 Dec 2017 22:00:57 +0000 (23:00 +0100)]
avfilter/vf_framerate: factorize blend_frames

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavfilter/vf_framerate: add threaded blending operations
Marton Balint [Sat, 9 Dec 2017 21:46:27 +0000 (22:46 +0100)]
avfilter/vf_framerate: add threaded blending operations

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agofate: add 12 bit framerate filter tests
Marton Balint [Sat, 9 Dec 2017 23:07:17 +0000 (00:07 +0100)]
fate: add 12 bit framerate filter tests

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavcodec/jpeg2000dec: Free lengthinc earlier
Michael Niedermayer [Sun, 17 Dec 2017 22:35:26 +0000 (23:35 +0100)]
avcodec/jpeg2000dec: Free lengthinc earlier

Reduces memory needed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mpeg4videodec: Add support for parsing and exporting video_range
Michael Niedermayer [Sun, 10 Dec 2017 14:01:43 +0000 (15:01 +0100)]
avcodec/mpeg4videodec: Add support for parsing and exporting video_range

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/jpeg2000dec: Allocate lengthinc and data_start arrays as needed
Michael Niedermayer [Sun, 17 Dec 2017 17:29:45 +0000 (18:29 +0100)]
avcodec/jpeg2000dec: Allocate lengthinc and data_start arrays as needed

Decreases memory requirements
Fixes: OOM
Fixes: 4525/clusterfuzz-testcase-minimized-6400713073623040

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 agorkmppdec: move AV_CODEC_CAP_AVOID_PROBING to the correct field
wm4 [Thu, 14 Dec 2017 18:47:18 +0000 (19:47 +0100)]
rkmppdec: move AV_CODEC_CAP_AVOID_PROBING to the correct field

AVCodec.caps_internal doesn't hold this field.

(Untested.)

2 years agov4l_m2m: add missing AV_CODEC_CAP_DELAY flags
wm4 [Thu, 14 Dec 2017 18:46:52 +0000 (19:46 +0100)]
v4l_m2m: add missing AV_CODEC_CAP_DELAY flags

This is pretty much a requirement for any codec that handles modern
codecs like h264, but it was missing. Potentially could lead to issues
like missing frames at the end of a stream.

Tested-by: Jorge Ramirez <jorge.ramirez-ortiz@linaro.org>
2 years agoavfilter/af_biquads: change defaults for biquad filter
Paul B Mahol [Thu, 21 Dec 2017 11:06:21 +0000 (12:06 +0100)]
avfilter/af_biquads: change defaults for biquad filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_biquads: increase width range
Paul B Mahol [Thu, 21 Dec 2017 10:44:22 +0000 (11:44 +0100)]
avfilter/af_biquads: increase width range

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/af_biquads: add kHz width_type
Paul B Mahol [Thu, 21 Dec 2017 10:40:38 +0000 (11:40 +0100)]
avfilter/af_biquads: add kHz width_type

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/mov: simplify parsing of mdcv atom using av_make_q()
James Almer [Thu, 21 Dec 2017 04:23:17 +0000 (01:23 -0300)]
avformat/mov: simplify parsing of mdcv atom using av_make_q()

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoconfigure: fix minimum required version of libzimg
James Almer [Thu, 21 Dec 2017 03:47:51 +0000 (00:47 -0300)]
configure: fix minimum required version of libzimg

The new input properties added in 002db7d49ada290db15334b7b41fa27eb376ec5c
were introduced to libzimg for the upcoming release 2.7.x

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavformat/hlsenc: Fix a memory leak when http_persistent is 1
Karthick J [Thu, 21 Dec 2017 03:39:24 +0000 (11:39 +0800)]
avformat/hlsenc: Fix a memory leak when http_persistent is 1

Reviewed-by: Steven Liu <lq@onvideo.cn>
2 years agoavformat/hlsenc: reindent after previous commits
Steven Liu [Thu, 21 Dec 2017 03:17:08 +0000 (11:17 +0800)]
avformat/hlsenc: reindent after previous commits

Reviewed-by: Karthick J <kjeyapal@akamai.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2 years agoavformat/hlsenc: fix first fragment mp4 do not split bug
Steven Liu [Thu, 21 Dec 2017 03:14:32 +0000 (11:14 +0800)]
avformat/hlsenc: fix first fragment mp4 do not split bug

fix ticket id: 6888

Tested-by: beloko <beloko@gmail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2 years agolavf/mov.c: Guess video codec delay based on PTS while parsing MOV header.
Sasi Inguva [Mon, 18 Dec 2017 23:31:16 +0000 (15:31 -0800)]
lavf/mov.c: Guess video codec delay based on PTS while parsing MOV header.

Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agolibavcodec/hevcdec: implement skip_frame
sfan5 [Thu, 7 Dec 2017 19:40:35 +0000 (20:40 +0100)]
libavcodec/hevcdec: implement skip_frame

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter/vf_psnr: add more gbrap formats
Paul B Mahol [Wed, 20 Dec 2017 11:45:21 +0000 (12:45 +0100)]
avfilter/vf_psnr: add more gbrap formats

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoconfigure: Fix case of static libmp3lame
Stefan Pöschel [Sat, 16 Dec 2017 15:50:45 +0000 (16:50 +0100)]
configure: Fix case of static libmp3lame

Fixes #6918.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agolavc/vaapi_encode: give a debug message if attrs unsupported.
Jun Zhao [Tue, 19 Dec 2017 06:13:58 +0000 (14:13 +0800)]
lavc/vaapi_encode: give a debug message if attrs unsupported.

Give a debug message when query attribute get VA_ATTRIB_NOT_SUPPORTED,
it's will help to trace and debug some issue.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2 years agoRevert "checkasm/vf_interlace : add test for lowpass_line 8 and 16"
James Almer [Tue, 19 Dec 2017 22:07:24 +0000 (19:07 -0300)]
Revert "checkasm/vf_interlace : add test for lowpass_line 8 and 16"

This reverts commit adff97be5e2ff51c0bb66080c2f904ed40b6c571.

It currently fails on Windows targets.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoRevert "avfilter/vf_interlace : add AVX2 for lowpass_line 8 and 16"
James Almer [Tue, 19 Dec 2017 22:04:25 +0000 (19:04 -0300)]
Revert "avfilter/vf_interlace : add AVX2 for lowpass_line 8 and 16"

This reverts commits 1a5865b6dcc97754a1d7eedc130fb58237d2a715 and
8fb1d63d919286971b8e6afad372730d6d6f25c8.

They made fate interlace tests fail when AVX2 was used.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agotests/audiomatch: Add missing return code at the end of main()
Michael Niedermayer [Tue, 19 Dec 2017 20:05:40 +0000 (21:05 +0100)]
tests/audiomatch: Add missing return code at the end of main()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agotests/audiomatch: Whitespace refinement
Jun Zhao [Mon, 18 Dec 2017 01:16:52 +0000 (09:16 +0800)]
tests/audiomatch: Whitespace refinement

Refine the coding style.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agotests/audiomatch: Add return value check for fread.
Jun Zhao [Mon, 18 Dec 2017 00:59:58 +0000 (08:59 +0800)]
tests/audiomatch: Add return value check for fread.

Check fread return value to fix build warning as "ignoring
return value of ‘fread’"

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoconfigure: Fix detection of vp9 decoder/encoder
Felix Matouschek [Tue, 12 Dec 2017 09:42:40 +0000 (10:42 +0100)]
configure: Fix detection of vp9 decoder/encoder

At least on Android the vp9 decoder/encoder needs $libm_extralibs
to successfully link, it was missing in the check_lib calls for vp9

Signed-off-by: Felix Matouschek <felix@matouschek.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/x86/vf_hflip : indent
Martin Vignali [Tue, 19 Dec 2017 20:07:10 +0000 (21:07 +0100)]
avfilter/x86/vf_hflip : indent

based on patch by Paul B Mahol

2 years agoavfilter/x86/vf_hflip : add avx2 version for hflip_byte and hflip_short
Martin Vignali [Tue, 19 Dec 2017 20:06:01 +0000 (21:06 +0100)]
avfilter/x86/vf_hflip : add avx2 version for hflip_byte and hflip_short

2 years agoavfilter/x86/vf_hflip : merge hflip byte and hflip short to one macro
Martin Vignali [Tue, 19 Dec 2017 20:04:29 +0000 (21:04 +0100)]
avfilter/x86/vf_hflip : merge hflip byte and hflip short to one macro

2 years agoavfilter/vf_tinterlace : add AVX2 func for lowpass_line 8 and 16
Martin Vignali [Mon, 18 Dec 2017 10:30:31 +0000 (11:30 +0100)]
avfilter/vf_tinterlace : add AVX2 func for lowpass_line 8 and 16

2 years agoavfilter/vf_interlace : add AVX2 for lowpass_line 8 and 16
Martin Vignali [Mon, 18 Dec 2017 10:19:17 +0000 (11:19 +0100)]
avfilter/vf_interlace : add AVX2 for lowpass_line 8 and 16

2 years agocheckasm/vf_interlace : add test for lowpass_line 8 and 16
Martin Vignali [Mon, 18 Dec 2017 10:18:51 +0000 (11:18 +0100)]
checkasm/vf_interlace : add test for lowpass_line 8 and 16

2 years agoavfilter/vf_interlace : move func init in ff_interlace_init and add depth arg for...
Martin Vignali [Mon, 18 Dec 2017 10:18:14 +0000 (11:18 +0100)]
avfilter/vf_interlace : move func init in ff_interlace_init and add depth arg for ff_interlace_init_x86

2 years agoavcodec/magicyuv : use gradient_pred dsp func for 8 bits gradient mode
Martin Vignali [Sat, 9 Dec 2017 18:26:47 +0000 (19:26 +0100)]
avcodec/magicyuv : use gradient_pred dsp func for 8 bits gradient mode

2 years agoavcodec/utvideodec : use gradient_pred dsp in interlace decoding
Martin Vignali [Sat, 9 Dec 2017 18:26:08 +0000 (19:26 +0100)]
avcodec/utvideodec : use gradient_pred dsp in interlace decoding

2 years agoconfigure: remove libtls fallback check
sfan5 [Tue, 19 Dec 2017 17:45:27 +0000 (18:45 +0100)]
configure: remove libtls fallback check

This check is not needed for any supported version of libtls
and causes issues with static builds (libtls links to -lssl -lcrypto).

Signed-off-by: sfan5 <sfan5@live.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoconfigure: fix pkg-config check for libtls
sfan5 [Tue, 19 Dec 2017 16:33:26 +0000 (17:33 +0100)]
configure: fix pkg-config check for libtls

This was not accounted for during merge and is required due to
the refactor in commit 93ccba96df6340249b0db227d5bc3297010797a4.

Signed-off-by: sfan5 <sfan5@live.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavformat/mov: Fix the the typo
Michael Niedermayer [Mon, 18 Dec 2017 11:32:22 +0000 (12:32 +0100)]
avformat/mov: Fix the the typo

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agodoc/filters: update biquad filters with commands section
Paul B Mahol [Mon, 18 Dec 2017 14:24:00 +0000 (15:24 +0100)]
doc/filters: update biquad filters with commands section

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_overlay: fix packed_rgb case
Mateusz [Mon, 18 Dec 2017 03:02:25 +0000 (04:02 +0100)]
avfilter/vf_overlay: fix packed_rgb case

Signed-off-by: Mateusz Brzostek <mateuszb@poczta.onet.pl>