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

8142 Commits

Author SHA1 Message Date
Paul B Mahol
4a69cd4e4e avfilter: add identity video filter 2021-03-06 12:41:30 +01:00
Jan Ekström
64af14555b avformat: add TTML muxer
Enables writing TTML documents or encoded TTML paragraphs as such
documents.

Additionally, a test for the combined TTML encoder and muxer has
been added to validate that the components still work.

Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
2021-03-05 19:45:00 +02:00
Jan Ekström
18713d22a2 avcodec: add TTML encoder
Enables encoding of other subtitle formats into TTML paragraphs.

Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
2021-03-05 19:45:00 +02:00
Jan Ekström
a0eec776b6 avcodec: enable usage of err_recognition for encoders
Enables the usage of such values as AV_EF_EXPLODE in encoders, which
can be useful in cases such as subtitle encoders where they have the
responsibility to validate the correctness of an incoming ASS dialog line.

Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
2021-03-05 19:45:00 +02:00
Andreas Rheinhardt
2ff40b98ec avformat: Deprecate AVFMT_FLAG_PRIV_OPT, remove av_demuxer_open on bump
This flag was added in 492026209b
in conjunction with av_demuxer_open() to allow to pass private
options to demuxers. It worked as follows: av_open_input_stream()
(the predecessor of avformat_open_input()) would not call the
read_header function if this flag is set. Instead the user could set
private options of the demuxer via the format's private class after
avformat_open_input() and then call av_demuxer_open() which called
the format's read_header function.

This approach was abandoned in e37f161e66
and av_demuxer_open() deprecated; instead the AVDictionary based way of
passing private options to the demuxer was choosen. Yet
AVFMT_FLAG_PRIV_OPT has never been deprecated and av_demuxer_open()
never removed. This commit implements the deprecation of the flag and
schedules av_demuxer_open for removal on the next major bump.
Given that av_demuxer_open() has been deprecated in 2012 and that this
flag is useless without it, the flag will be ignored after the next
major version bump.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-03-03 14:41:08 +01:00
Andreas Rheinhardt
3072438429 doc/codecs.texi: Remove removed or ineffective options
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-02-28 17:55:39 +01:00
James Almer
dd9227e48f avcodec/options: deprecate avcodec_get_frame_class()
AVFrame hasn't been a struct defined in libavcodec for a decade now, when
it was moved to libavutil.

Found-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-02-27 11:23:42 -03:00
Derek Buitenhuis
113a99270d doc/encoders: Add documentation for the GIF encoder
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2021-02-25 16:41:24 +00:00
Anton Khirnov
313c91beb8 ffprobe: stop printing deprecated fields
The FF_API macros are private and must not be used by external callers.
As the fields in question are to be removed without replacement, just
drop them.
The fields are:
AVPacket.convergence_duration
AVCodecContext.time_base
AVCodecContext.timecode_frame_start
AV_PIX_FMT_FLAG_PSEUDOPAL pixel descriptor flag
2021-02-22 11:14:29 +01:00
Lynne
5ca40d6d94
lavu/tx: support in-place FFT transforms
This commit adds support for in-place FFT transforms. Since our
internal transforms were all in-place anyway, this only changes
the permutation on the input.

Unfortunately, research papers were of no help here. All focused
on dry hardware implementations, where permutes are free, or on
software implementations where binary bloat is of no concern so
storing dozen times the transforms for each permutation and version
is not considered bad practice.
Still, for a pure C implementation, it's only around 28% slower
than the multi-megabyte FFTW3 in unaligned mode.

Unlike a closed permutation like with PFA, split-radix FFT bit-reversals
contain multiple NOPs, multiple simple swaps, and a few chained swaps,
so regular single-loop single-state permute loops were not possible.
Instead, we filter out parts of the input indices which are redundant.
This allows for a single branch, and with some clever AVX512 asm,
could possibly be SIMD'd without refactoring.

The inplace_idx array is guaranteed to never be larger than the
revtab array, and in practice only requires around log2(len) entries.

The power-of-two MDCTs can be done in-place as well. And it's
possible to eliminate a copy in the compound MDCTs too, however
it'll be slower than doing them out of place, and we'd need to dirty
the input array.
2021-02-21 17:05:16 +01:00
Ashish Singh
38aea9b041 avfilter: add vif filter
This is Visual Information Fidelity (VIF) filter and one of the component
filters of VMAF. It outputs the average VIF score over all frames.

Signed-off-by: Ashish Singh <ashk43712@gmail.com>
2021-02-16 15:00:50 +01:00
Paul B Mahol
6941d93faa avcodec/setts_bsf: add sample rate for expressions 2021-02-15 20:52:44 +01:00
Andreas Rheinhardt
4f49ca7bbc avdevice/avdevice: Deprecate AVDevice Capabilities API
It has been added in 6db42a2b6b,
yet since then none of the necessary create/free_device_capabilities
functions has been implemented, making this API completely useless.

