ffmpeg.git
2 years agoavcodec/proresdec: align dequantization matrix buffers
James Almer [Thu, 16 Nov 2017 00:13:07 +0000 (21:13 -0300)]
avcodec/proresdec: align dequantization matrix buffers

Should fix ticket #6838

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '620f88a0b94a651c6cc912b1fb32d308762d59b5'
Mark Thompson [Thu, 16 Nov 2017 00:03:10 +0000 (00:03 +0000)]
Merge commit '620f88a0b94a651c6cc912b1fb32d308762d59b5'

* commit '620f88a0b94a651c6cc912b1fb32d308762d59b5':
  vaapi_h264: Add missing return value check
  h264_metadata: Fix clearing SEI payload in error case
  cbs_h2645: Fix memory leak on when reading SEI fails
  cbs: Add a missing return value check

This commit is a noop, see
03b1470088e6e4a11e5db0efd8c26d9ac8304d31
d792613badfe7e7ca3552533e691c5015991a98a
41272e112b389e61b875ba2372a64a251f1da9fc
6734eef6b8b464139fdc140ec9bc9e8d74173869

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit 'c77da21e5d15056b8ba060ee5ce9e73f26653612'
Mark Thompson [Wed, 15 Nov 2017 23:54:28 +0000 (23:54 +0000)]
Merge commit 'c77da21e5d15056b8ba060ee5ce9e73f26653612'

* commit 'c77da21e5d15056b8ba060ee5ce9e73f26653612':
  vaapi_h264: Do not use deprecated header type

This commit is a noop, see 32a618a948c20f18db102d0b0976790222a57105.

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit 'ff007e30d8d45ba1ff2b2a4615f1cd5bafb50626'
Mark Thompson [Wed, 15 Nov 2017 23:43:56 +0000 (23:43 +0000)]
Merge commit 'ff007e30d8d45ba1ff2b2a4615f1cd5bafb50626'

* commit 'ff007e30d8d45ba1ff2b2a4615f1cd5bafb50626':
  vaapi_h264: Add workaround for bad SEI in old Intel drivers

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoavcodec/vc2enc: Clear coef_buf on allocation
Michael Niedermayer [Wed, 15 Nov 2017 15:53:34 +0000 (16:53 +0100)]
avcodec/vc2enc: Clear coef_buf on allocation

Fixes: Use of uninitialized memory
Fixes: assertion failure

Reviewed-by: <atomnuker>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/dvbsubdec: Avoid re-computing clut
Michael Niedermayer [Fri, 3 Nov 2017 23:26:56 +0000 (00:26 +0100)]
avcodec/dvbsubdec: Avoid re-computing clut

Fixes: Timeout
Fixes: 3218/clusterfuzz-testcase-5390672154591232

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/h264dec: Fix potential array overread
Michael Niedermayer [Sat, 21 Oct 2017 16:04:44 +0000 (18:04 +0200)]
avcodec/h264dec: Fix potential array overread

add padding before scantable arrays

See: 522d850e68ec4b77d3477b3c8f55b1ba00a9d69a

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agonvenc: support d3d11 surface input
Hendrik Leppkes [Sat, 11 Nov 2017 15:51:58 +0000 (16:51 +0100)]
nvenc: support d3d11 surface input

2 years agonvenc: factor context push/pop into functions
Hendrik Leppkes [Sat, 11 Nov 2017 15:13:24 +0000 (16:13 +0100)]
nvenc: factor context push/pop into functions

This reduces code repetition, and will allow adding further push/pop
refinement for D3D11 devices in future commits.

