ffmpeg.git
20 months agolavu/timer.h: factor out timer report
Clément Bœsch [Sat, 2 Sep 2017 17:17:45 +0000 (19:17 +0200)]
lavu/timer.h: factor out timer report

This commit is meant to reduce the diff in the following one.

20 months agocheckasm: use perf API on Linux ARM*
Clément Bœsch [Fri, 1 Sep 2017 13:11:18 +0000 (15:11 +0200)]
checkasm: use perf API on Linux ARM*

On ARM platforms, accessing the PMU registers requires special user
access permissions. Since there is no other way to get accurate timers,
the current implementation of timers in FFmpeg rely on these registers.
Unfortunately, enabling user access to these registers on Linux is not
trivial, and generally involve compiling a random and unreliable github
kernel module, or patching somehow your kernel.

Such module is very unlikely to reach the upstream anytime soon. Quoting
Robin Murphin from ARM:

> Say you do give userspace direct access to the PMU; now run two or more
> programs at once that believe they can use the counters for their own
> "minimal-overhead" profiling. Have fun interpreting those results...
>
> And that's not even getting into the implications of scheduling across
> different CPUs, CPUidle, etc. where the PMU state is completely beyond
> userspace's control. In general, the plan to provide userspace with
> something which might happen to just about work in a few corner cases,
> but is meaningless, misleading or downright broken in all others, is to
> never do so.

As a result, the alternative is to use the Performance Monitoring Linux
API which makes use of these registers internally (assuming the PMU of
your ARM board is supported in the kernel, which is definitely not a
given...).

While the Linux API is obviously cross platform, it does have a
significant overhead which needs to be taken into account. As a result,
that mode is only weakly enabled on ARM platforms exclusively.

Note on the non flexibility of the implementation: the timers (native
FFmpeg vs Linux API) are selected at compilation time to prevent the
need of function calls, which would result in a negative impact on the
cycle counters.

20 months agoavfilter: add Haas stereo enhancer
Paul B Mahol [Wed, 6 Sep 2017 12:06:38 +0000 (14:06 +0200)]
avfilter: add Haas stereo enhancer

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavcodec/vp9: Add tile threading support
Ilia Valiakhmetov [Thu, 7 Sep 2017 21:02:49 +0000 (04:02 +0700)]
avcodec/vp9: Add tile threading support

Signed-off-by: Ilia Valiakhmetov <zakne0ne@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
20 months agoavcodec/pthread_slice: add ff_slice_thread_execute_with_mainfunc()
Ilia Valiakhmetov [Thu, 7 Sep 2017 20:48:17 +0000 (03:48 +0700)]
avcodec/pthread_slice: add ff_slice_thread_execute_with_mainfunc()

Signed-off-by: Ilia Valiakhmetov <zakne0ne@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
20 months agolibavcodec/h264_parse: don't use uninitialized value when chroma_format_idc==0
Mark Wachsler [Thu, 7 Sep 2017 13:42:07 +0000 (09:42 -0400)]
libavcodec/h264_parse: don't use uninitialized value when chroma_format_idc==0

When parsing a monochrome file, chroma_log2_weight_denom was used without
being initialized, which could lead to a bogus error message being printed, e.g.
  [h264 @ 0x61a000026480] chroma_log2_weight_denom 24576 is out of range
It also could led to warnings using AddressSanitizer.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/mips: Improve vp9 mc msa functions
Kaustubh Raste [Mon, 4 Sep 2017 12:32:36 +0000 (18:02 +0530)]
avcodec/mips: Improve vp9 mc msa functions

Load the specific destination bytes instead of MSA load and pack.

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>
20 months agoavcodec/mips: Improve vp9 idct msa functions
Kaustubh Raste [Mon, 4 Sep 2017 12:32:09 +0000 (18:02 +0530)]
avcodec/mips: Improve vp9 idct msa functions

Removed memset calls.

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>
20 months agoavcodec/mips: Improve vp9 lpf msa functions
Kaustubh Raste [Mon, 4 Sep 2017 12:31:32 +0000 (18:01 +0530)]
avcodec/mips: Improve vp9 lpf msa functions