Because of this one can already simplify
avdevice_capabilities_free/create and can already remove the function
pointers at the next major bump; given that the documentation explicitly
states that av_device_capabilities is not to be used by a user, it's
options can already be removed (save for the sentinel).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2021-02-14 21:07:57 +01:00
Paul B Mahol
bbf6183e11 avfilter/vf_datascope: pixscope: add commands support 2021-02-13 12:38:15 +01:00
Paul B Mahol
95b854dd06 avfilter/af_amix: rename sum option to normalize
It makes more sense to still use provided weights.
2021-02-12 23:01:52 +01:00
Paul B Mahol
48a0eb21aa avcodec: add setts bitstream filter 2021-02-12 19:50:07 +01:00
Paul B Mahol
edc45d1bd5 avfilter: add monochrome video filter 2021-02-12 00:08:39 +01:00
Jan Ekström
58e59396f5 avfilter/vf_zscale: add support for setting scaling filter parameters
param_a/b are utilized for this.
2021-02-11 20:45:56 +02:00
Paul B Mahol
0ef53cc72f avfilter/vf_pseudocolor: add two more presets 2021-02-11 14:37:14 +01:00
Paul B Mahol
2859c30cd9 avfilter/vf_pseudocolor: add opacity option 2021-02-11 14:37:14 +01:00
Paul B Mahol
ba2cebb49c avfilter/af_adeclick: add more descriptive options names 2021-02-11 11:39:55 +01:00
Paul B Mahol
4390573c44 avfilter: add exposure video filter 2021-02-10 19:23:48 +01:00
Paul B Mahol
579e4e57a2 avfilter: add aexciter audio filter 2021-02-10 19:21:01 +01:00
Michael Niedermayer
1bda9bb68a libavutil/common: Add FFABS64U()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-02-10 12:28:29 +01:00
Paul B Mahol
aa8adc9206 avfilter/vf_datascope: add commands support 2021-02-10 11:28:47 +01:00
Bohan Li
82aab8a4ee avcodec/libaomenc: add support for setting arbitrary libaom options
A new key & value API lets us gain access to newly added parameters
without adding explicit support for them in our wrapper. Add an
option utilizing this functionality in a similar manner to other
encoder libraries' wrappers.

Signed-off-by: Bohan Li <bohanli@google.com>
2021-02-10 11:52:46 +02:00
Paul B Mahol
d7cb8c51f0 avfilter/vf_curves: add commands support 2021-02-09 18:20:15 +01:00
Paul B Mahol
73ff84c3d4 avfilter/vf_swaprect: add support for commands 2021-02-09 11:39:26 +01:00
Paul B Mahol
ca042675ee avfilter/vf_maskfun: add support for commands 2021-02-09 11:24:31 +01:00
Paul B Mahol
a00ff56321 avfilter/vf_lut: add support for commands
While here remove excessive log and uninit() call in negate_init().
2021-02-08 16:37:23 +01:00
Paul B Mahol
dd01165f19 avfilter/vf_deband: add support for commands 2021-02-08 16:10:51 +01:00
Paul B Mahol
89f78dd0fe avfilter/vf_lut3d: lut3d, haldclut: add support for commands 2021-02-08 00:55:07 +01:00
Paul B Mahol
5f592136eb avfilter/vf_lut2: add support for commands 2021-02-07 22:41:49 +01:00
Paul B Mahol
bd5226704a avfilter: add colorize filter 2021-02-07 11:48:28 +01:00
Paul B Mahol
a52b9464e4 doc/general_contents: add few more entries
Also extend description of some entries.
2021-02-07 00:01:12 +01:00
Paul B Mahol
4b2968d305 avfilter/vf_deblock: add support for commands 2021-02-06 15:26:39 +01:00
Paul B Mahol
d8181cbbc4 avfilter/vf_lut3d: lut1d: add support for commands 2021-02-06 12:47:21 +01:00
Paul B Mahol
d0a24bfad1 avfilter/vf_mix: add support for commands 2021-02-06 11:34:28 +01:00
Gyan Doshi
d99cc17825 ffmpeg: add -fpsmax to clamp output framerate
Useful when encoding in batch or with aberrant inputs.
2021-02-05 22:54:18 +05:30
Paul B Mahol
fb9c56bbd5 avfilter/af_arnndn: add support for commands 2021-02-05 00:43:11 +01:00
Paul B Mahol
3d7ee5c91a avfilter/vf_blend: add support for commands 2021-02-04 21:44:31 +01:00
Paul B Mahol
5765149392 avfilter/af_amix: add sum option 2021-02-04 17:52:45 +01:00
Paul B Mahol
f6621a8e72 avfilter: add colorcorrect filter 2021-02-03 15:49:13 +01:00
Paul B Mahol
090f31f813 avfilter: add colorcontrast filter 2021-02-02 14:27:06 +01:00
Limin Wang
38caef3876 avformat/hlsenc: use AV_OPT_TYPE_DURATION
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-02-02 20:55:50 +08:00
Gyan Doshi
6c92557756 doc/ffmpeg: document apad option 2021-01-31 10:02:18 +05:30
Paul B Mahol
54de7dc372 avfilter/af_acrusher: add commands support 2021-01-30 23:53:38 +01:00
Paul B Mahol
633e344d96 avfilter/vf_lagfun: add support for commands 2021-01-30 17:28:26 +01:00
Paul B Mahol
d43a27ab6f avfilter/vf_pseudocolor: allow more advanced presets 2021-01-29 23:42:24 +01:00
Paul B Mahol
50dd020f04 avfilter/vf_lut3d: add prism interpolation 2021-01-29 23:41:07 +01:00
Paul B Mahol
26a53519dc avfilter/vf_lut3d: add pyramid interpolation 2021-01-29 23:41:07 +01:00
Paul B Mahol
ed51890191 doc/filters: mention commands support for pseudocolor 2021-01-28 20:56:16 +01:00
Paul B Mahol
d01aa49753 avfilter/vf_pseudocolor: add presets 2021-01-28 20:07:37 +01:00
Paul B Mahol
a9d23d33a1 avfilter: add colortemperature filter 2021-01-27 11:48:00 +01:00
Paul B Mahol
35f8628047 avfilter: add kirsch video filter 2021-01-27 11:46:26 +01:00
Paul B Mahol
021dc4f107 doc/filters: mention that shear filter supports commands 2021-01-27 11:45:31 +01:00
Paul B Mahol
2ee2e4cd41 avfilter/vf_colorchannelmixer: extend pl option functionality 2021-01-27 00:57:26 +01:00
Paul B Mahol
46f170e544 avfilter/vf_lenscorrection: add support for commands 2021-01-26 20:08:05 +01:00
Michael Niedermayer
5dd9567080 avutil/common: Add FFABSU() for a signed -> unsigned ABS
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-01-26 18:37:12 +01:00
Paul B Mahol
37f76c81d6 avfilter: add shear video filter 2021-01-26 12:19:09 +01:00
James Almer
56709ca8aa avcodec: deprecate AVCodecContext.debug_mv
It's been unused for almost three years now.

