Commit Graph

103917 Commits

Author SHA1 Message Date
Paul B Mahol 8ebcff9111 avfilter/vf_blend: add geometric mode 2021-09-29 19:33:59 +02:00
Paul B Mahol f3b07b8b12 avfilter/vf_morpho: add tophat and blackhat operations 2021-09-29 18:02:26 +02:00
Paul B Mahol b4626da92b avfilter/vf_morpho: add gradient operation type 2021-09-29 18:02:25 +02:00
Andreas Rheinhardt d619e82e97 avcodec/zmbvenc: Remove redundant pixel format check
ff_encode_preinit() already checked the pixel format via
AVCodec.pix_fmts.

Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-29 17:02:03 +02:00
James Almer 04e9b9e514 avfilter/vf_floodfill: constify the AVFrame parameter in is_same() and pick_pixel() functions
Signed-off-by: James Almer <jamrial@gmail.com>
2021-09-29 11:46:20 -03:00
James Almer 272c293c02 fate/checkasm: add missing tests to FATE
Signed-off-by: James Almer <jamrial@gmail.com>
2021-09-29 11:46:20 -03:00
Limin Wang c5f3143090 avcodec/libsvtav1: properly enforce CQP mode when set in wrapper
SVT-AV1 seems to have switched their default from CQP to CRF in February,
so enforce the controlling option accordingly.

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-09-29 18:01:16 +08:00
Limin Wang ed89be1e02 doc/encoders: add available values for libsvtav1 options
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-09-29 18:01:16 +08:00
Limin Wang 0f5e1877ba avformat/hlsenc: add const for filename argument
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-09-29 18:00:14 +08:00
Limin Wang 4be3f6d2d2 avformat/utils: add const for argument passed to ff_is_http_proto()
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-09-29 18:00:14 +08:00
Limin Wang 31831b611b avfilter/vf_guided: Fix indention
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-09-29 18:00:13 +08:00
Limin Wang e99be1735a avcodec: remove the unused low_delay
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2021-09-29 18:00:13 +08:00
Andreas Rheinhardt b2538ce578 avfilter/vf_morpho: Rename functions to unbreak MSVC
MSVC's headers include function-like macros min and max which
collide with function pointers in vf_morpho.c, leading to
compilation failures. Fix this by renaming said function pointers.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-29 09:17:46 +02:00
Andreas Rheinhardt 09408539f4 checkasm/hevc_pel: Fix stack buffer overreads
This patch increases several stack buffers in order to fix
stack-buffer-overflows (e.g. in put_hevc_qpel_uni_hv_9 in
line 814 of hevcdsp_template.c) detected with ASAN in the hevc_pel
checkasm test.
The buffers are increased by the minimal amount necessary
in order not to mask potential future bugs.

Reviewed-by: Martin Storsjö <martin@martin.st>
Reviewed-by: "zhilizhao(赵志立)" <quinkblack@foxmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-29 04:35:31 +02:00
Andreas Rheinhardt ff80090374 avutil/utils: Remove racy check from avutil_version()
avutil_version() currently performs several checks before
just returning the version. There is a static int that aims
to ensure that these tests are run only once. The reason is that
there used to be a slightly expensive check, but it has been removed
in 92e3a6fdac. Today running only
once is unnecessary and can be counterproductive: GCC 10 optimizes
all the actual checks away, but the checks_done variable and the code
setting it has been kept. Given that this check is inherently racy
(it uses non-atomic variables), it is best to just remove it.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-29 02:58:07 +02:00
Paul B Mahol b2ec4edef7 avfilter: add morpho filter 2021-09-28 22:57:33 +02:00
Jan Ekström c20577806f avformat/aacdec: enable probesize-sized resyncs mid-stream
Before adts_aac_resync would always bail out after probesize amount
of bytes had been progressed from the start of the input.

Now just query the current position when entering resync, and at most
advance probesize amount of data from that start position.

Fixes #9433
2021-09-28 23:02:20 +03:00
Peter Ross 855014ff83 avcodec/siren: add checksum calculation
Reviewed-by: Lynne <dev@lynne.ee>
Signed-off-by: Peter Ross <pross@xvid.org>
2021-09-28 21:23:26 +10:00
Peter Ross e40593c050 avcodec/siren: don't reduce getbitcontext size by checksum_bits at initialisation
this allows the checksum calculation routine to also use getbitcontext

