1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Commit Graph

87604 Commits

Author SHA1 Message Date
Clément Bœsch
1cf23e3fdd build: cleanup audiotoolbox handling
*_at codecs only need the AudioToolbox framework, which is now checked
like the other Apple frameworks.
2017-09-08 18:55:19 +02:00
Clément Bœsch
496d0178b0 build: add --disable-coreimage autodetect switch 2017-09-08 18:55:19 +02:00
Clément Bœsch
97d8013582 build: add --disable-avfoundation autodetect switch 2017-09-08 18:55:19 +02:00
Clément Bœsch
b6dce64a8e build: add check_apple_framework()
This will be used in the following commits.
2017-09-08 18:55:19 +02:00
Clément Bœsch
f8519529cf lavfi/coreimage: reduce dependency scope from QuartzCore to CoreImage
What is required by the filter is CoreImage, there is no QuartzCore
usage. QuartzCore/CoreImage.h is simply an include to
CoreImage/CoreImage.h.
2017-09-08 18:55:19 +02:00
Clément Bœsch
b476e7720c build: fix objcc header check
$headers is a variable set in the context of other functions (we don't
use the "local" keyword in our scripts, so those variables are global).

Currently, when checking for AVFoundation/AVFoundation.h, the actual
enabled header is math.h.

Similarly, when testing for QuartzCore/CoreImage.h, the actual enabled
header is CoreGraphics/CoreGraphics.h.

This is completely broken and may be the reason why these checks are
made in random places.
2017-09-08 18:55:19 +02:00
Clément Bœsch
f61379cbd4 lavu/timer.h: add Linux Perf API support
Refer to "checkasm: use perf API on Linux ARM*" commit for the
rationale.

The implementation is somehow duplicated with checkasm, but so is the
current usage of AV_READ_TIME(). Until these implementations and
heuristics are made consistent, I don't see a way of sharing that code.

Note: when using libavutil/timer.h, it is now important to include
before any other include due to the _GNU_SOURCE requirement.
2017-09-08 18:51:05 +02:00
Clément Bœsch
e0b9b3e60e lavu/tests: move timer.h include earlier
In the next commit, timer.h will require a _GNU_SOURCE to be set before
including system headers. This commit prevents compilation failures.
2017-09-08 18:51:05 +02:00
Clément Bœsch
dc27df47ff lavu/tests/des: rename crypt to crypt_ref
This will prevent a symbol clash with crypt(3) after unistd.h is
included.
2017-09-08 18:51:05 +02:00
Clément Bœsch
9c0d823a7c lavu/timer.h: factor out timer report
This commit is meant to reduce the diff in the following one.
2017-09-08 18:51:05 +02:00
Clément Bœsch
e0d56f097f 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.
2017-09-08 18:51:05 +02:00
Paul B Mahol
cf0eed2525 avfilter: add Haas stereo enhancer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-09-08 18:29:53 +02:00
Ilia Valiakhmetov
e59da0f7ff avcodec/vp9: Add tile threading support
Signed-off-by: Ilia Valiakhmetov <zakne0ne@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2017-09-08 10:25:40 -04:00
Ilia Valiakhmetov
83c12fefd2 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>
2017-09-08 10:25:32 -04:00
Mark Wachsler
fde5c7dc79 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>
2017-09-08 13:48:40 +02:00
Kaustubh Raste
9b2c3c406f 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>
2017-09-08 13:48:40 +02:00
Kaustubh Raste
c75b23cbea 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>
2017-09-08 13:48:40 +02:00
Kaustubh Raste
2e79813a8e 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>
2017-09-08 13:48:40 +02:00
Nicolas George
8043d8eb3b ffmpeg: send EOF pts to filters. 2017-09-08 10:31:07 +02:00
Nicolas George
5ba2aef6ec lavfi/buffersrc: add av_buffersrc_close(). 2017-09-08 10:31:01 +02:00
Nicolas George
36c111c40f ffmpeg: use reordered duration for stream PTS. 2017-09-08 10:21:59 +02:00
Nicolas George
dfed8e2cbb ffmpeg: rename a variable.
Makes the reason of the "FIXME" comment more obvious.
Avoid name conflicts for the next commit.
2017-09-08 10:21:59 +02:00
Nicolas George
f5a9c63401 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.
2017-09-08 10:21:59 +02:00
Tobias Rapp
d47159a42d 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>
2017-09-08 08:54:20 +02:00
Paul B Mahol
e1524de454 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>
2017-09-07 16:49:46 +02:00
Michael Niedermayer
afc9c683ed 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>
2017-09-07 15:19:22 +02:00
Michael Niedermayer
9cb4eb7728 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>
2017-09-07 15:19:22 +02:00
Michael Niedermayer
913feb6263 avformat/gdv: Make FixedSize static
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-07 15:19:22 +02:00
Tobias Rapp
912b6af26e 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>
2017-09-07 13:26:44 +02:00
Timo Rothenpieler
d0961d3069 avcodec/nvenc: sanitize variable names 2017-09-07 12:08:32 +02:00
Timo Rothenpieler
a56d0497cb avcodec/nvenc: migrate to new encode API
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2017-09-07 12:08:32 +02:00
James Almer
cf42f316c5 fate: fix fate-lavf-fits dependencies
We need the fits muxer/demuxer.
2017-09-06 22:53:17 -03:00
Paras Chadha
b07faf39ed avcodec/fitsdec: write output to frame directly
Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-06 22:48:42 -03:00
Steven Liu
ef7fe81b85 flvdec: Check the avio_seek return value after reading a metadata packet
merge from libav: 585dc1aece

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>
2017-09-07 08:30:14 +08:00
Pavel Koshevoy
25b5096400 lavfi/atempo: Avoid false triggering an assertion failure
Steps to reproduce:
1. revert 4240e5b047
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>
2017-09-06 23:57:59 +02:00
Pavel Koshevoy
edb4ba5bd4 Revert "lavfi/atempo: avoid false triggering an assertion failure"
This reverts commit 4240e5b047.