Signed-off-by: James Almer <jamrial@gmail.com>
2021-01-25 19:31:04 -03:00
Paul B Mahol
a2a06029cf avfilter/vf_lenscorrection: allow to change colors of unmapped pixels 2021-01-25 12:34:57 +01:00
Paul B Mahol
b897b52618 avfilter: add epx pixel art scaler 2021-01-25 00:48:35 +01:00
Paul B Mahol
e41a92910a avfilter/vf_lenscorrection: add bilinear interpolation 2021-01-25 00:47:06 +01:00
Paul B Mahol
b2bbcede5e avfilter/vf_colorchannelmixer: add option to preserve lightness 2021-01-23 22:28:35 +01:00
Gyan Doshi
d8a585d4d5 doc/ffmpeg: document adrift_threshold 2021-01-23 16:43:51 +05:30
Gyan Doshi
e8b46b2c73 doc/ffmpeg: restore location of stray passage
Added in 88fc1438c6, this passage was separated from its original
context over the years with unrelated entries sandwiched in between.
2021-01-23 15:41:52 +05:30
Gyan Doshi
c52ced7ca2 doc/fftools-common-opts: document max_alloc 2021-01-23 14:59:47 +05:30
Gyan Doshi
e73a8ecb38 doc/fftools-common-opts: document buildconf 2021-01-23 13:58:01 +05:30
Paul B Mahol
bb66fd7f90 avfilter/vf_estdif: make interpolation used user configurable 2021-01-22 18:03:12 +01:00
Paul B Mahol
95183d25e8 avfilter/vf_atadenoise: add sigma options 2021-01-22 16:21:22 +01:00
Paul B Mahol
117bf7394f avfilter/vf_nnedi: rewrite and cleanup code
Also add slice threading support.
Also add support for >8 depth formats.
Also add support for commands.
2021-01-18 14:05:51 +01:00
Paul B Mahol
9e1956175c avfilter/vf_maskedmerge: add yuv440p10 and commands support 2021-01-17 15:56:31 +01:00
Paul B Mahol
8d86d58941 avfilter/vf_datascope: add option to show only subset of components 2021-01-17 13:18:23 +01:00
Paul B Mahol
eb0f532c98 avfilter/vf_bbox: add support for commands 2021-01-17 12:22:28 +01:00
Paul B Mahol
b7817f23c0 avfilter/vf_phase: add support for commands 2021-01-16 20:47:52 +01:00
Paul B Mahol
e722b443e4 avfilter: add estdif video filter 2021-01-16 14:08:59 +01:00
Wonkap Jang
57dae5723f avcodec/libvpxenc: add a way to set VP9E_SET_SVC_REF_FRAME_CONFIG
In order to fine-control referencing schemes in VP9 encoding, there
is a need to use VP9E_SET_SVC_REF_FRAME_CONFIG method. This commit
provides a way to use the API through frame metadata.
2021-01-14 11:08:33 -08:00
Lynne
2d85e6e723
ac3enc_fixed: convert to 32-bit sample format
The AC3 encoder used to be a separate library called "Aften", which
got merged into libavcodec (literally, SVN commits and all).
The merge preserved as much features from the library as possible.

The code had two versions - a fixed point version and a floating
point version. FFmpeg had floating point DSP code used by other
codecs, the AC3 decoder including, so the floating-point DSP was
simply replaced with FFmpeg's own functions.
However, FFmpeg had no fixed-point audio code at that point. So
the encoder brought along its own fixed-point DSP functions,
including a fixed-point MDCT.

The fixed-point MDCT itself is trivially just a float MDCT with a
different type and each multiply being a fixed-point multiply.
So over time, it got refactored, and the FFT used for all other codecs
was templated.

Due to design decisions at the time, the fixed-point version of the
encoder operates at 16-bits of precision. Although convenient, this,
even at the time, was inadequate and inefficient. The encoder is noisy,
does not produce output comparable to the float encoder, and even
rings at higher frequencies due to the badly approximated winow function.

Enter MIPS (owned by Imagination Technologies at the time). They wanted
quick fixed-point decoding on their FPUless cores. So they contributed
patches to template the AC3 decoder so it had both a fixed-point
and a floating-point version. They also did the same for the AAC decoder.
They however, used 32-bit samples. Not 16-bits. And we did not have
32-bit fixed-point DSP functions, including an MDCT. But instead of
templating our MDCT to output 3 versions (float, 32-bit fixed and 16-bit fixed),
they simply copy-pasted their own MDCT into ours, and completely
ifdeffed our own MDCT code out if a 32-bit fixed point MDCT was selected.