Updated VP9_LPF_FILTER4_4W macro to process on 8 bit data.
Replaced VP9_LPF_FILTER4_8W with VP9_LPF_FILTER4_4W.

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>
20 months agoffmpeg: send EOF pts to filters.
Nicolas George [Thu, 6 Apr 2017 08:40:12 +0000 (10:40 +0200)]
ffmpeg: send EOF pts to filters.

20 months agolavfi/buffersrc: add av_buffersrc_close().
Nicolas George [Mon, 3 Apr 2017 13:01:45 +0000 (15:01 +0200)]
lavfi/buffersrc: add av_buffersrc_close().

20 months agoffmpeg: use reordered duration for stream PTS.
Nicolas George [Mon, 3 Apr 2017 12:40:44 +0000 (14:40 +0200)]
ffmpeg: use reordered duration for stream PTS.

20 months agoffmpeg: rename a variable.
Nicolas George [Mon, 3 Apr 2017 11:49:59 +0000 (13:49 +0200)]
ffmpeg: rename a variable.

Makes the reason of the "FIXME" comment more obvious.
Avoid name conflicts for the next commit.

20 months agolavfi: guess a timestamp for compat status change.
Nicolas George [Thu, 7 Sep 2017 08:45:54 +0000 (10:45 +0200)]
lavfi: guess a timestamp for compat status change.

Use the earliest input with the same status.
If that fails, print a warning and use the earliest source.
With this change, simple filter forward correctly the timestamp
of EOF.
Filters that are supposed to change it should be updated to
actually forward it.

20 months agofate: add test for asetnsamples filter with padding disabled
Tobias Rapp [Mon, 7 Aug 2017 09:55:39 +0000 (11:55 +0200)]
fate: add test for asetnsamples filter with padding disabled

Adds another test for asetnsamples filter where padding of the last
frame is switched off. Renames the existing test to make the difference
obvious.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
20 months agoavfilter/vf_zoompan: fix specific corner case when no frame was ever requested from...
Paul B Mahol [Thu, 7 Sep 2017 14:49:46 +0000 (16:49 +0200)]
avfilter/vf_zoompan: fix specific corner case when no frame was ever requested from input

Reported-by: Nicolas George
Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavformat/asfdec: Fix DoS in asf_build_simple_index()
Michael Niedermayer [Mon, 4 Sep 2017 22:16:29 +0000 (00:16 +0200)]
avformat/asfdec: Fix DoS in asf_build_simple_index()

Fixes: Missing EOF check in loop
No testcase

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/mov: Fix DoS in read_tfra()
Michael Niedermayer [Mon, 4 Sep 2017 22:16:29 +0000 (00:16 +0200)]
avformat/mov: Fix DoS in read_tfra()

Fixes: Missing EOF check in loop
No testcase

Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/gdv: Make FixedSize static
Michael Niedermayer [Mon, 4 Sep 2017 17:36:09 +0000 (19:36 +0200)]
avformat/gdv: Make FixedSize static

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoffprobe: use consistent string for unspecified color_range value
Tobias Rapp [Tue, 29 Aug 2017 08:51:05 +0000 (10:51 +0200)]
ffprobe: use consistent string for unspecified color_range value

Makes the handling of unspecified/unknown color_range values on stream
level consistent to the value used on frame level.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
20 months agoavcodec/nvenc: sanitize variable names
Timo Rothenpieler [Sat, 2 Sep 2017 17:42:13 +0000 (19:42 +0200)]
avcodec/nvenc: sanitize variable names

20 months agoavcodec/nvenc: migrate to new encode API
Timo Rothenpieler [Sat, 2 Sep 2017 17:30:21 +0000 (19:30 +0200)]
avcodec/nvenc: migrate to new encode API

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agofate: fix fate-lavf-fits dependencies
James Almer [Thu, 7 Sep 2017 01:53:17 +0000 (22:53 -0300)]
fate: fix fate-lavf-fits dependencies

We need the fits muxer/demuxer.