2 years agoavformat/utils: remove usage of AVCodecContext accessors
James Almer [Mon, 13 Nov 2017 03:11:52 +0000 (00:11 -0300)]
avformat/utils: remove usage of AVCodecContext accessors

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/vf_subtitles: remove usage of AVCodecContext accessors
James Almer [Mon, 13 Nov 2017 03:11:34 +0000 (00:11 -0300)]
avfilter/vf_subtitles: remove usage of AVCodecContext accessors

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec/pthread_frame: remove usage of AVCodecContext accessors
James Almer [Mon, 13 Nov 2017 03:11:15 +0000 (00:11 -0300)]
avcodec/pthread_frame: remove usage of AVCodecContext accessors

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoffplay: remove usage of AVCodecContext accessors
James Almer [Mon, 13 Nov 2017 03:10:49 +0000 (00:10 -0300)]
ffplay: remove usage of AVCodecContext accessors

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoffprobe: remove usage of AVCodecContext accessors
James Almer [Mon, 13 Nov 2017 03:10:45 +0000 (00:10 -0300)]
ffprobe: remove usage of AVCodecContext accessors

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoffmpeg: remove usage of AVCodecContext accessors
James Almer [Mon, 13 Nov 2017 03:10:21 +0000 (00:10 -0300)]
ffmpeg: remove usage of AVCodecContext accessors

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec: deprecate getters and setters for AVCodecContext and AVCodec fields
James Almer [Mon, 13 Nov 2017 02:57:38 +0000 (23:57 -0300)]
avcodec: deprecate getters and setters for AVCodecContext and AVCodec fields

The fields can be accessed directly, so these are not needed anymore.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec: Implement vc1 nvdec hwaccel
Philip Langdale [Tue, 14 Nov 2017 05:09:27 +0000 (21:09 -0800)]
avcodec: Implement vc1 nvdec hwaccel

This hwaccel is interesting because it also works for wmv3/9 content,
which is not supported by the nvidia parser used by cuviddec.

2 years agoavcodec: Don't assume separate u and v planes in ff_alloc_picture
Philip Langdale [Tue, 14 Nov 2017 05:11:27 +0000 (21:11 -0800)]
avcodec: Don't assume separate u and v planes in ff_alloc_picture

alloc_frame_buffer in ff_alloc_picture asserts that the linesize
of planes 1 and 2 are the same. If the pixfmt has a single uv
plane, like NV12, this won't be true.

So, let's only do this check if there are more than 2 planes.

We never hit this with previous hw formats because they don't set
linesize to meaningful values, but the cuda hw format sets the
values based on the underlying data layout.

2 years agolavf/mov.c: Don't correct edit list start to zero, when we can't find a frame before...
Sasi Inguva [Tue, 14 Nov 2017 02:09:28 +0000 (18:09 -0800)]
lavf/mov.c: Don't correct edit list start to zero, when we can't find a frame before edit list start.

After c2a8f0fcbe57ea9ccaa864130f078af10516c3c1 this can happen on normal edit lists starting on a B-frame.

Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoAvoid corrupting diagnostic state with _Pragma changes.
Dale Curtis [Sat, 4 Nov 2017 00:10:55 +0000 (17:10 -0700)]
Avoid corrupting diagnostic state with _Pragma changes.

The macros for ICC and MSVC correctly push and pop the diagnostic
state of the compiler when disabling deprecation warnings. The
ones for clang/gcc should do the same. Without this, if a blanket
deprecation warning is applied to the code base it'll be flipped
back on incorrectly with FF_ENABLE_DEPRECATION_WARNINGS.

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agofate/mov: add test for overlapping fragments
John Stebbins [Mon, 13 Nov 2017 16:09:30 +0000 (08:09 -0800)]
fate/mov: add test for overlapping fragments

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mips: Improve hevc non-uni hz and vt mc msa functions
Kaustubh Raste [Thu, 9 Nov 2017 10:09:49 +0000 (15:39 +0530)]
avcodec/mips: Improve hevc non-uni hz and vt mc msa functions

Use mask buffer.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mips: cleanup unused macros
Kaustubh Raste [Thu, 9 Nov 2017 05:17:28 +0000 (10:47 +0530)]
avcodec/mips: cleanup unused macros

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec: fix whitespace on AVPanScan struct definition
Aman Gupta [Tue, 14 Nov 2017 18:02:20 +0000 (10:02 -0800)]
avcodec: fix whitespace on AVPanScan struct definition

2 years agoavformat/http: fix chunked response w/ multiple_requests=1
Aman Gupta [Mon, 13 Nov 2017 19:34:50 +0000 (11:34 -0800)]
avformat/http: fix chunked response w/ multiple_requests=1