This is also the status quo nowadays - 2 separate MDCTs, one which
produces floating point and 16-bit fixed point versions, and one
sort-of integrated which produces 32-bit MDCT.

MIPS weren't all that interested in encoding, so they left the encoder
as-is, and they didn't care much about the ifdeffery, mess or quality - it's
not their problem.

So the MDCT/FFT code has always been a thorn in anyone looking to clean up
code's eye.

Backstory over. Internally AC3 operates on 25-bit fixed-point coefficients.
So for the floating point version, the encoder simply runs the float MDCT,
and converts the resulting coefficients to 25-bit fixed-point, as AC3 is inherently
a fixed-point codec. For the fixed-point version, the input is 16-bit samples,
so to maximize precision the frame samples are analyzed and the highest set
bit is detected via ac3_max_msb_abs_int16(), and the coefficients are then
scaled up via ac3_lshift_int16(), so the input for the FFT is always at least 14 bits,
computed in normalize_samples(). After FFT, the coefficients are scaled up to 25 bits.

This patch simply changes the encoder to accept 32-bit samples, reusing
the already well-optimized 32-bit MDCT code, allowing us to clean up and drop
a large part of a very messy code of ours, as well as prepare for the future lavu/tx
conversion. The coefficients are simply scaled down to 25 bits during windowing,
skipping 2 separate scalings, as the hacks to extend precision are simply no longer
necessary. There's no point in running the MDCT always at 32 bits when you're
going to drop 6 bits off anyway, the headroom is plenty, and the MDCT rounds
properly.

This also makes the encoder even slightly more accurate over the float version,
as there's no coefficient conversion step necessary.

SIZE SAVINGS:
ARM32:
HARDCODED TABLES:
BASE           - 10709590
DROP  DSP      - 10702872 - diff:   -6.56KiB
DROP  MDCT     - 10667932 - diff:  -34.12KiB - both:   -40.68KiB
DROP  FFT      - 10336652 - diff: -323.52KiB - all:   -364.20KiB
SOFTCODED TABLES:
BASE           -  9685096
DROP  DSP      -  9678378 - diff:   -6.56KiB
DROP  MDCT     -  9643466 - diff:  -34.09KiB - both:   -40.65KiB
DROP  FFT      -  9573918 - diff:  -67.92KiB - all:   -108.57KiB

ARM64:
HARDCODED TABLES:
BASE           - 14641112
DROP  DSP      - 14633806 - diff:   -7.13KiB
DROP  MDCT     - 14604812 - diff:  -28.31KiB - both:   -35.45KiB
DROP  FFT      - 14286826 - diff: -310.53KiB - all:   -345.98KiB
SOFTCODED TABLES:
BASE           - 13636238
DROP  DSP      - 13628932 - diff:   -7.13KiB
DROP  MDCT     - 13599866 - diff:  -28.38KiB - both:   -35.52KiB
DROP  FFT      - 13542080 - diff:  -56.43KiB - all:    -91.95KiB

x86:
HARDCODED TABLES:
BASE           - 12367336
DROP  DSP      - 12354698 - diff:  -12.34KiB
DROP  MDCT     - 12331024 - diff:  -23.12KiB - both:   -35.46KiB
DROP  FFT      - 12029788 - diff: -294.18KiB - all:   -329.64KiB
SOFTCODED TABLES:
BASE           - 11358094
DROP  DSP      - 11345456 - diff:  -12.34KiB
DROP  MDCT     - 11321742 - diff:  -23.16KiB - both:   -35.50KiB
DROP  FFT      - 11276946 - diff:  -43.75KiB - all:    -79.25KiB

PERFORMANCE (10min random s32le):
ARM32 - before -  39.9x - 0m15.046s
ARM32 - after  -  28.2x - 0m21.525s
                       Speed:  -30%

ARM64 - before -  36.1x - 0m16.637s
ARM64 - after  -  36.0x - 0m16.727s
                       Speed: -0.5%

x86   - before - 184x -    0m3.277s
x86   - after  - 190x -    0m3.187s
                       Speed:   +3%
2021-01-14 01:44:12 +01:00
Nuo Mi
ebdd33086a avcodec: add vvc codec id and profiles
Signed-off-by: James Almer <jamrial@gmail.com>
2021-01-11 17:01:34 -03:00
Gyan Doshi
0fff6c039c doc/ffmpeg: document max_error_rate 2021-01-10 19:14:37 +05:30
Lingjiang Fang
c4407a3e00 doc/protocols: explain tcp listen option description
Signed-off-by: Marton Balint <cus@passwd.hu>
2021-01-09 17:08:27 +01:00
James Almer
5f9632e491 avcodec/av1dec: add an option to select an operating point
Signed-off-by: James Almer <jamrial@gmail.com>
2021-01-04 16:28:29 -03:00
Paul B Mahol
b112c86a2e avfilter/vf_w3fdif: add two more useful options 2021-01-03 22:23:51 +01:00
erankor
fde5593c7c avformat/http: support retry on connection error
Add 2 new options:
- reconnect_on_http_error - a list of http status codes that should be
    retried. the list can contain explicit status codes / the strings
    4xx/5xx.
- reconnect_on_network_error - reconnects on arbitrary errors during
    connect, e.g. ECONNRESET/ETIMEDOUT

the retry employs the same exponential backoff logic as the existing
reconnect/reconnect_at_eof flags.

related tickets:
https://trac.ffmpeg.org/ticket/6066
https://trac.ffmpeg.org/ticket/7768