20 months agoavcodec/fitsdec: write output to frame directly
Paras Chadha [Sat, 2 Sep 2017 19:07:21 +0000 (00:37 +0530)]
avcodec/fitsdec: write output to frame directly

Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoflvdec: Check the avio_seek return value after reading a metadata packet
Steven Liu [Thu, 7 Sep 2017 00:30:14 +0000 (08:30 +0800)]
flvdec: Check the avio_seek return value after reading a  metadata packet

merge from libav: 585dc1aecef0371ad6f16cb3750ae2a6da9cf00a

If the metadata packet is corrupted, flv_read_metabody can accidentally
read past the start of the next packet. If the start of the next packet
had been flushed out of the IO buffer, we would be unable to seek to
the right position (on a nonseekable stream).

Prefer to clearly error out instead of silently trying to read from a
desynced stream which will only be interpreted as garbage.

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
20 months agolavfi/atempo: Avoid false triggering an assertion failure
Pavel Koshevoy [Mon, 4 Sep 2017 02:44:31 +0000 (20:44 -0600)]
lavfi/atempo: Avoid false triggering an assertion failure

Steps to reproduce:
1. revert 4240e5b047379b29c33dd3f4438bc4e610527b83
2. ./ffmpeg -f lavfi -i sine=d=1 -af aselect=e=0,atempo=0.5 -y atempo.wav

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoRevert "lavfi/atempo: avoid false triggering an assertion failure"
Pavel Koshevoy [Sun, 3 Sep 2017 13:34:08 +0000 (15:34 +0200)]
Revert "lavfi/atempo: avoid false triggering an assertion failure"

This reverts commit 4240e5b047379b29c33dd3f4438bc4e610527b83.

Fixes ticket #6540.

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavcodec/audiotoolboxdec: use av_freep()
James Almer [Wed, 6 Sep 2017 16:03:29 +0000 (13:03 -0300)]
avcodec/audiotoolboxdec: use av_freep()

This prevents leaving dangling pointers.

20 months agoavcodec/audiotoolboxdec: switch to the new generic filtering mechanism
James Almer [Thu, 25 May 2017 15:56:50 +0000 (12:56 -0300)]
avcodec/audiotoolboxdec: switch to the new generic filtering mechanism

Tested-by: ubitux
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec/audiotoolboxdec: add FF_CODEC_CAP_INIT_CLEANUP to the decoder capabilities
James Almer [Thu, 25 May 2017 14:07:42 +0000 (11:07 -0300)]
avcodec/audiotoolboxdec: add FF_CODEC_CAP_INIT_CLEANUP to the decoder capabilities

Extradata may be allocated and the AudioConverterRef may be created during init(),
which in case of a failure would not be freed as close() isn't called afterwards.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec/audiotoolboxdec: always use a copy of the AVCodecContext extradata
James Almer [Thu, 25 May 2017 14:00:47 +0000 (11:00 -0300)]
avcodec/audiotoolboxdec: always use a copy of the AVCodecContext extradata

Fixes memleaks introduced by 954e2b3d34b7c2d82871254f07e2f8a39bc451cb

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavfilter/af_dcshift: add direct path
Paul B Mahol [Wed, 6 Sep 2017 09:46:24 +0000 (11:46 +0200)]
avfilter/af_dcshift: add direct path

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/vf_overlay: Restore shorthand option order
Michael Niedermayer [Tue, 5 Sep 2017 13:26:52 +0000 (15:26 +0200)]
avfilter/vf_overlay: Restore shorthand option order

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agolibavcodec/mips: Improve avc idct8 msa function
Kaustubh Raste [Mon, 31 Jul 2017 06:37:03 +0000 (12:07 +0530)]
libavcodec/mips: Improve avc idct8 msa function

Replace memset call with msa stores.

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>
20 months agoavfilter/lavfutils: remove usage of AVStream->codec
James Almer [Wed, 30 Aug 2017 05:07:00 +0000 (02:07 -0300)]
avfilter/lavfutils: remove usage of AVStream->codec

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavformat/hlsenc: Added configuration to override HTTP User-Agent
Karthick J [Tue, 5 Sep 2017 15:30:52 +0000 (23:30 +0800)]
avformat/hlsenc: Added configuration to override HTTP User-Agent

