1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
Commit Graph

93892 Commits

Author SHA1 Message Date
James Almer
e1839283bc doc: add basic documentation for libdav1d
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-20 18:21:33 -03:00
Daniel Kucera
8d9910a23a ffplay: added option always on top for video window
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Daniel Kucera <github@danman.eu>
2019-05-20 17:51:43 -03:00
James Almer
fbc5a27694 avcodec/libdav1d: fine tune thread distribution
As suggested by Ronald, don't map auto threads to frame threads only, and
instead distribute them between frame and tile more efficiently.
Add a new framethreads override option, similar to the tilethreads one.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-20 16:20:04 -03:00
Baptiste Coudurier
b401a4ab8a avformat/mxfenc: support XAVC long gop 2019-05-20 11:58:12 -07:00
Michael Niedermayer
3c0bfa7d1a avcodec/cpia: Check input size also against linesizes and EOL
Fixes: Timeout (14sec -> 29ms)
Fixes: 14733/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CPIA_fuzzer-5707022445576192

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-20 18:10:54 +02:00
Michael Niedermayer
fbdb3aa179 avcodec/v210dec: Fix alignment check for AVX2
Fixes: "null pointer dereference" (actually misaligned access but the tools seem not to support this)
Fixes: 14551/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_V210_fuzzer-5088609952071680

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-19 10:47:09 +02:00
Marton Balint
c61d16cf3b Revert "lavf/utils: Allow url credentials to contain a slash."
This reverts commit dd06f022b0.

Fixes ticket #7871 and reopens ticket #7816.

The introduced regression caused URL's with @ in them to be parsed incorrectly
which is a bigger issue then not being able to specify the slash character as a
password.

I think there are better ways to fix the original issue, like being able to
specify HTTP username and password as a protocol option, or adding a protocol
option to percent-decode the URL first.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-05-18 17:07:21 +02:00
Paul B Mahol
96c79d4e1f avfilter/vf_ocr: also export confidence of result 2019-05-17 19:10:12 +02:00
James Almer
3f31726994 avcodec/options: remove dead test code
It's been unused since 5d48e4eafa.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-17 12:48:24 -03:00
Werner Robitza
b99c73abf4 doc/scaler: explain values for src_range, dst_range
This fixes the description of the values for src_range and dst_range to
include the possible values and their meanings.

Signed-off-by: Werner Robitza <werner.robitza@gmail.com>
Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro>
2019-05-17 20:52:42 +05:30
Jun Zhao
206f72d0f2 libavdevice/gdigrab: fix ffmpeg -devices doesn't show gdigrab
missed the category AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT lead to
ffmpeg -devices doesn't show gdigrab as a input device

FIx #7848

Found-by: dangibson
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-17 21:51:20 +08:00
Gyan Doshi
c3458f06f4 doc/scaler: indicate some options as API only.
srcw, srch, dstw, dsth, src_format and dst_format were blocked for
CLI use in a0af9fd954 in order to fix ticket #4856
2019-05-17 13:07:16 +05:30
Michael Niedermayer
359d4e10a0 avformat/dashenc: use 64bit for handling the return of avio_tell()
The return code is 64bit, so this is more correct, especially in case it
actually would be a file of such large size

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-17 09:32:21 +05:30
Steven Liu
81acc9adbf doc/filters: update URL for sr filter script repository
Because the Original repository author loss loss of communication,
add new sr filter script repository.

Thanks to Gyan Doshi for a suggestion.

Signed-Off-By: Steven Liu <lq@chinaffmpeg.org>
2019-05-17 07:34:17 +08:00
Steven Liu
14c58c6aca Revert "doc/filters: update URL for sr filter script repository"
This reverts commit c2771bbf81.
2019-05-17 07:33:25 +08:00
Ruiling Song
65646db8e8 avutil/tx: should check against (*ctx)
ctx is a pointer to pointer here.

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
2019-05-16 18:25:31 -03:00
Gyan Doshi
c2771bbf81 doc/filters: update URL for sr filter script repository
Thanks to Steven Liu for the update.
2019-05-17 00:22:04 +05:30
Lynne
6044534964 avutil/tx: fix forward compound non-mod-15 based MDCTs
There was a hardcoded value left. Wasn't caught earlier as no code uses
compound forward mod-3/5 MDCTs yet.
2019-05-16 17:31:53 +01:00
Paul B Mahol
6276b4db97 avfilter/vf_separatefields: switch to activate
Fixes timestamp of last output frame.
2019-05-16 12:31:57 +02:00
Paul B Mahol
7990df05f7 doc/filters: mention obvious operation, for our always clueless users 2019-05-16 10:40:38 +02:00
Gyan Doshi
8cf947ca4c avfilter/drawtext: stop resource leak
Fixes Coverity CID 1445099
2019-05-16 10:30:28 +05:30
Lynne
87ee9d580c lavu: bump minor and update APIchanges for the new transform API 2019-05-16 00:02:15 +01:00
Guo, Yejun
ae6486c625 configure: replace 'pr' with printf since busybox does not support pr
This patch is based on https://trac.ffmpeg.org/ticket/5680 provided by
Kylie McClain <somasis@exherbo.org> at Wed, 29 Jun 2016 16:37:20 -0400,
and have some changes.