Signed-off-by: Marton Balint <cus@passwd.hu>
2021-01-03 16:47:29 +01:00
Anton Khirnov
baecaa16c1 mpegvideo: use the AVVideoEncParams API for exporting QP tables
Do it only when requested with the AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS
flag.

Drop previous code using the long-deprecated AV_FRAME_DATA_QP_TABLE*
API. Temporarily disable fate-filter-pp, fate-filter-pp7,
fate-filter-spp. They will be reenabled once these filters are converted
in following commits.
2021-01-01 14:23:19 +01:00
Paul B Mahol
54cd025a82 avfilter: add temporal midway equalizer filter 2021-01-01 12:43:42 +01:00
Paul B Mahol
2f20e35892 avfilter/vf_w3fdif: add support for commands 2020-12-30 16:33:30 +01:00
Guo, Yejun
c720286ee3 vf_dnn_processing.c: add async support
Signed-off-by: Xie, Lin <lin.xie@intel.com>
Signed-off-by: Wu Zhiwen <zhiwen.wu@intel.com>
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
2020-12-29 09:31:06 +08:00
Steven Liu
e6e341b2f0 doc/muxers: correct description of hls_enc_key and hls_enc_iv
because hls_enc_key and hls_enc_iv get 16byte char
for example:
-hls_enc_key 0123456789abcdef -hls_enc_iv abcdefghijklmnop

Reviewed-by: Gyan Doshi <ffmpeg@gyani.pro>
Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
2020-12-28 11:09:14 +08:00
Gyan Doshi
bff6fbead8 doc/protocols: document cache option
Add entry for read_ahead_limit
2020-12-27 14:50:24 +05:30
Paul B Mahol
5b48d2af43 avfilter/vf_xmedian: add support for commands 2020-12-25 16:43:14 +01:00
Gyan Doshi
842714b5cb ffmpeg: add option stats_period
At present, progress stats are updated at a hardcoded interval of
half a second. For long processes, this can lead to bloated
logs and progress reports.

Users can now set a custom period using option -stats_period
Default is kept at 0.5 seconds.
2020-12-23 00:41:07 +05:30
Paul B Mahol
204a906437 avfilter/af_crystalizer: implement inverse filtering 2020-12-21 13:15:27 +01:00
Paul B Mahol
c1c2e6f968 avfilter/af_crystalizer: improve filter description 2020-12-21 11:51:00 +01:00
Andriy Gelman
cd97e1ff4d avformat/libamqp: parse vhost in uri
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
2020-12-21 01:27:33 -05:00
Paul B Mahol
6e96e3d970 avfilter: add shufflepixels video filter 2020-12-20 21:44:13 +01:00
Gyan Doshi
ab6a56773f doc/codecs: add entries for export_side_data
Document addition of venc_params and film_grain.
2020-12-20 15:09:28 +05:30
Paul B Mahol
3336ca4644 avfilter/vf_maskedthreshold: add support for commands 2020-12-19 23:08:09 +01:00
Paul B Mahol
64e572db46 avfilter/vf_maskedminmax: add support for commands 2020-12-19 20:46:00 +01:00
Paul B Mahol
4fcfecdd66 avfilter/vf_maskedclamp: add support for commands 2020-12-19 20:46:00 +01:00
Paul B Mahol
d6a356f115 avfilter/vf_bilateral: add support for commands 2020-12-19 20:46:00 +01:00
Paul B Mahol
31aa6bdb59 doc/filters: document that cas filter supports commands 2020-12-19 20:46:00 +01:00
Paul B Mahol
50a9210739 avfilter/vf_fillborders: add fade mode 2020-12-18 23:11:51 +01:00
Paul B Mahol
90720da511 avfilter/vf_fillborders: add more fill modes 2020-12-18 19:40:31 +01:00
Paul B Mahol
7e3f20c43c avfilter/af_asoftclip: add two more useful options for finer filtering 2020-12-18 13:11:53 +01:00
Paul B Mahol
69be00aa61 avfilter/af_biquads: add one-pole shelf filters by adding pole option 2020-12-16 18:38:51 +01:00
Paul B Mahol
32586a42da avfilter/vf_limiter: add support for commands 2020-12-15 20:35:01 +01:00
Paul B Mahol
fc50a8de55 avfilter/af_afade: add support for commands to afade filter 2020-12-11 23:02:03 +01:00
Paul B Mahol
d76469378d avfilter/vf_convolution: add support for commands 2020-12-11 18:33:48 +01:00
Paul B Mahol
7adb747fd7 avfilter/vf_chromanr: add options for finer controls of filtering 2020-12-11 13:39:50 +01:00
Paul B Mahol
b607f19374 avfilter: add asuperpass and asuperstop filter 2020-12-11 12:07:06 +01:00
Gyan Doshi
7777e5119a avfilter/cropdetect: add option for initial skip
The cropdetect filter, at present, skips the first two frames. This
behaviour is hardcoded.

New option 'skip' allows users to change this. Convenient for when
input is a single image or a trimmed video stream.

Default is kept at 2 to preserve current behaviour.
2020-12-09 12:52:09 +05:30
Nikola Pajkovsky
3ffed80eba hlsenc: expand hls_fmp4_init_filename with strftime()
the init.mp4 can be expanded with strftime the same way as
hls_segment_filename.