Signed-off-by: Karthick J <kjeyapal@akamai.com>
Signed-off-by: Steven Liu <lq@onvideo.cn>
20 months agobuild: consistent spacing between lists (cosmetics)
Clément Bœsch [Tue, 5 Sep 2017 10:45:20 +0000 (12:45 +0200)]
build: consistent spacing between lists (cosmetics)

20 months agoavfilter/avf_avectorscope: fix mistake in previous commit
Paul B Mahol [Tue, 5 Sep 2017 09:55:23 +0000 (11:55 +0200)]
avfilter/avf_avectorscope: fix mistake in previous commit

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/avf_avectorscope: add possibility to auto zoom
Paul B Mahol [Tue, 5 Sep 2017 09:43:49 +0000 (11:43 +0200)]
avfilter/avf_avectorscope: add possibility to auto zoom

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter: add despill filter
Paul B Mahol [Mon, 28 Aug 2017 12:32:25 +0000 (14:32 +0200)]
avfilter: add despill filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavcodec: add AV_HWACCEL_CODEC_CAP_EXPERIMENTAL flag
James Almer [Fri, 1 Sep 2017 17:56:05 +0000 (14:56 -0300)]
avcodec: add AV_HWACCEL_CODEC_CAP_EXPERIMENTAL flag

This flag replaces the deprecated, non-prefixed HWACCEL_CODEC_CAP_EXPERIMENTAL
one.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavfilter/vf_fftfilt: make it possible to evaluate expressions per frame
Paul B Mahol [Mon, 4 Sep 2017 17:29:37 +0000 (19:29 +0200)]
avfilter/vf_fftfilt: make it possible to evaluate expressions per frame

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/vf_fftfilt: add generic timeline support
Paul B Mahol [Mon, 4 Sep 2017 17:04:31 +0000 (19:04 +0200)]
avfilter/vf_fftfilt: add generic timeline support

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/vf_fftfilt: add support for more pixel formats
Paul B Mahol [Mon, 4 Sep 2017 16:36:37 +0000 (18:36 +0200)]
avfilter/vf_fftfilt: add support for more pixel formats

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/vf_fftfilt: cache rdft contexts
Paul B Mahol [Mon, 4 Sep 2017 16:24:00 +0000 (18:24 +0200)]
avfilter/vf_fftfilt: cache rdft contexts

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agolavd: drop QTKit indev
Clément Bœsch [Mon, 4 Sep 2017 13:45:11 +0000 (15:45 +0200)]
lavd: drop QTKit indev

QTKit has been deprecated in favor of AVFoundation for years, and we
have an avfoundation input device.

See https://developer.apple.com/documentation/qtkit

20 months agoavfilter/vf_datascope: make it possible for output window to automatically change...
Paul B Mahol [Mon, 4 Sep 2017 12:20:29 +0000 (14:20 +0200)]
avfilter/vf_datascope: make it possible for output window to automatically change position

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavformat/flvdec: Set need_context_update when setting the initial extradata
Alex Converse [Tue, 29 Aug 2017 17:47:26 +0000 (10:47 -0700)]
avformat/flvdec: Set need_context_update when setting the initial extradata

Fixes ticket 6398.

Debugged with the help of James Almer and Hendrik Leppkes.

