summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avutil/hwcontext_qsv: Allocate public and priv device hwctx togetherAndreas Rheinhardt2024-03-05
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to QSVDeviceContext as one no longer has to go through AVHWDeviceInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_d3d11va: Allocate pub and priv frames hwctx togetherAndreas Rheinhardt2024-03-05
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to D3D11VAFramesContext as one no longer has to go through AVHWFramesInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_dxva2: Allocate pub and priv frames hwctx togetherAndreas Rheinhardt2024-03-05
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to DXVA2FramesContext as one no longer has to go through AVHWFramesInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/iamfenc: ensure updated extradata is writtenJames Almer2024-03-04
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_writer: update extradata from packet side dataJames Almer2024-03-04
| | | | | | | Some encoders, like flac, propagate updated extradata at the end of encoding as packet side data. Use it to update the relevant codec_config. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: set stream index field in tile gridsJames Almer2024-03-04
| | | | | | It was forgotten for grid type derived images. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: don't mark an item referenced by a grid as dependent if it's ↵James Almer2024-03-04
| | | | | | | | | the primary item If it's the primary item, then it's expected to be ready for presentation even outside of the grid it belongs to. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: fix setting disposition for the first iamf streamJames Almer2024-03-04
| | | | | | st->disposition will be overwritten with disposition later in the function. Signed-off-by: James Almer <jamrial@gmail.com>
* configure: do not specify -ldvdread, as pkg-config check is already doneMarth642024-03-04
| | | | | Reported-by: BtbN Signed-off-by: Marth64 <marth64@proxyid.net>
* fix "@param foo[in/out]" to "@param[in, out] foo"Andrew Sayers2024-03-04
| | | | | | | | | | | | | | Fix a few invalid doxygen comments: /** * @param[in,out] correctly_formatted * @param incorrect1[in] - [in] must come immediately after @param * @param incorrect2[in/out] - '/' must be ',' */ Actual command: sed -i -e "s/\(\* .*param\)\( [^\[]*\)\(\[.*\]\)/\1\3\2/g" -e "s/in\//in,/" $( git grep -l "\* .*param .*\[\(in\|out\)" ) Signed-off-by: Andrew Sayers <ffmpeg-devel@pileofstuff.org>
* fix "param"s that should be "@param"Andrew Sayers2024-03-04
| | | | | | Actual command: sed -i -e "s/\(^ *\\* \)\(param[^a-z]\)/\1@\2/" $( git grep -l "^ *\\* param[^a-z]" ) Signed-off-by: Andrew Sayers <ffmpeg-devel@pileofstuff.org>
* avcodec/avcodec: downgrade multi-member comment to non-Doxygen commentAndrew Sayers2024-03-04
| | | | | | | Doxygen only associates this comment with "pts_correction_num_faulty_pts", causing it to display incorrectly. Signed-off-by: Andrew Sayers <ffmpeg-devel@pileofstuff.org>
* avcodec/ivi: make comments more Doxygen-friendlyAndrew Sayers2024-03-04
| | | | | | | | | | | | | | Doxygen eats the newline in the first comment, making it harder to read. Join the lines and add a comma, so source and documentation are equally readable. Doxygen only associates the second comment with cust_dec. The comments for cust_dec and cust_tab make perfect sense without it, so downgrade it to a non-doxygen "//" comment. The third comment was missed by the command in the previous commit, because it (correctly but uniquely) doesn't have a trailing comma. Signed-off-by: Andrew Sayers <ffmpeg-devel@pileofstuff.org>
* fix /// comments that should be ///<Andrew Sayers2024-03-04
| | | | | | Actual command: sed -i -e "s/\([;,] *\)<* *\/\/\/ *<* */\1\/\/\/< /" $( git grep -l "[;,] */// " ) Signed-off-by: Andrew Sayers <ffmpeg-devel@pileofstuff.org>
* avutil/hwcontext_vdpau: Don't use AVHWFramesInternal.privAndreas Rheinhardt2024-03-04
| | | | | | | | Use AVHWFramesContext.hwctx instead. This simplifies access to VDPAUFramesContext as one no longer has to go through AVHWFramesInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_vdpau: Allocate public and priv device hwctx togetherAndreas Rheinhardt2024-03-04
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to VDPAUDeviceContext as one no longer has to go through AVHWDeviceInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffplay: stop printing non-public AVCodecContext fieldsAnton Khirnov2024-03-04
| | | | They are documented as not intended for caller use.
* avcodec/vvcdec: fix undefined behaviours for derive_affine_mvcNuo Mi2024-03-04
| | | | | | | libavcodec/vvc/vvc_inter.c:823:18: runtime error: signed integer overflow: 1426128896 + 1426128896 cannot be represented in type 'int' SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior libavcodec/vvc/vvc_inter.c:823:18 Suggested-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vvcdec: fix boundary strength when IBC involvedNuo Mi2024-03-04
| | | | | | | | | | | | | | The following cases should set bs to 1: If the prediction modes are not the same. If both prediction modes are MODE_IBC, but the motion vector delta is larger than 8 of 1/16 pixels. see 8.8.3.5 How to reproduce it: vvencapp -i sintel_trailer_2k_1080p24.y4m --preset fast --additional "IBC=1" -o sintel.266 ffmpeg -i sintel.266 -f md5 - md5 will mismatch Found-by: 6ws at https://github.com/ffvvc/FFmpeg/issues/187#issuecomment-1962842135
* doc/ffprobe.xsd: add <components> and <pieces>Niklas Haas2024-03-04
| | | | | Originally introduced for dovi side data printing, but not properly reflected in the xsd.
* doc/ffprobe.xsd: add frameSideDatumType entryNiklas Haas2024-03-04
| | | | | | Frame-level side data attributes are printed with the same key/value structure as packet-level side data attributes, but this is not reflected in the XSD.
* fftools/cmdutils: Inline print_error()Andreas Rheinhardt2024-03-04
| | | | | | | | It is only used by ffprobe (once) and ffplay (twice); inlining it avoids including it unnecessarily into ffmpeg. Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* doc/demuxers: emphasize that DVD demuxer does not do decryptionMarth642024-03-04
| | | | Signed-off-by: Marth64 <marth64@proxyid.net>
* Changelog: restore new lineMarth642024-03-04
| | | | | | | A new line was removed in a1304272c3a0ef7c3d77c702dd466b3f11bf300f which breaks consistency in between versions. Signed-off-by: Marth64 <marth64@proxyid.net>
* avformat/dvdvideodec: fix -pgc and -pg optionsMarth642024-03-04
| | | | | | | | | | Rebased on top of recently merged fixes (should apply correctly now). In merged DVD patch, -pgc and -pg options were broken. While these are rather advanced options, they are the only means to get content for some strangely authored discs. Signed-off-by: Marth64 <marth64@proxyid.net>
* aarch64: Use regular hwcaps flags instead of HWCAP_CPUID for CPU feature ↵Martin Storsjö2024-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | detection on Linux This makes the code much simpler (especially for adding support for other instruction set extensions), avoids needing inline assembly for this feature, and generally is more of the canonical way to do this. The CPU feature detection was added in 493fcde50a84cb23854335bcb0e55c6f383d55db, using HWCAP_CPUID. The argument for using that, was that HWCAP_CPUID was added much earlier in the kernel (in Linux v4.11), while the HWCAP flags for individual features always come later. This allows detecting support for new CPU extensions before the kernel exposes information about them via hwcap flags. However in practice, there's probably quite little advantage in this. E.g. HWCAP2_I8MM was added in Linux v5.10 - long after HWCAP_CPUID, but there's probably very little practical cases where one would run a kernel older than that on a CPU that supports those instructions. Additionally, we provide our own definitions of the flag values to check (as they are fixed constants anyway), with names not conflicting with the ones from system headers. This reduces the number of ifdefs needed, and allows detecting those features even if building with userland headers that are lacking the definitions of those flags. Also, slightly older versions of QEMU, e.g. 6.2 in Ubuntu 22.04, do expose support for these features via HWCAP flags, but the emulated cpuid registers are missing the bits for exposing e.g. I8MM. (This issue is fixed in later versions of QEMU though.) Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/aactab: Deduplicate ltp_coef and tns_tmp2_map tablesAndreas Rheinhardt2024-03-04
| | | | | | | This will allow to make aac_defines.h decoder-only. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/aacdec: Move buffer to reduce paddingAndreas Rheinhardt2024-03-04
| | | | | Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/lpc: Split inline functions into a header of their ownAndreas Rheinhardt2024-03-04
| | | | | | | | | And move compute_ref_coefs() to its only user: lpc.c There is no overlap between the users of compute_lpc_coefs() and lpc proper. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/lpc: Don't use AAC defines directlyAndreas Rheinhardt2024-03-04
| | | | | | | | It leads to defines for the AAC decoder being included outside of the AAC decoder. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/mpegts: detect synchronous metadata KLV more reliablyMarton Balint2024-03-04
| | | | | | | | | | | | | | | | The mpegts code historically tries to strip (the first) metadata access unit header from synchronous KLV metadata, but the detection for such streams was unreliable causing strips of asynchronous metadata or ID3 as well. MISB ST 1402 specifies required stream type, stream id and registration descriptor (which eventually maps to the codec ID) so let's use all of these for reliable detection. Fixes a regression caused by 468615f2045da325e0f73e8e668d49cf456ccb37. Fixes ticket #10828, #10883. Signed-off-by: Marton Balint <cus@passwd.hu>
* avutil/hwcontext_opencl: Allocate pub and priv frames hwctx togetherAndreas Rheinhardt2024-03-04
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to OpenCLFramesContext as one no longer has to go through AVHWFramesInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_opencl: Allocate pub and priv device hwctx togetherAndreas Rheinhardt2024-03-04
| | | | | | | | | This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to OpenCLDeviceContext as one no longer has to go through AVHWDeviceInternal. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/vulkan: Remove unused ff_vk_set_descriptor_sampler()Andreas Rheinhardt2024-03-03
| | | | | Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/vulkan: Make ff_vk_set_descriptor_image() staticAndreas Rheinhardt2024-03-03
| | | | | | | Only used in vulkan.c. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/vulkan: Avoid shadowingAndreas Rheinhardt2024-03-03
| | | | | Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/vulkan_loader: Avoid relocations for stringsAndreas Rheinhardt2024-03-03
| | | | | | | | | | To do so, concatenate all the names together to one big string name1\0name2\0....lastname\0\0. This avoids the pointer in the FunctionLoadInfo structure and thereby moves vk_load_info into .rodata (and makes it smaller by 888B). Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/vulkan_loader: Use smaller typesAndreas Rheinhardt2024-03-03
| | | | | | | | | Saves 16B per entry here (four of these 16 bytes are padding); leads to 1776 B of savings in each file that uses ff_vk_load_functions(). Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/vulkan_loader: Avoid redundant strings and relocationsAndreas Rheinhardt2024-03-03
| | | | | | | | | | | | | | | | | | There are three possible names for the functions requested; they only differ in an extension: "", "EXT" or "KHR". Yet vk_load_info contained pointers to all these strings. This is wasteful and this commit changes it to avoid the latter two strings. This saves 6353B of strings, 1776 B of .data.rel.ro as well as 5328 B due to the removed relocations (corresponding to 2 * 111 removed pointers) in lavc/vulkan_decode.o alone (ff_vk_load_functions() is inlined in lavfi/vulkan_filter.c, lavu/hwcontext_vulkan.c and lavc_vulkan_decode.c, so the savings are three times this for shared builds; for static builds, the number may be smaller depending upon whether strings are deduplicated). Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/vulkan: Don't autoinclude vulkan_loader.hAndreas Rheinhardt2024-03-03
| | | | | | | Only include it where necessary. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/fpel: Remove remnants of MMXAndreas Rheinhardt2024-03-03
| | | | | | | Since 7cad4dba505f9ad0adf013dd5bdf02a57249eecc averaging functions only exist for MMXEXT and SSE2. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vulkan_video: Don't use sparse tableAndreas Rheinhardt2024-03-03
| | | | | | | | | | | | ff_vk_codec_map currently is an array indexed by AVCodecID; it has AV_CODEC_ID_FIRST_AUDIO (= 65536) entries, but uses only three of them; only 24B of 1MiB were actually used This commit fixes this by adding an AVCodecID field to the table and making it non-sparse. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fftools/ffprobe: Print dispositions genericallyAndreas Rheinhardt2024-03-03
| | | | | Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/dvdvideodec: Reorder allocations to simplify freeingAndreas Rheinhardt2024-03-03
| | | | | Reviewed-by: Marth64 <marth64@proxyid.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/dvdvideodec: Only free allocated buffersAndreas Rheinhardt2024-03-03
| | | | | Reviewed-by: Marth64 <marth64@proxyid.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/dvdvideodec: Don't store AVInputFormat*Andreas Rheinhardt2024-03-03
| | | | | | | | | | | The inner AVInputFormat* of the inner mpegps-demuxer is only used once (in avformat_open_input()), so don't even store it. In fact, just use ff_mpegps_demuxer directly, as this demuxer has a configure dependency on it. Reviewed-by: Marth64 <marth64@proxyid.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/dvdvideodec: Explicitly return 0 on successAndreas Rheinhardt2024-03-03
| | | | | | | Don't "return ret" even when ret is zero on success. Reviewed-by: Marth64 <marth64@proxyid.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/iamf_writer: constify some function parametersJames Almer2024-03-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/wavdec: dynamically set max_size by defaultMarton Balint2024-03-02
| | | | | | | | | | | | | The wav demuxer by default tried to demux 4096-byte packets which caused packets with very few number of samples for files with high channel count. This caused a significant overhead especially since the latest ffmpeg.c threading changes. So let's use a similar approach for selecting audio frame size which is already used in the PCM demuxer, which is to read 25 times per second but at most 1024 samples. Signed-off-by: Marton Balint <cus@passwd.hu>
* fate/libswresample: force number of samples for the input of aresample async ↵Marton Balint2024-03-02
| | | | | | | | | tests Since PTS is changed randomly for every audio frame, it matters. Also add some forgotten filter dependencies. Signed-off-by: Marton Balint <cus@passwd.hu>