Signed-off-by: Nikola Pajkovsky <nikola@pajkovsky.cz>
Signed-off-by: liuqi05 <liuqi05@kuaishou.com>
2020-12-08 21:02:23 +08:00
Paul B Mahol
fcae745f46 doc/filters: fix obvious mistake for minimum accepted value 2020-12-07 13:13:47 +01:00
Paul B Mahol
88b6ebdace avfilter/af_biquads: add shortcut to set internal precision 2020-12-06 14:51:21 +01:00
Peter Ross
2aab42bc40 avformat/mspdec: Microsoft Paint (MSP) demuxer
Signed-off-by: Peter Ross <pross@xvid.org>
2020-12-06 20:03:47 +11:00
Paul B Mahol
530d1dbcef avfilter/af_afreqshift: add level option 2020-12-05 14:46:16 +01:00
Paul B Mahol
34773ee69f avfilter: add asubcut filter 2020-12-05 12:02:59 +01:00
Paul B Mahol
7025c91d07 avfilter/af_arnndn: add mix option
Mostly useful to listen to actual noise.
2020-12-04 23:57:01 +01:00
Paul B Mahol
51f8848e36 avfilter/af_stereotools: add support for commands 2020-12-04 15:40:42 +01:00
Paul B Mahol
456146356a avfilter/af_stereotools: add two more modes 2020-12-04 11:58:31 +01:00
Marton Balint
ff373bb4a8 avdevice/decklink_dec: add support for 50/60 fps timecode
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-12-03 18:32:57 +01:00
Marton Balint
eca12f4d5a avutil/timecode: add av_timecode_init_from_components
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-12-03 18:32:54 +01:00
Paul B Mahol
0c8a0d3a56 avfilter/af_acrossover: add per output band gain 2020-12-02 13:54:53 +01:00
Paul B Mahol
0a5ff19643 avfilter/af_acrossover: document roll-off of each filter order 2020-12-02 12:30:10 +01:00
Paul B Mahol
da83673c8b avfilter/af_agate: add support for commands and timeline 2020-11-30 21:42:09 +01:00
Paul B Mahol
bebea78755 avfilter/af_asupercut: add order option 2020-11-29 14:16:48 +01:00
Paul B Mahol
94ea760c6f avfilter/af_asubboost: make wet option apply to final output
Also changes some default values for options after this change.
This makes distinction between feedback and wet option.
Before they would produce same output if values were swapped.
2020-11-28 22:07:18 +01:00
Paul B Mahol
a01b037c90 avfilter/avf_showfreqs: add group delay data mode 2020-11-28 20:57:41 +01:00
Paul B Mahol
66d89a8070 avfilter/af_acrossover: add option to adjust input gain 2020-11-28 16:02:12 +01:00
Paul B Mahol
ea8c05a3e7 doc/filters: mention when adenorm filter should be placed in graph 2020-11-28 13:12:06 +01:00
Paul B Mahol
7a95cf86ff avfilter/af_aemphasis: add timeline/slice and commands support 2020-11-27 22:38:17 +01:00
Paul B Mahol
ecc47e91e3 doc/filters: fix several errors/typos 2020-11-27 21:10:29 +01:00
Anton Khirnov
a83098ab03 avcodec: deprecate thread_safe_callbacks
They add considerable complexity to frame-threading implementation,
which includes an unavoidably leaking error path, while the advantages
of this option to the users are highly dubious.

It should be always possible and desirable for the callers to make their
get_buffer2() implementation thread-safe, so deprecate this option.
2020-11-27 15:46:50 +01:00
Paul B Mahol
ca90d83c1e doc/filters: document adenorm commands support 2020-11-27 14:35:12 +01:00
Paul B Mahol
1f75462007 doc/filters: add acrossover examples 2020-11-27 14:28:46 +01:00
Paul B Mahol
3864896017 avfilter/avf_showfreqs: implement phase display 2020-11-27 12:52:21 +01:00
Paul B Mahol
3c922681c3 avfilter: add asupercut filter 2020-11-26 17:38:49 +01:00
Paul B Mahol
cc74700a83 avfilter/af_acrossover: add even more orders 2020-11-26 13:17:20 +01:00
Gyan Doshi
859de8df4a doc/filters: fix typo in overlay_cuda 2020-11-26 16:16:01 +05:30
Lynne
d243dd540a
libavcodec: add a new AV_CODEC_EXPORT_DATA_FILM_GRAIN flag and option
This introduces a new field to allow decoders to export their film grain
parameters.
Will be used by the next patch.
2020-11-25 23:06:33 +01:00
Lynne
4f9ee87253
libavutil: introduce AVFilmGrainParams side data
This patch introduces a new frame side data type AVFilmGrainParams for use
with video codecs which support it.