20 months agoavfilter/vf_datascope: add timeline support to pixscope and oscilloscope
Paul B Mahol [Sun, 3 Sep 2017 18:42:04 +0000 (20:42 +0200)]
avfilter/vf_datascope: add timeline support to pixscope and oscilloscope

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agodoc/filters: add missing '' for blend example
Paul B Mahol [Sun, 3 Sep 2017 18:00:53 +0000 (20:00 +0200)]
doc/filters: add missing '' for blend example

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agodoc/filters: add one more blend example
Paul B Mahol [Sun, 3 Sep 2017 18:00:08 +0000 (20:00 +0200)]
doc/filters: add one more blend example

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/vf_displace: add mirror edge mode
Paul B Mahol [Sun, 3 Sep 2017 12:15:33 +0000 (14:15 +0200)]
avfilter/vf_displace: add mirror edge mode

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/vf_displace: remove useless requirement that SAR matches between input streams
Paul B Mahol [Sun, 3 Sep 2017 11:37:43 +0000 (13:37 +0200)]
avfilter/vf_displace: remove useless requirement that SAR matches between input streams

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agoavfilter/vf_subtitles: enable processing of alpha channel
Paul B Mahol [Wed, 30 Aug 2017 19:04:02 +0000 (21:04 +0200)]
avfilter/vf_subtitles: enable processing of alpha channel

Fixes #6605.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
20 months agodoc/filters.texi: Add default values to vf_vaguedenoiser options
Leo Izen [Sun, 3 Sep 2017 09:01:13 +0000 (05:01 -0400)]
doc/filters.texi: Add default values to vf_vaguedenoiser options

20 months agolavd: drop disabled v4l code
Clément Bœsch [Sat, 2 Sep 2017 22:18:57 +0000 (00:18 +0200)]
lavd: drop disabled v4l code

This code is disabled since 2012. V4L1 was dropped from the kernel more
than 10 years ago.

20 months agoavcodec/dirac_vlc: Fix invalid shift in ff_dirac_golomb_read_32bit()
Michael Niedermayer [Fri, 1 Sep 2017 17:56:12 +0000 (19:56 +0200)]
avcodec/dirac_vlc: Fix invalid shift in ff_dirac_golomb_read_32bit()

Fixes: runtime error: shift exponent 64 is too large for 64-bit type 'residual' (aka 'unsigned long')
Fixes: 2838/clusterfuzz-testcase-minimized-6260066086813696

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/dirac_dwt: Fix multiple overflows in 9/7 lifting
Michael Niedermayer [Fri, 1 Sep 2017 17:56:11 +0000 (19:56 +0200)]
avcodec/dirac_dwt: Fix multiple overflows in 9/7 lifting

Fixes: runtime error: signed integer overflow: 1073901567 + 1073901567 cannot be represented in type 'int'
Fixes: 3124/clusterfuzz-testcase-minimized-454643435752652

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/diracdec: Fix integer overflow in INTRA_DC_PRED()
Michael Niedermayer [Fri, 1 Sep 2017 17:56:10 +0000 (19:56 +0200)]
avcodec/diracdec: Fix integer overflow in INTRA_DC_PRED()

Fixes: runtime error: signed integer overflow: 1168175789 + 1168178473 cannot be represented in type 'int'
Fixes: 3081/clusterfuzz-testcase-minimized-4807564879462400
Fixes: 2844/clusterfuzz-testcase-minimized-5561715838156800

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agobuild: drop unused sndio_h and asoundlib_h
Clément Bœsch [Wed, 30 Aug 2017 11:56:27 +0000 (13:56 +0200)]
build: drop unused sndio_h and asoundlib_h

20 months agobuild: make sndio part of the autodetected libraries
Clément Bœsch [Wed, 30 Aug 2017 11:41:23 +0000 (13:41 +0200)]
build: make sndio part of the autodetected libraries

sndio is already autodetected, this commit makes sure
--disable-autodetect actually disable it unless --enable-sndio is
specified.

20 months agobuild: make jack part of the autodetected libraries
Clément Bœsch [Wed, 30 Aug 2017 11:34:50 +0000 (13:34 +0200)]
build: make jack part of the autodetected libraries

jack is already autodetected, this commit makes sure
--disable-autodetect actually disable it unless --enable-jack is
specified.

20 months agobuild: make alsa part of the autodetected libraries
Clément Bœsch [Wed, 30 Aug 2017 11:28:49 +0000 (13:28 +0200)]
build: make alsa part of the autodetected libraries

alsa libs are already autodetected, this commit makes sure
--disable-autodetect actually disable it unless --enable-alsa is
specified.