Currently if you use the multiple_requests=1 option and try to
receive a chunked-encoded response, http_buf_read() will hang forever.

After this patch, EOF is emulated once a 0-byte final chunk is
received by setting a new flag. This flag is reset in ff_http_do_new_request(),
which is used to make additional requests on the open socket.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/x86/mpegvideodsp: Fix signedness bug in need_emu
Michael Niedermayer [Mon, 13 Nov 2017 19:47:48 +0000 (20:47 +0100)]
avcodec/x86/mpegvideodsp: Fix signedness bug in need_emu

Fixes: out of array read
Fixes: 3516/attachment-311488.dat

Found-by: Insu Yun, Georgia Tech.
Tested-by: wuninsu@gmail.com
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/hlsenc: write fmp4 init header after first AV frame
Steven Liu [Tue, 14 Nov 2017 02:31:26 +0000 (10:31 +0800)]
avformat/hlsenc: write fmp4 init header after first AV frame

fix ticket id: 6825

Signed-off-by: Steven Liu <lq@onvideo.cn>
Tested-by: Aman Gupta <aman@tmm1.net>
2 years agoavutil/crc: use ff_thread_once at av_crc_get_table
Muhammad Faiz [Tue, 24 Oct 2017 09:23:28 +0000 (16:23 +0700)]
avutil/crc: use ff_thread_once at av_crc_get_table

Fix tsan warnings.

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2 years agoavcodec/videotoolbox: fix opaque_ref handling
wm4 [Tue, 31 Oct 2017 14:15:27 +0000 (15:15 +0100)]
avcodec/videotoolbox: fix opaque_ref handling

This is a partial fix - to fix videotoolbox fully (with multithreaded
hwaccel decoding), much more work would be required.

Before this change, an assertion failure would trigger:

  $ ffmpeg -hwaccel videotoolbox -hwaccel_output_format videotoolbox_vld -i h264.ts -f null -y /dev/null
  Assertion (frame->private_ref && frame->private_ref->size == sizeof(FrameDecodeData)) || !(avctx->codec->capabilities & (1 << 1)) failed at libavcodec/decode.c:620

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: reorder functions to avoid forward declarations
Aman Gupta [Mon, 13 Nov 2017 23:06:40 +0000 (15:06 -0800)]
avcodec/videotoolbox: reorder functions to avoid forward declarations

Cosmetic change only.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: fix whitespace
Aman Gupta [Fri, 10 Nov 2017 20:02:23 +0000 (12:02 -0800)]
avcodec/videotoolbox: fix whitespace

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolboxenc: remove spurious warning
Aman Gupta [Mon, 25 Sep 2017 23:15:09 +0000 (16:15 -0700)]
avcodec/videotoolboxenc: remove spurious warning

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: pass through hevc param changes to the decoder
Aman Gupta [Fri, 10 Nov 2017 20:34:41 +0000 (12:34 -0800)]
avcodec/videotoolbox: pass through hevc param changes to the decoder

This includes the SEI_PREFIX/SEI_SUFFIX NALUs, which can contain
updates like HEVC_SEI_TYPE_ACTIVE_PARAMETER_SETS. Previously, hevc
samples with this SEI present would not playback correctly.

See for example https://github.com/lhc70000/iina/issues/1123

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/hevc: implement new decode_params callback for VideoToolbox
Aman Gupta [Fri, 10 Nov 2017 20:31:56 +0000 (12:31 -0800)]
avcodec/hevc: implement new decode_params callback for VideoToolbox

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: remove unnecessary if statement
Aman Gupta [Fri, 10 Nov 2017 19:52:38 +0000 (11:52 -0800)]
avcodec/videotoolbox: remove unnecessary if statement

Cosmetic change only.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: create avcC even when h264 extradata is missing
Aman Gupta [Mon, 25 Sep 2017 23:52:35 +0000 (16:52 -0700)]
avcodec/videotoolbox: create avcC even when h264 extradata is missing

Removes the avctx->extradata_size requirement when creating avcC/hvcC, since
avctx->extradata is only used in the esds code path.