It can save a lot of memory used for duplicate processed reference frames and
reduce copies when applying film grain during presentation.
2020-11-25 23:06:33 +01:00
Paul B Mahol
97bc6900e6 avfilter/vf_readeia608: add support for commands 2020-11-24 22:34:18 +01:00
Jean-Baptiste Kempf
052a5993ad avcodec: add SpeedHQ encoder 2020-11-24 09:38:35 +01:00
Paul B Mahol
9208b72a38 avfilter/af_aiir: add support for arbitrary order lattice-ladder filter format 2020-11-22 22:57:43 +01:00
Anton Khirnov
ce0f5397a8 doc/examples/transcoding: switch to the new encoding API 2020-11-20 15:20:24 +01:00
Anton Khirnov
29f33c1076 doc/examples/transcoding: stop constantly allocating AVFrames
Allocate just one and reuse it.
2020-11-20 15:20:24 +01:00
Paul B Mahol
c417f1a76c avfilter/vf_xfade: add squeeze transitions 2020-11-19 14:57:41 +01:00
Paul B Mahol
381ab69042 avfilter/vf_frei0r: add support for commands 2020-11-19 11:55:47 +01:00
Paul B Mahol
17a0dfebf5 avfilter/vf_despill: add support for commands 2020-11-18 18:03:15 +01:00
Paul B Mahol
e3081d6f4f avfilter/af_afade: add sinc curve types 2020-11-18 11:36:53 +01:00
Paul B Mahol
bb7bb440c2 avfilter/af_anlmdn: support all options as commands 2020-11-17 13:49:38 +01:00
Paul B Mahol
9f20e5d281 avfilter: add speechnorm filter 2020-11-15 12:59:40 +01:00
Paul B Mahol
ee4a046540 avfilter/af_asoftclip: add oversampling support 2020-11-10 15:25:18 +01:00
Zane van Iperen
555f5c1fc5
avcodec: add adpcm_ima_amv encoder
Fixes ticket #747.

Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2020-11-09 14:58:38 +10:00
Omar Emara
04b37b5d7f avdevice/xcbgrab: Add select_region option
This patch adds a select_region option to the xcbgrab input device.
If set to 1, the user will be prompted to select the grabbing area
graphically by clicking and dragging. A rectangle will be drawn to
mark the grabbing area. A single click with no dragging will select
the whole screen. The option overwrites the video_size, grab_x, and
grab_y options if set by the user.

For testing, just set the select_region option as follows:

ffmpeg -f x11grab -select_region 1 -i :0.0 output.mp4

The drawing happens directly on the root window using standard rubber
banding techniques, so it is very efficient and doesn't depend on any
X extensions or compositors.

Reviewed-by: Andriy Gelman <andriy.gelman@gmail.com>
Signed-off-by: Omar Emara <mail@OmarEmara.dev>
2020-11-06 23:25:13 -05:00
Paul B Mahol
a125e08130 avfilter: add adenorm filter 2020-11-05 18:26:27 +01:00
Paul B Mahol
de63b6fb54 avfitler/af_asoftclip: add hard type 2020-11-03 12:30:19 +01:00
Paul B Mahol
ee686236cd avfilter/af_asoftclip: add erf soft clip type 2020-11-03 12:30:19 +01:00
Zane van Iperen
67d4ab50ec
doc: mark "ADPCM IMA High Voltage Software ALP" as encodable
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
2020-11-03 12:25:08 +10:00
James Almer
dbd4254a61 doc/APIchanges: add missing marker for release 4.3
Signed-off-by: James Almer <jamrial@gmail.com>
2020-11-02 18:56:01 -03:00
Paul B Mahol
40ce4ad999 avfilter/af_biquads: add lattice-ladder form 2020-11-02 13:30:14 +01:00
Jan Ekström
453b2f3c15 ffmpeg: add a data size threshold for muxing queue size
This way the old max queue size limit based behavior for streams
where each individual packet is large is kept, while for smaller
streams more packets can be buffered (current default is at 50
megabytes per stream).

For some explanation, by default ffmpeg copies packets from before
the appointed seek point/start time and puts them into the local
muxing queue. Before, it getting utilized was much less likely
since as soon as the filter chain was initialized, the encoder
(and thus output stream) was also initialized.

Now, since we will be pushing the encoder initialization to when the
first AVFrame is decoded and filtered - which only happens after
the exact seek point is hit as packets are ignored until then -
this queue will be seeing much more usage.

In more layman's terms, this attempts to fix cases such as where:
- seek point ends up being 5 seconds before requested time.
- audio is set to copy, and thus immediately begins filling the
  muxing queue.
- video is being encoded, and thus all received packets are skipped
  until the requested time is hit.
2020-10-29 16:59:48 +02:00
Anton Khirnov
f95d9510ff avformat: add a stream event flag for new packets 2020-10-28 13:58:29 +01:00
Limin Wang
2aceae1438 avformat/rtpproto: support for rtp read timeout
then we can set the rtp read timeout instead of infinite timeout.

How to test(5s timeout):
./ffprobe -i rtp://192.168.1.67:1234?timeout=5000000

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2020-10-22 20:53:56 +08:00
hwren
682990a849 doc/general_contents.texi: add uavs3d section
Signed-off-by: hwren <hwrenx@126.com>
2020-10-21 09:33:07 +08:00
Paul B Mahol
637c154a50 avfilter: add audio frequency and phase shift filters 2020-10-20 20:38:30 +02:00
Romane Lafon
d60927b676 avfilter/avf_aphasemeter: add out of phase and mono detection
Extend aphasemeter to detect out of phase or mono sequences in
stereo streams.

Signed-off-by: Romane Lafon <romane@nomalab.com>
2020-10-20 20:30:45 +02:00
Thilo Borgmann
4ccb68dc67 doc: Add dev_community/community.md for general assembly and main elections process. 2020-10-19 14:35:14 +02:00
Paul B Mahol
847dc03787 avfilter/af_aiir: add analog transfer function format 2020-10-18 18:48:41 +02:00
Paul B Mahol
0df0e12d02 avfilter/af_aiir: implement parallel processing 2020-10-16 23:07:27 +02:00
hwren
c952db9d68 lavc,doc: add libuavs3d video decoder wrapper
Signed-off-by: hbj <hanbj@pku.edu.cn>
Signed-off-by: hwren <hwrenx@126.com>
2020-10-06 00:01:33 +08:00
Paul B Mahol
eaba6cecfb avfilter/vf_v360: add mitchell interpolation 2020-10-04 19:23:52 +02:00
Lynne
45070eec4c
libwavpackenc: remove libwavpackenc wrapper
The manual states "there is virtually no reason to use that encoder.".