Fixes ticket #6540.

Signed-off-by: Marton Balint <cus@passwd.hu>
2017-09-06 23:57:54 +02:00
James Almer
f4e593f7b5 avcodec/audiotoolboxdec: use av_freep()
This prevents leaving dangling pointers.
2017-09-06 13:04:21 -03:00
James Almer
3242babf64 avcodec/audiotoolboxdec: switch to the new generic filtering mechanism
Tested-by: ubitux
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-06 12:54:27 -03:00
James Almer
e49338a9c0 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>
2017-09-06 11:35:14 -03:00
James Almer
7273e234de avcodec/audiotoolboxdec: always use a copy of the AVCodecContext extradata
Fixes memleaks introduced by 954e2b3d34

Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-06 11:35:07 -03:00
Paul B Mahol
eea69a9f25 avfilter/af_dcshift: add direct path
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-09-06 11:46:24 +02:00
Michael Niedermayer
d8bc198d09 avfilter/vf_overlay: Restore shorthand option order
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-09-05 23:55:19 +02:00
Kaustubh Raste
fa805df060 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>
2017-09-05 22:16:03 +02:00
James Almer
9a174d203a avfilter/lavfutils: remove usage of AVStream->codec
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-05 14:21:41 -03:00
Karthick J
837c55e072 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>
2017-09-05 23:30:52 +08:00
Clément Bœsch
516ac7bcc7 build: consistent spacing between lists (cosmetics) 2017-09-05 12:45:25 +02:00
Paul B Mahol
a5e6cd79ec avfilter/avf_avectorscope: fix mistake in previous commit
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-09-05 11:55:23 +02:00
Paul B Mahol
2c10f054c2 avfilter/avf_avectorscope: add possibility to auto zoom
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-09-05 11:43:49 +02:00
Paul B Mahol
6faa1275a2 avfilter: add despill filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-09-05 08:46:48 +02:00
James Almer
6cadbb16e9 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>
2017-09-04 17:48:41 -03:00