This fixes an issue where the VideoToolbox decoder would not work unless
avformat_find_stream_info() was called.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: use decode_params to propagate H264 PPS changes and restart...
Aman Gupta [Fri, 10 Nov 2017 20:25:39 +0000 (12:25 -0800)]
avcodec/videotoolbox: use decode_params to propagate H264 PPS changes and restart on SPS changes

This fixes decoding of H264 video samples with SPS and PPS changes.

See for example https://s3.amazonaws.com/tmm1/videotoolbox/spschange.ts,
which previously stalled the decoder and failed to produce any new frames
after the SPS change.

Also see https://s3.amazonaws.com/tmm1/videotoolbox/ppschange.ts, which
uses multiple PPS and would previously cause VT decode failures.

If the VideoToolbox session needs to be restarted, and
videotoolbox_start() fails for some reason (for instance, if the video
is interlaced and the decoder is running on iOS), avcodec will return
AVERROR_EXTERNAL. This can be used by the API user to switch to another
decoder.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/h264: implement new decode_params callback for PPS/SPS
Aman Gupta [Fri, 10 Nov 2017 20:18:35 +0000 (12:18 -0800)]
avcodec/h264: implement new decode_params callback for PPS/SPS

This callback will be used by the VideoToolbox H264 hwaccel so that it
can receive SPS and PPS NALUs. VideoToolbox requires PPS changes to be
fed into the decoder session, and for the session to be recreated when
the SPS changes.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec: add decode_params callback to AVHWAccel struct
Aman Gupta [Fri, 10 Nov 2017 20:17:36 +0000 (12:17 -0800)]
avcodec: add decode_params callback to AVHWAccel struct

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/h264, videotoolbox: return AVERROR_INVALIDDATA when no frames are produced
Aman Gupta [Mon, 25 Sep 2017 23:45:53 +0000 (16:45 -0700)]
avcodec/h264, videotoolbox: return AVERROR_INVALIDDATA when no frames are produced

The only reason videotoolbox wouldn't produce frames is if the data fed
to it was invalid, so returning AVERROR_INVALIDDATA makes sense here.

Further, it means AVERROR_EXTERNAL can be used in further commits to signal
fatal VideoToolbox errors, letting the user know that they need to fallback to
another decoder.

Signed-off-by: Aman Gupta <aman@tmm1.net>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/videotoolbox: print descriptive errors on decode failures
Aman Gupta [Mon, 25 Sep 2017 23:44:47 +0000 (16:44 -0700)]
avcodec/videotoolbox: print descriptive errors on decode failures

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: reset bitstream_size in end_frame
Aman Gupta [Mon, 25 Sep 2017 23:42:18 +0000 (16:42 -0700)]
avcodec/videotoolbox: reset bitstream_size in end_frame

This allows decode_slice to be invoked multiple times before end_frame,
causing slices to accumulate before being fed into the VT decoder.

An upcoming commit will re-use decode_slice for parameter NALUs, so
they can be propagated into the VT decoder session along with slice
data.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: extract videotoolbox_{start,stop} helpers
Aman Gupta [Mon, 25 Sep 2017 23:32:11 +0000 (16:32 -0700)]
avcodec/videotoolbox: extract videotoolbox_{start,stop} helpers

These helpers will be used in later commits to automatically restart
the decoder session when SPS changes are encountered.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolbox: use early return in videotoolbox_default_free
Aman Gupta [Fri, 10 Nov 2017 19:59:05 +0000 (11:59 -0800)]
avcodec/videotoolbox: use early return in videotoolbox_default_free

Cosmetic change only.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolboxenc: re-indent code
Aman Gupta [Sun, 12 Nov 2017 18:20:17 +0000 (10:20 -0800)]
avcodec/videotoolboxenc: re-indent code

Cosmetic change only.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavcodec/videotoolboxenc: add hevc_videotoolbox encoder
Aman Gupta [Sun, 12 Nov 2017 18:19:17 +0000 (10:19 -0800)]
avcodec/videotoolboxenc: add hevc_videotoolbox encoder

