summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* fate/mov: Use REMUX and TRANSCODE where appropriateAndreas Rheinhardt2022-04-28
| | | | | | | Also fix the requirements of fate-mov-channel-description: It needs the pcm_s16le decoder and the mov demuxer. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/caf: Use REMUX where appropriateAndreas Rheinhardt2022-04-28
| | | | | | | | And drop the FATE_CAF_REMUX variables which only existed to avoid having to repeat the common FILE_PROTOCOL PIPE_PROTOCOL FRAMECRC_MUXER stuff. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/amr[nw]b: Use REMUX where appropriateAndreas Rheinhardt2022-04-28
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/id3v2: Use REMUX where appropriateAndreas Rheinhardt2022-04-28
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/matroska: Use REMUX and TRANSCODE where appropriateAndreas Rheinhardt2022-04-28
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/xfacedec: Add AV_CODEC_CAP_DR1Andreas Rheinhardt2022-04-28
| | | | | | | | This decoder uses ff_get_buffer() and does nothing weird (it does not even rely on any alignment of the frame's data/linesize). Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pgxdec: Use unsigned types for unsigned valuesAndreas Rheinhardt2022-04-28
| | | | | | | | | Both AV_PIX_FMT_GRAY8 and AV_PIX_FMT_GRAY16 use unsigned values, not signed ones. The fact that the input might be signed in some cases in the original format doesn't change this. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pgxdec: Hoist branch out of loopAndreas Rheinhardt2022-04-28
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pgxdec: Fix issue with negative linesizesAndreas Rheinhardt2022-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | The PGX decoder accesses the lines via code like (PIXEL*)frame->data[0] + i*frame->linesize[0]/sizeof(PIXEL) where PIXEL is a macro parameter. This code has issues with negative linesizes, because the type of sizeof(PIXEL) is size_t, so that on common systems i*linesize/sizeof(PIXEL) will always be an unsigned type that is very large in case linesize is negative. This happens to work*, but it is undefined behaviour and e.g. leads to "src/libavcodec/pgxdec.c:114:1: runtime error: addition of unsigned offset to 0x7efe9c2b7040 overflowed to 0x7efe9c2b6040" errors from UBSAN. Fix this by using (PIXEL*)(frame->data[0] + i*frame->linesize[0]). This is allowed because linesize has to be suitably aligned. *: Converting a negative int to size_t works by adding SIZE_MAX + 1 to the number, so that the result is off by (SIZE_MAX + 1) / sizeof(PIXEL). Converting the pointer arithmetic (performed on PIXELs) back to ordinary pointers is tantamount to multiplying by sizeof(PIXEL), so that the result is off by SIZE_MAX + 1; but SIZE_MAX + 1 == 0 for the underlying pointers. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pgxdec: Remove pointless checksAndreas Rheinhardt2022-04-28
| | | | | | | | | | | These checks were (most likely) added to check for overreads as the bytestream2_get_* functions return 0 in this case. Yet this is not necessary anymore as we now have an explicit check for the size. Should the input contain a real \0, pgx_get_number() will error out lateron. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pgxdec: Avoid always-false checksAndreas Rheinhardt2022-04-28
| | | | | | | We have already checked that there is data to be read. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pgxdec: Make better use of size checkAndreas Rheinhardt2022-04-28
| | | | | | | Each of the three calls to pgx_get_number() consumes at least two bytes. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/af_anlms: add timeline supportPaul B Mahol2022-04-27
|
* lavf/tls_mbedtls: add support for mbedtls version 3Timo Rothenpieler2022-04-27
| | | | | | | | | | | - certs.h is gone. Only contains test data, and was not used at all. - config.h is renamed. Was seemingly not used, so can be removed. - MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE is gone, instead MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE will be thrown. - mbedtls_pk_parse_keyfile now needs to be passed a properly seeded RNG. Hence, move the call to after RNG seeding. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avformat/mov: log the right variableZhao Zhili2022-04-27
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* libavformat/rtsp: pkt_size option is not honored in rtspYubo Xie2022-04-27
| | | | | Signed-off-by: xyb <xyb@xyb.name> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat/mov: fix missing extra data updatingZhao Zhili2022-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | The stsc_index is checked and updated for the next sample. If the next sample needs to update stsd_index and stsc_index, then only stsc_index is updated, which leads to a missing AV_PKT_DATA_NEW_EXTRADATA. For example, the sample in the second chunk needs to update both. entry[0] first_chunk = 1 samples_per_chunk = 3 sample_description_index = 1 entry[1] first_chunk = 2 samples_per_chunk = 1 sample_description_index = 2 entry[2] first_chunk = 3 samples_per_chunk = 8 sample_description_index = 2 The fix is simple: first check and update stsd_index for current sample, then check and update stsc_index for the next. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avfilter/vf_blurdetect: fix uninitialized variables and possible div by zeroThilo Borgmann2022-04-27
| | | | Found-by: Coverity
* avfilter/vsrc_testsrc: fix typo for yellow patchPaul B Mahol2022-04-26
|
* avfilter/vf_blurdetect: remove set but not used variablesPaul B Mahol2022-04-26
|
* avfilter/vf_lut3d: allow to control when to upload CLUT for haldclutPaul B Mahol2022-04-26
|
* avfilter/vf_blurdetect: cleanup headers, remove unused variables, fix type ↵Thilo Borgmann2022-04-26
| | | | of variable
* arm64: Fix wrong BTI landing padAndre Kempe2022-04-26
| | | | | | | | | | | | This patch fixes a wrong type of BTI landing pad when branching to functions instantiated via the fft*_neon macro. Although the previously employed paciasp instruction serves as a landing pad, for the ways that this function is invoked it is the wrong type, resulting in an unexpected termination of the running process. Signed-off-by: André Kempe <andre.kempe@arm.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* avfilter/vf_colormap: avoid reallocating memory to build mapPaul B Mahol2022-04-26
|
* doc/filters: add colorchart to sectionPaul B Mahol2022-04-26
|
* avfilter/vf_colormap: change default nb_patchesPaul B Mahol2022-04-26
|
* avcodec/libsvtav1: add support for setting chroma sample locationJan Ekström2022-04-26
| | | | Support for configuring this was added with version 1.0.0.
* avcodec/libsvtav1: pass pict_type to libraryChristopher Degawa2022-04-25
| | | | | | | | | | | match the behavior of SvtAv1EncApp to ensure pic_type is always set before passing it to the library. The other options for pic_type aren't currently used inside the library, so they aren't introduced in this patch. Signed-off-by: Christopher Degawa <ccom@randomderp.com> Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi: Add blurdetect filterThilo Borgmann2022-04-25
|
* lafi/vf_edgedetect: Move some common functions into seperate fileThilo Borgmann2022-04-25
|
* avformat/mov: Add avif to list of supported extensionsVignesh Venkatasubramanian2022-04-25
| | | | | | | | AVIF still and animations are now supported by the MOV parser. Add the "avif" extension to the list of supported extensions to AVInputFormat. Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
* avcodec/audiotoolboxdec: Properly fill out_formatChristopher Snowhill2022-04-24
| | | | | | | | | | | Monterey needs mBytesPerFrame and mBytesPerPacket to be set, and I'm surprised this didn't break any previous system versions. Fixes bug #9564: Cannot decode xHE-AAC with audiotoolbox (aac_at) on Mac OS Monterey. Fixes likely bug that none of the AudioToolbox decoders work on Monterey. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
* avcodec/pcm-blurayenc: set fixed number of samples per packetPaul B Mahol2022-04-24
| | | | Other values are forbidden by specification.
* avcodec/x86/hevc_mc: add qpel_h64_8_avx512iclWu Jianhua2022-04-24
| | | | | | | | | ff_hevc_put_hevc_qpel_h64_8_sse4 56782981 ff_hevc_put_hevc_qpel_h64_8_avx2 40097816 ff_hevc_put_hevc_qpel_h64_8_avx512icl 25488576 Reviewed-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avcodec/x86/hevc_mc: add qpel_h32_8_avx512iclWu Jianhua2022-04-24
| | | | | | | | | ff_hevc_put_hevc_qpel_h32_8_sse4 14122151 ff_hevc_put_hevc_qpel_h32_8_avx2 9337675 ff_hevc_put_hevc_qpel_h32_8_avx512icl 6424654 Reviewed-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avcodec/x86/hevc_mc: add qpel_h4_8_avx512iclWu Jianhua2022-04-24
| | | | | | | | ff_hevc_put_hevc_qpel_h4_8_sse4 993694 ff_hevc_put_hevc_qpel_h4_8_avx512icl 686647 Reviewed-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avcodec/x86/hevc_mc: add qpel_h16_8_avx512iclWu Jianhua2022-04-24
| | | | | | | | ff_hevc_put_hevc_qpel_h16_8_sse4 3290870 ff_hevc_put_hevc_qpel_h16_8_avx512icl 1730033 Reviewed-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avcodec/x86/hevc_mc: add qpel_h8_8_avx512icl and qpel_hv8_8_avx512iclWu Jianhua2022-04-24
| | | | | | | | | | | | | This commit uses the instruction `vpdpbusd` introduced by AVX512 VNNI to calculate the horizontal filter. ff_hevc_put_hevc_qpel_h8_8_sse4 1039169 ff_hevc_put_hevc_qpel_h8_8_avx512icl 677153 ff_hevc_put_hevc_qpel_hv8_8_sse4 3603511 ff_hevc_put_hevc_qpel_hv8_8_avx512icl 2995354 Reviewed-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/af_afftdn: use better approach for gain smoothingPaul B Mahol2022-04-23
|
* libavfilter/version: bump minor version for icc{gen,detect}Jan Ekström2022-04-23
| | | | Missed during that patch set's life time.
* avformat/version: bump minor version for Jpeg XLLeo Izen2022-04-23
| | | | | The version.h bump got missed with the Jpeg XL patchset. This should bump the minor version in accordance with the contributing guidelines.
* avcodec/version: bump minor version for Jpeg XLLeo Izen2022-04-23
| | | | | The version.h bump got missed with the Jpeg XL patchset. This should bump the minor version in accordance with the contributing guidelines.
* lavfi: add vf_iccdetect for parsing ICC profilesNiklas Haas2022-04-23
| | | | | | | | | | | | | | | This filter is designed to parse embedded ICC profiles and attempt extracting colorspace tags from them, updating the AVFrame metadata accordingly. This is intentionally made a separate filter, rather than being part of libavcodec itself, so that it's an opt-in behavior for the time being. This also gives the user more flexibility to e.g. first attach an ICC profile and then also set the colorspace tags from it. This makes #9673 possible, though not automatic. Signed-off-by: Niklas Haas <git@haasn.dev>
* lavfi: add vf_iccgen for generating ICC profilesNiklas Haas2022-04-23
| | | | | | | | | This filter is designed to specifically cover the task of generating ICC profiles (and attaching them to output frames) on demand. Other tasks, such as ICC profile loading/stripping, or ICC profile application, are better left to separate filters (or included into e.g. vf_setparams). Signed-off-by: Niklas Haas <git@haasn.dev>
* lavfi: add ICC profile support via lcms2Niklas Haas2022-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces an optional dependency on lcms2 into FFmpeg. lcms2 is a widely used library for ICC profile handling, which apart from being used in almost all major image processing programs and video players, has also been deployed in browsers. As such, it's both widely available and well-tested. Add a few helpers to cover our major use cases. This commit merely introduces the helpers (and configure check), even though nothing uses them yet. It's worth pointing out that the reason the cmsToneCurves for each AVCOL_TRC are cached inside the context, is because constructing a cmsToneCurve requires evaluating the curve at 4096 (by default) grid points and constructing a LUT. So, we ideally only want to do this once per curve. This matters for e.g. ff_icc_profile_detect_transfer, which essentially compares a profile against all of these generated LUTs. Re-generating the LUTs for every iteration would be unnecessarily wasteful. The same consideration does not apply to e.g. cmsCreate*Profile, which is a very lightweight operation just involving struct allocation and setting a few pointers. The cutoff value of 0.01 was determined by experimentation. The lowest "false positive" delta I saw in practice was 0.13, and the largest "false negative" delta was 0.0008. So a value of 0.01 sits comfortaby almost exactly in the middle. Signed-off-by: Niklas Haas <git@haasn.dev>
* lavfi: add ff_detect_color_primaries helperNiklas Haas2022-04-23
| | | | | | | | | | | | Related to #9673, this helper exists to facilitate "guessing" the right primary tags from a given set of raw primary coefficients. The cutoff value of 0.001 was chosen by experimentation. The smallest "false positive" delta observed in practice was 0.023329, while the largest "false negative" delta was 0.00016. So, a value of 0.001 sits comfortably in the middle. Signed-off-by: Niklas Haas <git@haasn.dev>
* lavfi: generalize colorspace coefficent helpersNiklas Haas2022-04-23
| | | | | | | | | | | | | | | These are needed beyond just vf_colorspace, so give them a new home in colorspace.h. In addition to moving code around, also merge the white point and primary coefficients into a single struct to slightly increase the convenience and shrink the size of the new API by avoiding the need to introduce an extra function just to look up the white point as well. The only place the distinction matters is in a single enum comparison, which can just as well be a single memcpy - the difference is negligible. Signed-off-by: Niklas Haas <git@haasn.dev>
* avformat/image2: add Jpeg XL as image2 formatLeo Izen2022-04-23
| | | | | This commit adds support to libavformat for muxing and demuxing Jpeg XL images as image2 streams.
* avcodec/libjxl: add Jpeg XL encoding via libjxlLeo Izen2022-04-23
| | | | | This commit adds encoding support to libavcodec for Jpeg XL images via the external library libjxl.
* avcodec/libjxl: add Jpeg XL decoding via libjxlLeo Izen2022-04-23
| | | | | This commit adds decoding support to libavcodec for Jpeg XL images via the external library libjxl.