It supports less sample formats than the native encoder, is less efficient
than the native encoder and is also slower and pretty much remains untested.
libwavpack also isn't being fuzzed, which given that we plug the parameters
without any sanitizing them looks concerning.
2020-10-02 17:43:15 +02:00
Anton Khirnov
68918d3b7f lavu/buffer: add a convenience function for replacing buffers
A common pattern e.g. in libavcodec is replacing/updating buffer
references: unref old one, ref new one. This function allows simplifying
such code and avoiding unnecessary refs+unrefs if the references are
already equivalent.
2020-09-28 11:33:35 +02:00
Jun Zhao
ef868fa4a1 examples/muxing: misc style fixes
misc style fixes.

Reviewed-by: Steven Liu <liuqi05@kuaishou.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-09-28 09:11:21 +08:00
Paul B Mahol
6db1b1af4c avfilter/vf_v360: add octahedron format 2020-09-27 22:40:26 +02:00
Paul B Mahol
85195f6ae9 avfilter/vf_histogram: add slide modes for thistogram 2020-09-26 22:04:27 +02:00
Marton Balint
96907e84dd avdevice/decklink_dec: add support for querying RP188 High Frame Rate timecode
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-09-13 18:06:54 +02:00
Marton Balint
f1b908d20a avdevice/decklink_dec: add support for rgb/yuv pixel format autodetection
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-09-13 17:59:30 +02:00
Marton Balint
837b6eb90e avutil/timecode: add av_timecode_make_smpte_tc_string2
Signed-off-by: Marton Balint <cus@passwd.hu>
2020-09-13 17:51:57 +02:00
Zixing Liu
d58f8fd8e6 avformat: add mca demuxer
Signed-off-by: liushuyu <liushuyu@aosc.io>
2020-09-10 17:38:08 +02:00
Harry Mallon
811514abb7 libavcodec/options_table: Add missing colorspace options
* chroma-derived-nc / chroma-derived-c and ictcp

Signed-off-by: Harry Mallon <harry.mallon@codex.online>
Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro>
2020-09-10 17:22:09 +05:30
Gyan Doshi
1e5b3f77d9 avcodec/libopusenc: add option to set inband FEC 2020-09-09 11:40:06 +05:30
Nicolas George
ddba05afe4 lavfi/vsrc_testsrc: switch to activate.
Allow to set the EOF timestamp.

Also: doc/filters/testsrc*: specify the rounding of the duration option.

The changes in the ref files are right.

For filter-fps-down, the graph is testsrc2=r=7:d=3.5,fps=3.
3.5=24.5/7, so the EOF of testsrc2 will have PTS 25/7.
25/7=(10+5/7)/3, so the EOF PTS for fps should be 11/7,
and the output should contain a frame at PTS 10.

For filter-fps-up, the graph is testsrc2=r=3:d=2,fps=7,
for filter-fps-up-round-down and filter-fps-up-round-up
it is the same with explicit rounding options.
But there is no rounding: testsrc2 produces exactly 6 frames
and 2 seconds, fps converts it into exactly 14 frames.

The tests should probably be adjusted to restore them to
a useful coverage.
2020-09-08 14:39:43 +02:00
Nicolas George
e6d625d008 doc: include general in *-all pages. 2020-09-08 14:29:19 +02:00
Nicolas George
6accb7718a doc/general: move contents into a separate file.
It will allow to include it.
2020-09-08 14:29:19 +02:00
Nicolas George
7d7e44a3aa doc/texi2pod: support @float. 2020-09-08 14:29:19 +02:00
Nicolas George
697fb09e3d ffmpeg: add auto_conversion_filters option. 2020-09-08 14:16:08 +02:00
Paul B Mahol
615d75f291 avfilter/asrc_anullsrc: add support to set output duration 2020-09-04 19:37:29 +02:00
Paul B Mahol
88db1745fc avfilter/vf_alphamerge: use framesync 2020-09-04 19:37:29 +02:00
Andrei Rybak
5de8e897b1 doc/filters: add example for drawtext fontsize expr
Expressions for option fontsize of video filter drawtext have been
supported since commit 6442e4ab3c.

Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com>
Revised-by: Gyan Doshi <ffmpeg@gyani.pro>
2020-09-03 11:09:27 +05:30
Aman Verma
e4389ba075 doc/decoders: Document default value of ac3's drc_scale option
Signed-off-by: Aman Verma <amanraoverma@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-08-31 23:43:06 +02:00
Paul B Mahol
e417f84003 avfilter/f_graphmonitor: also show link EOF status in blue 2020-08-31 19:59:35 +02:00
Paul B Mahol
eb9fa00bcc avfilter/vsrc_gradients: add speed option 2020-08-31 11:09:53 +02:00
Paul B Mahol
64e93025f0 avfilter/vsrc_gradients: add duration option 2020-08-31 11:09:53 +02:00
Gautam Ramakrishnan
f0e33119e4 libavcodec/j2kenc: Support for multiple layers
This patch allows setting a compression ratio and to
set multiple layers. The user has to input a compression
ratio for each layer.
The per layer compression ration can be set as follows:
-layer_rates "r1,r2,...rn"
for to create 'n' layers.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-08-30 16:18:37 +02:00
Paul B Mahol
9ebde67f0b avfilter/vf_xfade: add corner wipe transforms 2020-08-27 14:45:21 +02:00
Paul B Mahol
e13eb58941 avfilter/vf_xfade: add fadegrays transition 2020-08-26 23:25:10 +02:00