Signed-off-by: Aman Gupta <aman@tmm1.net>
Reviewed-by: Rodger Combs <rodger.combs@gmail.com>
2 years agoconfigure: factorize nvdec dependencies
Timo Rothenpieler [Mon, 13 Nov 2017 21:01:53 +0000 (22:01 +0100)]
configure: factorize nvdec dependencies

2 years agoconfigure: fix cuda dependency on nvdec
Timo Rothenpieler [Mon, 13 Nov 2017 20:55:09 +0000 (21:55 +0100)]
configure: fix cuda dependency on nvdec

2 years agoThis fixes a deadlock while reading a chunked https response, if
Aman Gupta [Mon, 13 Nov 2017 21:02:44 +0000 (15:02 -0600)]
This fixes a deadlock while reading a chunked https response, if
multiple_requests=1 is also set. Without an EOF to signal the end of
the last chunk, tls_read gets stuck forever trying to read more data
than is available. This occurs with the http protocol reproducibly,
because http.c always reads 4kb at a time, and the last chunk of an
http response is often much smaller.

After this commit, tls_read always returns any buffered plaintext
first before attempting to read more encrypted data off the
underlying tcp socket.

Signed-off-by: Rodger Combs <rodger.combs@gmail.com>
2 years agolavf/tls_securetransport: handle incomplete reads gracefully
Rodger Combs [Mon, 13 Nov 2017 20:46:17 +0000 (14:46 -0600)]
lavf/tls_securetransport: handle incomplete reads gracefully

Signed-off-by: Aman Gupta <aman at tmm1.net>
2 years agoMakefile: fix distclean target
James Almer [Mon, 13 Nov 2017 20:37:56 +0000 (17:37 -0300)]
Makefile: fix distclean target

It must imply clean. Regression since e0087a5624117a1d643e2cb433ecc4d536756dda.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agomovenc-test: fix potential uninitialized read
Timo Rothenpieler [Wed, 8 Nov 2017 18:17:52 +0000 (19:17 +0100)]
movenc-test: fix potential uninitialized read

Fixes CID #1413023

2 years agoavfilter/vf_premultiply: fix memory-leak on failure
Timo Rothenpieler [Wed, 8 Nov 2017 18:17:51 +0000 (19:17 +0100)]
avfilter/vf_premultiply: fix memory-leak on failure

Fixes CID #1416352

2 years agoavformat/fitsenc: validate input pixel format
Timo Rothenpieler [Wed, 8 Nov 2017 18:17:49 +0000 (19:17 +0100)]
avformat/fitsenc: validate input pixel format

Fixes CID #1416961 and #1416962

2 years agolavfi/paletteuse: check get_color return value
Timo Rothenpieler [Wed, 8 Nov 2017 18:17:45 +0000 (19:17 +0100)]
lavfi/paletteuse: check get_color return value

Fixes CID #1420396

2 years agoavcodec/nvdec: fix return value on error
Timo Rothenpieler [Sun, 12 Nov 2017 20:04:57 +0000 (21:04 +0100)]
avcodec/nvdec: fix return value on error

2 years agoavcodec/nvdec: warn about thread count if applicable
Timo Rothenpieler [Sun, 12 Nov 2017 17:09:31 +0000 (18:09 +0100)]
avcodec/nvdec: warn about thread count if applicable

2 years agoavcodec: implement vp9 nvdec hwaccel
Timo Rothenpieler [Sat, 11 Nov 2017 20:19:07 +0000 (21:19 +0100)]
avcodec: implement vp9 nvdec hwaccel

2 years agoavformat/http: fix stray quote in trace logging
Aman Gupta [Mon, 13 Nov 2017 19:12:52 +0000 (11:12 -0800)]
avformat/http: fix stray quote in trace logging

Signed-off-by: Aman Gupta <aman@tmm1.net>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoMAINTAINERS: add myself as videotoolbox* maintainer
Aman Gupta [Sun, 12 Nov 2017 22:16:01 +0000 (14:16 -0800)]
MAINTAINERS: add myself as videotoolbox* maintainer