20 months agobuild: make sure a disabled autodetect still pick the libc's iconv
Clément Bœsch [Wed, 30 Aug 2017 10:26:01 +0000 (12:26 +0200)]
build: make sure a disabled autodetect still pick the libc's iconv

20 months agobuild: add --disable-autodetect switch
Clément Bœsch [Fri, 28 Jul 2017 11:44:07 +0000 (13:44 +0200)]
build: add --disable-autodetect switch

20 months agobuild: simplify weak-enabling of autodetected libraries
Clément Bœsch [Fri, 28 Jul 2017 11:39:00 +0000 (13:39 +0200)]
build: simplify weak-enabling of autodetected libraries

20 months agobuild: remove vda_framework from enable_weak
Clément Bœsch [Fri, 28 Jul 2017 11:31:35 +0000 (13:31 +0200)]
build: remove vda_framework from enable_weak

vda_framework is already pulled by the weakly enabled vda and
videotoolbox.

20 months agobuild: replace use of HAVE_SDL2 with existing CONFIG_SDL2
Clément Bœsch [Wed, 30 Aug 2017 11:46:38 +0000 (13:46 +0200)]
build: replace use of HAVE_SDL2 with existing CONFIG_SDL2

There is no need for duplication.

20 months agobuild: treat sdl2 like other autodetected libraries
Clément Bœsch [Wed, 30 Aug 2017 11:13:08 +0000 (13:13 +0200)]
build: treat sdl2 like other autodetected libraries

20 months agobuild: isolate sdl-to-sdl2 aliasing
Clément Bœsch [Wed, 30 Aug 2017 11:12:14 +0000 (13:12 +0200)]
build: isolate sdl-to-sdl2 aliasing

This simplifies incoming SDL related changes by removing potential
mismatching states of sdl and sdl2 variables. Since a component can have
all kind of states (such as unset, enabled, disabled or requested),
keeping these variables in sync manually in random places is not robust.

20 months agobuild: treat securetransport and schannel like other autodetected libraries
Clément Bœsch [Fri, 28 Jul 2017 11:22:40 +0000 (13:22 +0200)]
build: treat securetransport and schannel like other autodetected libraries

20 months agobuild: treat libxcb like other autodetected libraries
Clément Bœsch [Fri, 28 Jul 2017 11:16:42 +0000 (13:16 +0200)]
build: treat libxcb like other autodetected libraries

20 months agobuild: treat iconv like other autodetected libraries
Clément Bœsch [Fri, 28 Jul 2017 10:58:39 +0000 (12:58 +0200)]
build: treat iconv like other autodetected libraries

20 months agobuild: treat crystalhd like other hwaccels
Clément Bœsch [Fri, 28 Jul 2017 10:55:43 +0000 (12:55 +0200)]
build: treat crystalhd like other hwaccels

20 months agobuild: group z libs with other autodetected libraries
Clément Bœsch [Fri, 28 Jul 2017 10:18:59 +0000 (12:18 +0200)]
build: group z libs with other autodetected libraries

20 months agoavcodec/nvenc: always output picture timing SEI
Timo Rothenpieler [Sat, 2 Sep 2017 13:39:24 +0000 (15:39 +0200)]
avcodec/nvenc: always output picture timing SEI

Interlaced encoding profits from it, or might even need it in some
players.
No harm in enabling it unconditionally.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agoavcodec/internal: move FF_QSCALE_TYPE defines from avcodec.h
James Almer [Fri, 1 Sep 2017 17:44:27 +0000 (14:44 -0300)]
avcodec/internal: move FF_QSCALE_TYPE defines from avcodec.h

Their use in the public header is deprecated and will be removed, but
they are still needed by some codecs at least as long as qscale related
deprecated fields in the AVFrame struct remain in the tree.

20 months agoavfilter: remove duplicate and disabled trace log function
James Almer [Wed, 30 Aug 2017 04:41:43 +0000 (01:41 -0300)]
avfilter: remove duplicate and disabled trace log function

