- 01 Mar, 2024 6 commits
-
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Cloning a packet whose source is going to be unreferenced immediately afterwards is wasteful. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
This decoder uses av_image_copy() to copy decoded images to buffers obtained via ff_get_buffer(); ergo it can handle user-provided buffers. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
This decoder implements the receive_frame API; such decoders always have to set the pkt_dts field themselves and the avcodec test checks for this. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Needed for ff_av1_framerate(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
- 29 Feb, 2024 6 commits
-
-
James Almer authored
Fixes errors when opening streams with no extradata (like those from raw OBU sources). It also calls get_format() on new Sequence Headers when required. Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
Andreas Rheinhardt authored
Commit 900ce6f8 replaced IntraX8Context.ac_vlc by IntraX8Context.ac_vlc_table, but forgot to update an av_assert2()*. cf7ed019 then replaced this with a check for j_ac_vlc[mode], but this makes no sense as j_ac_vlc is of type const VLCElem [2][2][8][]. Worse yet, mode can be up to three and then j_ac_vlc[mode] is undefined behaviour. This happened during the wmv8-x8intra FATE test. *: Since 84f16bb5 config.h was no longer auto-included in avassert.h and this disabled av_assert1() and av_assert2() in files where config.h has not been included before the inclusion of avassert.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Haihao Xiang authored
The default method is changed to CQP Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
-
Fei Wang authored
Otherwise decoding maybe successful but output result is incorrect. Signed-off-by: Fei Wang <fei.w.wang@intel.com>
-
Fei Wang authored
So that can show OBU info even it doesn't have decomposed content. And add OBU content status into the message. Signed-off-by: Fei Wang <fei.w.wang@intel.com>
-
- 28 Feb, 2024 3 commits
-
-
J. Dekker authored
Signed-off-by: J. Dekker <jdek@itanimul.li>
-
J. Dekker authored
Signed-off-by: J. Dekker <jdek@itanimul.li>
-
J. Dekker authored
Benched using single-threaded full decode on an Ampere Altra. Bpp Before After Speedup 8 73,3s 65,2s 1.124x 10 114,2s 104,0s 1.098x 12 125,8s 115,7s 1.087x Signed-off-by: J. Dekker <jdek@itanimul.li>
-
- 27 Feb, 2024 6 commits
-
-
Cosmin Stejerean authored
avcodec/libsvtav1: send the EOS signal without a one frame delay to allow for the library to operate in a low-delay mode Co-authored-by: Amir Naghdinezhad <amir.naghdinezhad@intel.com> Signed-off-by: Cosmin Stejerean <cosmin@cosmin.at> Signed-off-by: James Almer <jamrial@gmail.com>
-
Andreas Rheinhardt authored
Fixes the dxv3enc-dxt1 FATE test with UBSan and on big-endian hardware. Reviewed-by: James Almer <jamrial@gmail.com> Tested-by: Sean McGovern <gseanmcg@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Timo Rothenpieler authored
FFmpeg has instances of DECLARE_ALIGNED(32, ...) in a lot of structs, which then end up heap-allocated. By declaring any variable in a struct, or tree of structs, to be 32 byte aligned, it allows the compiler to safely assume the entire struct itself is also 32 byte aligned. This might make the compiler emit code which straight up crashes or misbehaves in other ways, and at least in one instances is now documented to actually do (see ticket 10549 on trac). The issue there is that an unrelated variable in SingleChannelElement is declared to have an alignment of 32 bytes. So if the compiler does a copy in decode_cpe() with avx instructions, but ffmpeg is built with --disable-avx, this results in a crash, since the memory is only 16 byte aligned. Mind you, even if the compiler does not emit avx instructions, the code is still invalid and could misbehave. It just happens not to. Declaring any variable in a struct with a 32 byte alignment promises 32 byte alignment of the whole struct to the compiler. This patch limits the maximum alignment to the maximum possible simd alignment according to configure. While not perfect, it at the very least gets rid of a lot of UB, by matching up the maximum DECLARE_ALIGNED value with the alignment of heap allocations done by lavu.
-
sunyuechi authored
This is for clarity and use in testing, consistent with other parts of the code. Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
-
sunyuechi authored
C908: nsse_0_c: 1990.0 nsse_0_rvv_i32: 572.0 nsse_1_c: 910.0 nsse_1_rvv_i32: 456.0 Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
-
Andreas Rheinhardt authored
It is undefined behaviour. Fixes many failed tests with UBSan and GCC 13 like "src/libavformat/mov.c:4229:44: runtime error: store to address 0x5572abe20f80 with insufficient space for an object of type 'struct MOVIndexRange'" (The line number does not refer to the line where &entry[-1] is assigned.) Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
- 26 Feb, 2024 18 commits
-
-
Andreas Rheinhardt authored
This reverts commit eee3b7e2. It has been made in an attempt to fix UBSan test failures with GCC 13 (see e.g. [1]), but it did not help at all. So revert it, but use av_malloc_array() instead of going back to av_malloc(). [1]: https://fate.ffmpeg.org/report.cgi?slot=x86_64-archlinux-gcc-ubsan&time=20240226182430Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
The AAC decoders share no common code with the AAC encoder, so they are not restricted to using the same structures. This implies that one can use different structs for each component and remove elements not used by the decoders/ the encoder. This leads to quite sizeable savings: sizeof(ChannelElement) for the encoder went down to 134432B here from 547552B; for the decoder it went down to 512800B. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
It is decoder-only; furthermore, there is already an AACContext in use by libfdk-aacenc. Also make aacdec.h provide the typedef for AACContext; up until now, this has been done by sbr.h. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
AACContext is not used by the encoder at all. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
Andreas Rheinhardt authored
Common symbols are not part of ISO-C and therefore not used by FFmpeg at all. Yet linker warnings to ensure it stays that way are nevertheless wrong, because the existence of common symbols does not imply that there is a bug in our code. More precisely, Clang's ASAN implementation uses a common symbol ___asan_globals_registered when used on Elf targets with the -fsanitize-address-globals-dead-stripping option; said option is the default since Clang 17 [1]. This leads to 1883 warnings about ___asan_globals_registered when linking here. (Even without that option there were warnings like _ZN14__interception10real_vforkE being overridden.) Said warning is also unnecessary: The proper way to ensure that our code is free of common symbols is to let the compiler enforce this. But this is already the default since GCC 10 and Clang 11, so there is no risk of introducing our own common symbols. [1]: https://reviews.llvm.org/D152604Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
Export each tile as its own stream, and the grid information as a Stream Group of type TILE_GRID. This also enables exporting other stream items like thumbnails, which may be present in non tiled HEIF images too. For those, the primary stream will be tagged with the default disposition. Based on a patch by Swaraj Hota Signed-off-by: James Almer <jamrial@gmail.com>
-
James Almer authored
This will be used to support tiled image formats like HEIF. Signed-off-by: James Almer <jamrial@gmail.com>
-
Ronald S. Bultje authored
Signed-off-by: J. Dekker <jdek@itanimul.li>
-
J. Dekker authored
Signed-off-by: J. Dekker <jdek@itanimul.li>
-
Zhao Zhili authored
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-
Fei Wang authored
Supported formats are checked in base function ff_vaapi_vpp_config_output. Signed-off-by: Fei Wang <fei.w.wang@intel.com>
-
Tong Wu authored
Signed-off-by: Tong Wu <tong1.wu@intel.com>
-
- 25 Feb, 2024 1 commit
-
-
Frank Plowman authored
Previously, the following syntax elements were not read in the case sps_num_subpics_minus is 0: * sps_subpic_id_len_minus1 * sps_subpic_id_mapping_explicitly_signalled_flag * sps_subpic_id_mapping_present_flag * sps_subpic_id[i] This was causing failures to decode bitstreams, for example the DVB's "VVC HDR UHDTV1 OpenGOP 3840x2160 50fps HLG10 PiP" V&V bitstream. Patch fixes this by moving the reads for these syntax elements out a scope. Signed-off-by: Frank Plowman <post@frankplowman.com> Signed-off-by: James Almer <jamrial@gmail.com>
-