Reviewed-by: Rick Kern <kernrj@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/aacpsdsp_template: Fix integer overflows in ps_decorrelate_c()
Michael Niedermayer [Sun, 5 Nov 2017 20:20:08 +0000 (21:20 +0100)]
avcodec/aacpsdsp_template: Fix integer overflows in ps_decorrelate_c()

Fixes: runtime error: signed integer overflow: 1939661764 - -454942263 cannot be represented in type 'int'
Fixes: 3191/clusterfuzz-testcase-minimized-5688798451073024

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/aacdec_fixed: Fix undefined shift
Michael Niedermayer [Sun, 5 Nov 2017 20:20:07 +0000 (21:20 +0100)]
avcodec/aacdec_fixed: Fix undefined shift

Fixes: runtime error: left shift of negative value -801112064
Fixes: 3492/clusterfuzz-testcase-minimized-5784775283441664

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/mdct_*: Fix integer overflow in addition in RESCALE()
Michael Niedermayer [Sun, 5 Nov 2017 20:20:06 +0000 (21:20 +0100)]
avcodec/mdct_*: Fix integer overflow in addition in RESCALE()

Fixes: runtime error: signed integer overflow: 1219998458 - -1469874012 cannot be represented in type 'int'
Fixes: 3443/clusterfuzz-testcase-minimized-5369987105554432

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/snowdec: Fix integer overflow in header parsing
Michael Niedermayer [Sun, 5 Nov 2017 20:20:05 +0000 (21:20 +0100)]
avcodec/snowdec: Fix integer overflow in header parsing

Fixes: 3984/clusterfuzz-testcase-minimized-5265759929368576
Fixes: runtime error: signed integer overflow: -1085585801 + -1094995529 cannot be represented in type 'int'

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 agoFix missing used attribute for inline assembly variables
Thomas Köppe [Sun, 12 Nov 2017 16:24:37 +0000 (16:24 +0000)]
Fix missing used attribute for inline assembly variables

Variables used in inline assembly need to be marked with attribute((used)).
Static constants already were, via the define of DECLARE_ASM_CONST.
But DECLARE_ALIGNED does not add this attribute, and some of the variables
defined with it are const only used in inline assembly, and therefore
appeared dead. This change adds a macro DECLARE_ASM_ALIGNED that marks
variables as used.

This change makes FFMPEG work with Clang's ThinLTO.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter/vf_*_qsv: Fix flags
Michael Niedermayer [Sun, 12 Nov 2017 17:07:45 +0000 (18:07 +0100)]
avfilter/vf_*_qsv: Fix flags

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/img2enc: add frame_pts option for make output filename
Steven Liu [Mon, 13 Nov 2017 02:52:01 +0000 (10:52 +0800)]
avformat/img2enc: add frame_pts option for make output filename

fix ticket id: #1452
when use frame_pts option, the output image name can be set with PTS
of current frame.

Signed-off-by: Steven Liu <lq@onvideo.cn>
2 years agoavformat/hlsenc: allocate space for terminating null
Timo Rothenpieler [Mon, 13 Nov 2017 02:44:16 +0000 (10:44 +0800)]
avformat/hlsenc: allocate space for terminating null

Fixes CID #1420394

2 years agoconfigure: fix writing library dependencies to config.sh
James Almer [Mon, 13 Nov 2017 01:59:34 +0000 (22:59 -0300)]
configure: fix writing library dependencies to config.sh

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agolavf/tls_securetransport: build on iOS
Aman Gupta [Wed, 25 Oct 2017 18:03:14 +0000 (11:03 -0700)]
lavf/tls_securetransport: build on iOS

This works as expected on iOS, except for the ca_file feature which
is disabled because SecItemImport is not available.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavformat/ty: check cur_chunk_pos before using it
Paul B Mahol [Sun, 12 Nov 2017 21:57:06 +0000 (22:57 +0100)]
avformat/ty: check cur_chunk_pos before using it

Fixes #6831.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/ty: fix memory leaks
Paul B Mahol [Sun, 12 Nov 2017 19:38:30 +0000 (20:38 +0100)]
avformat/ty: fix memory leaks

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/ty: check if header is correctly parsed and is still present
Paul B Mahol [Sun, 12 Nov 2017 19:26:42 +0000 (20:26 +0100)]
avformat/ty: check if header is correctly parsed and is still present