It's already defined and actually enabled depending on compiler options
elsewhere.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agolavf: make avio_read_partial() public
wm4 [Thu, 17 Aug 2017 13:01:44 +0000 (15:01 +0200)]
lavf: make avio_read_partial() public

Main use-case is proxying avio through a foreign I/O layer and a custom
AVIO context, without losing latency and performance characteristics.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Merged from Libav commit 173b56218f39c64.

20 months agoavformat/avio: update avio_alloc_context() doxy
James Almer [Fri, 1 Sep 2017 15:26:28 +0000 (12:26 -0300)]
avformat/avio: update avio_alloc_context() doxy

It must be freed using avio_context_free() starting with commit
b12e4d3bb8df994f042ff1216fb8de2b967aab9e.

Found-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavformat/dash:add copyright to dash.c
Steven Liu [Fri, 1 Sep 2017 10:52:56 +0000 (18:52 +0800)]
avformat/dash:add copyright to dash.c

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
20 months agoavcodec/nvenc: only push cuda context on encoder close if encoder exists
Timo Rothenpieler [Wed, 30 Aug 2017 19:12:23 +0000 (21:12 +0200)]
avcodec/nvenc: only push cuda context on encoder close if encoder exists

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agoavcodec/nvenc: add support for specifying entropy coding mode
Timo Rothenpieler [Wed, 30 Aug 2017 19:06:25 +0000 (21:06 +0200)]
avcodec/nvenc: add support for specifying entropy coding mode

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agoUse the new AVIOContext destructor.
Anton Khirnov [Fri, 1 Sep 2017 05:16:33 +0000 (02:16 -0300)]
Use the new AVIOContext destructor.

(cherry picked from commit 6f554521afdf7ab4edbfaa9536660a1dca946b19)
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavio: add a destructor for AVIOContext
Anton Khirnov [Sun, 27 Aug 2017 16:26:58 +0000 (13:26 -0300)]
avio: add a destructor for AVIOContext

Before this commit, AVIOContext is to be freed with a plain av_free(),
which prevents us from adding any deeper structure to it.

(cherry picked from commit 99684f3ae752fc8bfb44a2dd1482f8d7a3d8536d)
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavformat/dash: move reused API to common file and header file
Steven Liu [Fri, 1 Sep 2017 02:20:56 +0000 (10:20 +0800)]
avformat/dash: move reused API to common file and header file

move from dashenc, move DASHTmplId and dash_fill_tmpl_params to
dash.c, they will be used by dash demuxer and dash muxer.

v2 fixed:
1. rename common file from dashcomm.* to dash.*
Suggested-by: Hendrik Leppkes <h.leppkes@gmail.com>
v3 fixed:
1. rename header file pre defined
2. add ff_ prefix for the internal API
Suggested-by: James Almer <jamrial@gmail.com>
Suggested-by: Timo Rothenpieler <timo@rothenpieler.org>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Steven Liu <lq@onvideo.cn>
20 months agoavformat/mxfdec: Fix Sign error in mxf_read_primer_pack()
孙浩(晓黑) [Tue, 29 Aug 2017 21:59:21 +0000 (23:59 +0200)]
avformat/mxfdec: Fix Sign error in mxf_read_primer_pack()

Fixes: 20170829B.mxf

Co-Author: 张洪亮(望初)" <wangchu.zhl@alibaba-inc.com>
Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/mxfdec: Fix DoS issues in mxf_read_index_entry_array()
孙浩(晓黑) [Tue, 29 Aug 2017 21:59:21 +0000 (23:59 +0200)]
avformat/mxfdec: Fix DoS issues in mxf_read_index_entry_array()

Fixes: 20170829A.mxf

Co-Author: 张洪亮(望初)" <wangchu.zhl@alibaba-inc.com>
Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/nsvdec: Fix DoS due to lack of eof check in nsvs_file_offset loop.
孙浩(晓黑) [Tue, 29 Aug 2017 21:59:21 +0000 (23:59 +0200)]
avformat/nsvdec: Fix DoS due to lack of eof check in nsvs_file_offset loop.

Fixes: 20170829.nsv