contributor: Kylie McClain <somasis@exherbo.org>
contributor: avih <avihpit@yahoo.com>
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2019-05-15 21:54:31 +02:00
Philip Langdale
13168ecbdc avfilter/vf_scale_cuda: Simplify output plane addressing
I'm not sure why this was written the way it was originally. We
initialise the plane addresses correctly in hwcontext_cuda so
why try and play games to calculate the plane offsets directly
in this code?
2019-05-15 11:40:50 -07:00
Philip Langdale
bfbde996cf avfilter/vf_scale_cuda: Add support for YUV444P16
This format is interesting because it's what you get for decoded
10/12bit HEVC 4:4:4.
2019-05-15 11:40:50 -07:00
Philip Langdale
89bd7554b2 avfilter/vf_scale_cuda: Fix incorrect scaling of > 8bit content
When i converted the filter to use texture objects instead of
texture references, I incorrect dropped the `pixel_size` scaling
factor when setting `pitchInBytes`. `src_pitch` is in pixels and
so must be scaled up.
2019-05-15 11:40:50 -07:00
Lynne
b79b29ddb1 libavutil: add an FFT & MDCT implementation
This commit adds a new API to libavutil to allow for arbitrary transformations
on various types of data.
This is a partly new implementation, with the power of two transforms taken
from libavcodec/fft_template, the 5 and 15-point FFT taken from mdct15, while
the 3-point FFT was written from scratch.
The (i)mdct folding code is taken from mdct15 as well, as the mdct_template
code was somewhat old, messy and not easy to separate.

A notable feature of this implementation is that it allows for 3xM and 5xM
based transforms, where M is a power of two, e.g. 384, 640, 768, 1280, etc.
AC-4 uses 3xM transforms while Siren uses 5xM transforms, so the code will
allow for decoding of such streams.
A non-exaustive list of supported sizes:
4, 8, 12, 16, 20, 24, 32, 40, 48, 60, 64, 80, 96, 120, 128, 160, 192, 240,
256, 320, 384, 480, 512, 640, 768, 960, 1024, 1280, 1536, 1920, 2048, 2560...

The API was designed such that it allows for not only 1D transforms but also
2D transforms of certain block sizes. This was partly on accident as the stride
argument is required for Opus MDCTs, but can be used in the context of a 2D
transform as well.
Also, various data types would be implemented eventually as well, such as
"double" and "int32_t".

Some performance comparisons with libfftw3f (SIMD disabled for both):
120:
  22353 decicycles in     fftwf_execute,     1024 runs,      0 skips
  21836 decicycles in compound_fft_15x8,     1024 runs,      0 skips

128:
  22003 decicycles in       fftwf_execute,   1024 runs,      0 skips
  23132 decicycles in monolithic_fft_ptwo,   1024 runs,      0 skips

384:
  75939 decicycles in      fftwf_execute,    1024 runs,      0 skips
  73973 decicycles in compound_fft_3x128,    1024 runs,      0 skips

640:
 104354 decicycles in       fftwf_execute,   1024 runs,      0 skips
 149518 decicycles in compound_fft_5x128,    1024 runs,      0 skips

768:
 109323 decicycles in      fftwf_execute,    1024 runs,      0 skips
 164096 decicycles in compound_fft_3x256,    1024 runs,      0 skips

960:
 186210 decicycles in      fftwf_execute,    1024 runs,      0 skips
 215256 decicycles in compound_fft_15x64,    1024 runs,      0 skips

1024:
 163464 decicycles in       fftwf_execute,   1024 runs,      0 skips
 199686 decicycles in monolithic_fft_ptwo,   1024 runs,      0 skips

With SIMD we should be faster than fftw for 15xM transforms as our fft15 SIMD
is around 2x faster than theirs, even if our ptwo SIMD is slightly slower.

The goal is to remove the libavcodec/mdct15 code and deprecate the
libavcodec/avfft interface once aarch64 and x86 SIMD code has been ported.
New code throughout the project should use this API.