Fixes #6829.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agovideotoolbox: add frame_params support
wm4 [Tue, 31 Oct 2017 14:12:24 +0000 (15:12 +0100)]
videotoolbox: add frame_params support

Allows decoding with API users which require this API.

Reviewed-by: Aman Gupta <ffmpeg@tmm1.net>
2 years agoavfilter/vf_tile: add overlap option
Paul B Mahol [Tue, 7 Nov 2017 18:41:06 +0000 (19:41 +0100)]
avfilter/vf_tile: add overlap option

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agovaapi_h264: Add missing return value check
Mark Thompson [Thu, 9 Nov 2017 01:04:39 +0000 (01:04 +0000)]
vaapi_h264: Add missing return value check

2 years agoh264_metadata: Fix clearing SEI payload in error case
Mark Thompson [Thu, 9 Nov 2017 01:04:34 +0000 (01:04 +0000)]
h264_metadata: Fix clearing SEI payload in error case

2 years agocbs_h2645: Fix memory leak on when reading SEI fails
Mark Thompson [Thu, 9 Nov 2017 01:04:30 +0000 (01:04 +0000)]
cbs_h2645: Fix memory leak on when reading SEI fails

2 years agocbs: Add a missing return value check
Mark Thompson [Thu, 9 Nov 2017 01:04:11 +0000 (01:04 +0000)]
cbs: Add a missing return value check

2 years agovaapi_h264: Do not use deprecated header type
Mark Thompson [Sun, 1 Oct 2017 21:55:24 +0000 (22:55 +0100)]
vaapi_h264: Do not use deprecated header type

SEI headers should be inserted as generic raw data (the old specific
type has been deprecated in libva2).

2 years agovaapi_h264: Add workaround for bad SEI in old Intel drivers
Mark Thompson [Tue, 24 Oct 2017 23:15:55 +0000 (00:15 +0100)]
vaapi_h264: Add workaround for bad SEI in old Intel drivers

With pre-2.0 Intel drivers in CBR mode, if an explicit SEI message with
the old (now deprecated) type is not included, the driver generates and
inserts some timing SEI which is almost certainly invlaid.  Before
7a4fac5e91789b73e07bd4ad20493cfde028df76 we always inserted our own SEI
so this would not be visible, but since then it has been possible to
disable that.  We would also like to avoid using the deprecated type,
and using the new type, while working in old drivers, does not suppress
the spurious message like the old type does.

Therefore, suppress the bad SEI insertion by providing a zero-length
buffer with the old type, which the driver can insert harmlessly.

2 years agoavcodec/mpeg2_metadata_bsf: fix the AVClass version number
James Almer [Sat, 11 Nov 2017 04:46:01 +0000 (01:46 -0300)]
avcodec/mpeg2_metadata_bsf: fix the AVClass version number

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec/h265_metadata_bsf: fix the AVClass version number
James Almer [Sat, 11 Nov 2017 04:45:46 +0000 (01:45 -0300)]
avcodec/h265_metadata_bsf: fix the AVClass version number

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec/h264_metadata_bsf: fix the AVClass version number
James Almer [Sat, 11 Nov 2017 04:45:37 +0000 (01:45 -0300)]
avcodec/h264_metadata_bsf: fix the AVClass version number

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: jkqxz
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agohwcontext_vaapi: Fix build with libva 2.0
Mark Thompson [Sun, 12 Nov 2017 15:20:45 +0000 (15:20 +0000)]
hwcontext_vaapi: Fix build with libva 2.0

vaExportSurfaceHandle() wasn't included in the 2.0 release.

Fixes ticket #6828.

2 years agoavcodec/nvdec: add support for 12 bit formats
Timo Rothenpieler [Sat, 11 Nov 2017 14:07:41 +0000 (15:07 +0100)]
avcodec/nvdec: add support for 12 bit formats

2 years agoavcodec/nvdec: check hardware capabilities
Timo Rothenpieler [Sat, 11 Nov 2017 15:08:53 +0000 (16:08 +0100)]
avcodec/nvdec: check hardware capabilities