Signed-off-by: Peter Ross <pross@xvid.org>
2021-09-28 21:23:26 +10:00
Peter Ross b007e8968f avcodec/siren: prevent getbitcontext overread
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Peter Ross <pross@xvid.org>
2021-09-28 21:23:26 +10:00
Andreas Rheinhardt ed6549887a avcodec/encoders: Remove redundant setting of AV_PKT_FLAG_KEY
It is now set generically for all those encoders whose corresponding
AVCodecDescriptor has the AV_CODEC_PROP_INTRA_ONLY.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-28 01:57:10 +02:00
Andreas Rheinhardt 3f11eac757 avcodec/encode: Set AV_PKT_FLAG_KEY based upon AV_CODEC_PROP_INTRA_ONLY
Currently, the AV_PKT_FLAG_KEY is automatically set for audio encoders;
yet this is wrong, as both MLP and TrueHD have non-keyframes. So set it
based upon AV_CODEC_PROP_INTRA_ONLY (from the corresponding
AVCodecDescriptor) instead. This also sets it for some video codecs,
which is intended.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-28 01:56:32 +02:00
Andreas Rheinhardt f09fd1c6c7 avcodec/codec_desc: Mark MLP as not being intra-only
It has sync frames.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-28 01:55:40 +02:00
Andreas Rheinhardt db25180e9d avcodec/mlpenc: Set AV_PKT_FLAG_KEY manually
TrueHD/MLP is one of the audio formats with keyframes. Currently,
the generic encoding code just sets the keyframe flag for all
returned packets, yet this is wrong for these encoders and will
be changed in a future commit. So set the flag here for those
packets that ought to have it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-28 01:53:11 +02:00
Paul B Mahol 71f2a9a2e5 avfilter/vf_remap: remove timeline support
It is not supported, as it is possible to change frame video width
and height and that can lead to undefined output.
2021-09-28 00:38:35 +02:00
Paul B Mahol 94e805235b avfilter/vf_blend: add 14bit pixel format support 2021-09-28 00:14:20 +02:00
Paul B Mahol dd19019500 avfilter/vf_blend: refactor blend modes 2021-09-28 00:14:19 +02:00
Paul B Mahol 524407af0c avfilter/vf_blend: add gray9 pixel format support 2021-09-27 19:41:51 +02:00
Paul B Mahol 63b850c604 avfilter/vf_blend: refactor blend macros 2021-09-27 19:41:51 +02:00
Paul B Mahol d7408a786f avfilter/vf_blend: refactor similar code 2021-09-27 19:12:48 +02:00
NoHalfBits b786bc7433 avcodec/videotoolboxenc: Fixes non-B-Frame encoding
Sets vtctx->has_b_frames to 0 if the VideoToolbox compression
session will not emit B-frames (and, in consequence, no valid
DTSs). Required for the handling of invalid DTSs in
'vtenc_cm_to_avpacket' (line 2018ff) to work correctly and not
abort encoding with "DTS is invalid." when no B-frames are
generated.

Signed-off-by: NoHalfBits <ffmpeg-devel@fluthaus.com>
Signed-off-by: Rick Kern <kernrj@gmail.com>
2021-09-27 07:06:06 -04:00
Andreas Rheinhardt 90546c6ca7 avfilter/preserve_color: Add necessary headers
Fixes checkheaders.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 10:17:53 +02:00
Andreas Rheinhardt c3222931ab avformat/mxfenc: Simplfy writing padding
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt 9fab059eab avformat/gxfenc: Simplify writing padding/reserved elements
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt 5eafbf0b08 avformat/avienc: Simplify writing padding
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt c8e75076f1 avformat/omaenc: Simplify writing padding
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt ffe9867bc2 fate/oma: Add remux tests for ATRAC3 and ATRAC3P
They already uncovered an uninitialized-value bug in the ATRAC3 code
in the demuxer; and provide coverage for ID3v2.3.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt fc439f776d fate/demux: Move Sony OpenMG audio (oma) test into a new file
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt b98e397252 avformat/asfenc: Simplify writing error correction data
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt dbc76e4e70 avformat/mpegenc: Simplify writing padding/stuffing
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt 62c8b96a13 avformat/matroskaenc: Simplify writing qt-compatibility header
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt 2c47a94911 avformat/movenc: Simplify reserving space for tfrf tags
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt 1cf3c59b58 avformat/movenc: Limit ism_lookahead to a sane value
There can only be a maximum of 255 entries in a tfrf tag, so using
more makes no sense; moreover, several size computations can overflow
in this case. Fix this by limiting it to 255.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt 63a5e83de8 avformat/icoenc: Use avcodec_get_name() instead of codec descriptor
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt 7d5e27b473 avformat/icoenc: Simplify writing bitmask
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:59 +02:00
Andreas Rheinhardt d94b641b4a avformat/cafenc: Fix memleak when trailer is never written
Do this by using the AVStream's priv_data for the buffer holding
the packet size data.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:58 +02:00
Andreas Rheinhardt 19a6b51fe6 avformat/cafenc: Don't segfault upon allocation error
If an array for the packet sizes could not be successfully reallocated
when writing a packet, the CAF muxer frees said array, but does not
reset the number of valid bytes. As a result, when the trailer is
written later, avio_write tries to read that many bytes from NULL,
which segfaults.

Fix this by not freeing the array in case of error; also, postpone
writing the packet data after having successfully (re)allocated the
array, so that even on allocation error the file can be correctly
finalized.

Also remove an unnecessary resetting of the number of size entries
used at the end.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:58 +02:00
Andreas Rheinhardt 42fe438482 avformat/cafenc: Fix potential integer overflow
(As long as avio_write() only accepts an int, it makes no sense
to try to support sizes that don't fit into an int.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:58 +02:00
Andreas Rheinhardt 3a47e87d55 fate/caf: Add remux tests
These test both the muxer as well as the demuxer.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 07:08:53 +02:00
Andreas Rheinhardt e02447e41e fate/demux: Move caf test to its own file
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-09-27 06:12:54 +02:00