The implementation passes fate when used in Opus, AAC and Vorbis, and the output
is identical with ATRAC9 as well.
2019-05-15 17:39:59 +01:00
Lynne
f62ee527cb aarch64/asm-offsets: remove old CELT offsets
They're not used and they're incorrect.
2019-05-14 23:41:24 +01:00
James Almer
58d167bcd5 avcodec/Makefile: add missing pngdsp dependency to the lscr decoder
Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-14 16:47:56 -03:00
Paul B Mahol
f49cec2ba8 avfilter: add asr filter 2019-05-14 15:17:14 +02:00
Andreas Rheinhardt
670251de56 avfilter/vf_stack: Don't modify const strings
b3b7ba62 introduced undefined behaviour: A (non-modifiable) string
literal has been assigned to a modifiable string; said string was indeed
modified later via av_strtok.
This of course caused compiler warnings because of the discarded
qualifier; these are in particular fixed by this commit.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2019-05-14 14:47:51 +02:00
Paul B Mahol
8ef163ba9e avfilter: add xmedian filter 2019-05-14 14:43:56 +02:00
Michael Niedermayer
87a54e150e avcodec/cinepak: Check available input against encoded buffer size
Fixes: Timeout (12sec -> 2sec)
Fixes: 14606/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CINEPAK_fuzzer-5738687561728000

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-14 12:06:26 +02:00
Andreas Rheinhardt
8b2140de63 avutil: Add missing reference files for pixdesc fate test
Commit cd48318035 added support for NV24 and NV42, including several
fate tests for these formats, but did not include the reference files
for the tests filter-pixdesc-nv24 and filter-pixdesc-nv42. As a result,
these two tests were broken.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-14 12:06:26 +02:00
Jun Zhao
bf6e0f709b lavf/dashdec: refactoring error handle logic for open_input
refactoring error handle logic for open_input.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-14 17:36:19 +08:00
Jun Zhao
c663046b41 lavf/dashdec: fix the coding logic after open_input fail
setting return status following goto will never be executed, so
adjust the location in the code.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-05-14 17:36:11 +08:00
Gyan Doshi
21832b93d5 doc/filters: add scale2ref example for proportional scaling 2019-05-13 21:58:19 +05:30
Michael Niedermayer
9d269301f0 swscale/tests/swscale: Lengthen pixfmt name buffer to 21 bytes
Some formats use longer names than 12.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-13 13:39:49 +02:00
Adam Richter
b8ed493061 libswcale: Fix possible string overflow in test.
In libswcale/tests/swcale.c, the function fileTest() calls sscanf in
an argument of "%12s" on character srcStr[] and dstStr[], which are
only 12 bytes.  So, if the input string is 12 characters, a
terminating null byte can be written past the end of these arrays.

This bug was found by cppcheck.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-05-13 13:39:40 +02:00
Paul B Mahol
f1c9d6fe70 avfilter/vf_chromahold: implement blend option 2019-05-13 12:15:32 +02:00
Gyan Doshi
dcc999819d doc/filters: mention drawtext command support 2019-05-13 12:22:05 +05:30
Gyan Doshi
87db1ca632 avfilter/drawtext: make command processing error-resilient
Prevents crash or interruption in text rendering
if new option string contains invalid values.
2019-05-13 10:34:32 +05:30
Rick Kern
98478c05ed lavc/videotoolboxenc: Add support for 10-bit HEVC encoding.
Hardware-accelerated encoding may not support 10-bit encoding. Use
'-require_sw 1' in this case.

Fixes: #7581

Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-05-12 16:30:11 -04:00
Rick Kern
714c8b0766 lavc/videotoolboxenc: simplify frame creation logic between OS X and iOS.
Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-05-12 16:22:51 -04:00
Rick Kern
247bda442f lavc/videotoolboxenc: add require_sw option to force software encoding.
Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-05-12 16:22:51 -04:00
Paul B Mahol
bd6942b4c0 avfilter/af_astats: fix calculations involving last sample 2019-05-12 17:12:06 +02:00
Paul B Mahol
2a4a364f6a avfilter/af_astats: fix initial values of variables 2019-05-12 17:12:06 +02:00
Philip Langdale
4fa4f1d7a9 swscale: Add test for isSemiPlanarYUV to pixdesc_query
Lauri had asked me what the semi planar formats were and that reminded
me that we could add it to pixdesc_query so we know exactly what the
list is.
2019-05-12 07:51:02 -07:00
Philip Langdale
cd48318035 swscale: Add support for NV24 and NV42
The implementation is pretty straight-forward. Most of the existing
NV12 codepaths work regardless of subsampling and are re-used as is.
Where necessary I wrote the slightly different NV24 versions.

Finally, the one thing that confused me for a long time was the
asm specific x86 path that did an explicit exclusion check for NV12.
I replaced that with a semi-planar check and also updated the
equivalent PPC code, which Lauri kindly checked.
2019-05-12 07:51:02 -07:00
Philip Langdale
5de4f1d871 avutil: Add NV24 and NV42 pixel formats
These are the 4:4:4 variants of the semi-planar NV12/NV21 formats.

These formats are not used much, so we've never had a reason to add
them until now. VDPAU recently added support HEVC 4:4:4 content
and when you use the OpenGL interop, the returned surfaces are in
NV24 format, so we need the pixel format for media players, even
if there's no direct use within ffmpeg.

Separately, there are apparently webcams that use NV24, but I've
never seen one.
2019-05-12 07:51:02 -07:00