Co-Author: 张洪亮(望初)" <wangchu.zhl@alibaba-inc.com>
Found-by: Xiaohei and Wangchu from Alibaba Security Team
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavocdec/libopus: fix typo
pkviet [Thu, 31 Aug 2017 22:44:11 +0000 (00:44 +0200)]
avocdec/libopus: fix typo

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/mov: prevent duplication of first fragment's ctts_data
Daniel Glöckner [Sun, 6 Aug 2017 01:04:53 +0000 (03:04 +0200)]
avformat/mov: prevent duplication of first fragment's ctts_data

MP4 files with fragments might have the first moof box that is mentioned
in a fragment index before the first mdat box. Since it is then already
parsed by mov_read_header, we have to make sure that mov_switch_root
will not parse it again when seeking by setting the headers_read flag in
the index. Parsing it a second time would cause the ctts_data array to
receive a second copy of the information from the trun box, leading to
wrong PTS values for the second and following fragments in presence of
B-frames.

Fixes ticket 6560.

Signed-off-by: Daniel Glöckner <daniel-gl@gmx.net>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/mov: Bail when invalid sample data is present.
Dale Curtis [Mon, 31 Jul 2017 20:44:22 +0000 (13:44 -0700)]
avformat/mov: Bail when invalid sample data is present.

ctts data in ffmpeg relies on the index entries array to be 1:1
with samples... yet sc->sample_count can be read directly from
the 'stsz' box and index entries are only generated if a chunk
count has been read from 'stco' box.

Ensure that if sc->sample_count > 0, sc->chunk_count is too as
a basic sanity check. Additionally we need to check that after
the index is built we have the right number of entries, so we
also check in mov_read_trun() that sc->sample_count ==
st->nb_index_entries.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/concatdec: add fallback for calculating file duration
Justin Ruggles [Tue, 29 Aug 2017 02:45:20 +0000 (22:45 -0400)]
avformat/concatdec: add fallback for calculating file duration

If a file does not have a known duration, this leads to the timestamps
starting over for the next file, causing non-monotonic timestamps.
To prevent this, track the duration during demuxing and use it to
determine the current file duration before opening the next file.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
20 months agoavcodec/fits: add missing header includes
James Almer [Thu, 31 Aug 2017 14:26:36 +0000 (11:26 -0300)]
avcodec/fits: add missing header includes

Fixes checkheaders.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agofate: add tests for some video source filters
Tobias Rapp [Thu, 17 Aug 2017 12:40:40 +0000 (14:40 +0200)]
fate: add tests for some video source filters

Adds FATE tests for the previously untested allrgb, allyuv, rgbtestsrc,
smptebars, smptehdbars and yuvtestsrc filters.

Also adds a test for testsrc2 filter with rgb+alpha.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
20 months agofate/flvenc: set bitexact output format flag explicitly
James Almer [Thu, 31 Aug 2017 02:21:41 +0000 (23:21 -0300)]
fate/flvenc: set bitexact output format flag explicitly

Using the encoder flags to set the muxer in bitexact mode is deprecated.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoffmpeg_opt: add proper deprecation guards to lowres code
James Almer [Thu, 31 Aug 2017 01:31:35 +0000 (22:31 -0300)]
ffmpeg_opt: add proper deprecation guards to lowres code

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agofate/pixlet : add test for rgb
Martin Vignali [Sun, 2 Apr 2017 21:25:33 +0000 (23:25 +0200)]
fate/pixlet : add test for rgb

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavfilter/vf_mcdeint: remove usage of deprecated AVCodecContext.me_method
James Almer [Mon, 28 Aug 2017 16:40:06 +0000 (13:40 -0300)]
avfilter/vf_mcdeint: remove usage of deprecated AVCodecContext.me_method

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavfilter/af_adelay: remove requirement that at least one delay should be provided
Paul B Mahol [Wed, 30 Aug 2017 16:14:10 +0000 (18:14 +0200)]
avfilter/af_adelay: remove requirement that at least one delay should be provided

Such requirement is not necessary and code works without it just fine.

Signed-off-by: Paul B Mahol <onemda@gmail.com>