2 years agoavcodec/nvdec: don't add thread buffer twice
Timo Rothenpieler [Sun, 12 Nov 2017 14:15:55 +0000 (15:15 +0100)]
avcodec/nvdec: don't add thread buffer twice

This is already added to the initial pool size in ff_decode_get_hw_frames_ctx,
so adding it here again increases the amount of surfaces needlessly.

2 years agoMAINTAINERS: update for cuvid/nvdec changes
Timo Rothenpieler [Sat, 11 Nov 2017 13:48:37 +0000 (14:48 +0100)]
MAINTAINERS: update for cuvid/nvdec changes

2 years agolavf/dashdec: Fix several memleaks.
Carl Eugen Hoyos [Sun, 12 Nov 2017 14:20:22 +0000 (22:20 +0800)]
lavf/dashdec: Fix several memleaks.

2 years agoRevert "lavf/dashdec: Fix several memleaks."
Steven Liu [Sun, 12 Nov 2017 14:19:28 +0000 (22:19 +0800)]
Revert "lavf/dashdec: Fix several memleaks."

This reverts commit e7fe5e511aaeb3b8d949706b7f8620042cdfbd6c.

2 years agoavfilter/vf_hysteresis: allow using framesync options
Paul B Mahol [Sun, 12 Nov 2017 10:48:52 +0000 (11:48 +0100)]
avfilter/vf_hysteresis: allow using framesync options

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_maskedmerge: ignore SAR from all inputs
Paul B Mahol [Sun, 12 Nov 2017 10:43:06 +0000 (11:43 +0100)]
avfilter/vf_maskedmerge: ignore SAR from all inputs

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_lut2: ignore SAR from all inputs
Paul B Mahol [Sun, 12 Nov 2017 10:40:49 +0000 (11:40 +0100)]
avfilter/vf_lut2: ignore SAR from all inputs

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_blend: ignore SAR from all inputs
Paul B Mahol [Sun, 12 Nov 2017 10:39:16 +0000 (11:39 +0100)]
avfilter/vf_blend: ignore SAR from all inputs

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_hysteresis: ignore SAR from all inputs
Paul B Mahol [Sun, 12 Nov 2017 10:35:32 +0000 (11:35 +0100)]
avfilter/vf_hysteresis: ignore SAR from all inputs

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/vf_maskedclamp: ignore SAR from all inputs
Paul B Mahol [Sun, 12 Nov 2017 10:19:19 +0000 (11:19 +0100)]
avfilter/vf_maskedclamp: ignore SAR from all inputs

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoMerge commit '5c22c90c1d5050f1206e46494b193320ac2397cb'
James Almer [Sun, 12 Nov 2017 04:14:52 +0000 (01:14 -0300)]
Merge commit '5c22c90c1d5050f1206e46494b193320ac2397cb'

* commit '5c22c90c1d5050f1206e46494b193320ac2397cb':
  vp9_superframe_bsf: cache packets by creating new references instead of moving pointers

See 37f4a093f7f95241e4fcd582758504491e85e488
7a02b364b68c0bf7f065f5c217fae458f0efdb8d

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '0ccddbad200c1d9439c5a836501917d515cddf76'
James Almer [Sun, 12 Nov 2017 04:13:07 +0000 (01:13 -0300)]
Merge commit '0ccddbad200c1d9439c5a836501917d515cddf76'

* commit '0ccddbad200c1d9439c5a836501917d515cddf76':
  smacker: limit recursion depth of smacker_decode_bigtree

See 946ecd19ea752399bccc751c9339ff74b815587e

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit 'cd4663dc80323ba64989d0c103d51ad3ee0e9c2f'
James Almer [Sun, 12 Nov 2017 04:08:10 +0000 (01:08 -0300)]
Merge commit 'cd4663dc80323ba64989d0c103d51ad3ee0e9c2f'

* commit 'cd4663dc80323ba64989d0c103d51ad3ee0e9c2f':
  smacker: add sanity check for length in smacker_decode_tree()

See b829da363985cb2f80130bba304cc29a632f6446

Merged-by: James Almer <jamrial@gmail.com>