summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* fftools: Stop using av_fopen_utf8Martin Storsjö2022-05-23
| | | | | | | | | | Provide a header based inline reimplementation of it. Using av_fopen_utf8 doesn't work outside of the libraries when built with MSVC as shared libraries (in the default configuration, where each DLL gets a separate statically linked CRT). Signed-off-by: Martin Storsjö <martin@martin.st>
* avutil/hwcontext_qsv: fix mapping issue between QSV frames and D3D11VA framesTong Wu2022-05-23
| | | | | | | | | | | | Fixes: $ ffmpeg.exe -init_hw_device d3d11va=d3d11 -init_hw_device \ qsv=qsv@d3d11 -s:v WxH -pix_fmt nv12 -i input.yuv -vf \ "hwupload=extra_hw_frames=16,hwmap=derive_device=d3d11va,format=d3d11,\ hwmap=derive_device=qsv,format=qsv" -f null - Reviewed-by: Soft Works <softworkz@hotmail.com> Signed-off-by: Tong Wu <tong1.wu@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avutil/hwcontext_d3d11va: pass the format value from outside for staging textureTong Wu2022-05-23
| | | | | | | | | | | | | | | | In d3d11va_create_staging_texture(), during the hwmap process, the ctx->internal->priv is not initialized, resulting in the texDesc.Format not initialized. Now pass the format value from d3d11va_transfer_data() to fix it. $ ffmpeg.exe -y -hwaccel qsv -init_hw_device d3d11va=d3d11 \ -init_hw_device qsv=qsv@d3d11 -c:v h264_qsv \ -i input.h264 -vf "hwmap=derive_device=d3d11va,format=d3d11,hwdownload,format=nv12" \ -f null - Reviewed-by: Soft Works <softworkz@hotmail.com> Signed-off-by: Tong Wu <tong1.wu@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avutil/hwcontext_qsv: derive QSV frames to D3D11VA framesTong Wu2022-05-23
| | | | | | | | | | | Fixes: $ ffmpeg.exe -y -hwaccel qsv -init_hw_device d3d11va=d3d11 \ -init_hw_device qsv=qsv@d3d11 -c:v h264_qsv -i input.h264 \ -vf "hwmap=derive_device=d3d11va,format=d3d11" -f null - Reviewed-by: Soft Works <softworkz@hotmail.com> Signed-off-by: Tong Wu <tong1.wu@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avfilter/avf_showfreqs: fix memleak in plot_freqsSteven Liu2022-05-23
| | | | | | | plot_freqs should free colors before return error when ff_get_video_buffer failed Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avcodec/libuavs3d: fix access uninitialized variable when drainingZhao Zhili2022-05-23
| | | | buf_ptr is uninitialized and accessed when function return.
* x86/tx_float: replace fft_sr_avx with fft_sr_fma3Lynne2022-05-21
| | | | | | | | | | | | When the SLOW_GATHER flag was added to the AVX2 version, this made FMA3-features not enabled on Zen CPUs. As FMA3 adds 6-7% across all platforms that support it, in the interest of saving space, this commit removes the AVX version and replaces it with an FMA3 version. The only CPUs affected are Sandy Bridge and Bulldozer, which have AVX support, but no FMA3 support. In the future, if there's a demand for it, a version of the function duplicated for AVX can be added.
* x86/tx_float: improve temporary register allocation for loadsLynne2022-05-21
| | | | | | | | | | On Zen 3: Before: 1484285 decicycles in av_tx (fft), 131072 runs, 0 skips After: 1415243 decicycles in av_tx (fft), 131072 runs, 0 skips
* lavu/tx: make slow ISA extension penalties smarterLynne2022-05-21
| | | | | | | | Instead of having a fixed -64 prio penalty, make the penalties more granular. As the prio is based on the register size in bits, decrementing it by 129 makes AVX SLOW functions be avoided in favor of any SSE versions.
* x86/tx_float: add AV_CPU_FLAG_AVXSLOW/SLOW_GATHER flags where appropriateLynne2022-05-21
|
* Revert "x86/tx_float: remove vgatherdpd usage"Lynne2022-05-21
| | | | | | | | This reverts commit 82a68a8771ca39564f6a74e0f875d6852e7a0c2a. Smarter slow ISA penalties makes gathers still useful. The intention is to use gathers with the final stage of non-ptwo iMDCTs, where they give benefit.
* opt_common: note D and T type streams for completeness.Gyan Doshi2022-05-20
| | | | Addresses #9784
* tests/fate: Remove intermediate file of flv-add_keyframe_index testAndreas Rheinhardt2022-05-20
| | | | | | | | Do this by making this test a transcode test. Also fix the test requirements and don't add this test to FATE_AFILTER; instead use a new variable and a new target for flvenc-tests. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/filter-video: Fix requirements of testsAndreas Rheinhardt2022-05-20
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/filter-video: Avoid duplication for fate-filter-overlay testsAndreas Rheinhardt2022-05-20
| | | | | | | | Also add a fate-filter-overlays target containing all these tests and fix the requirements of the tests; furthermore, remove unnecessary scale filters from filter-overlay-rgba?_rgba. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/filter-video: Avoid duplication for filter-removegrain testsAndreas Rheinhardt2022-05-20
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/filter-video: Avoid duplication for fate-filter-stereo3d testsAndreas Rheinhardt2022-05-20
| | | | | | | | Also fix the requirements of these tests: Only the anaglyph tests need a scale filter, yet it has been inserted for all tests without any check for its presence. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* tests/Makefile: Add FRAMECRC variants for filteringAndreas Rheinhardt2022-05-20
| | | | | | | | | | | | | | Lots of tests use the framecrc command together with some filters, so adding a special function for it seems worthwhile. This commit adds one new one and modifies an already existing one: All users of FILTERDEMDEC already use framecrc and the more general FILTERDEMDECENCMUX can be used in scenarios where more control over the used encoders/muxers is needed, so use this in cases where an actual input file is involved. Furthermore, add FILTERFRAMECRC for the cases where no demuxing/decoding occurs, because the input is generated via lavfi. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* tests/Makefile: Remove FILTERDEMDECMUXAndreas Rheinhardt2022-05-20
| | | | | | | | | | | | | | | It is unused and given that one needs an encoder to produce packets from AVFrames (as output by filters) this is likely to remain so, because FILTERDEMDECENCMUX is better for these scenarios. The only case where one can use filters without encoders is with the lavfi input device: It outputs AVPackets which could be copied without another conversion to AVFrames. Yet the variable to check for this is CONFIG_LAVFI_INDEV, but FILTERDEMDECMUX is designed to work with demuxers (i.e. CONFIG_*_DEMUXER). So there is no usecase for FILTERDEMDECMUX. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* x86/tx_float: remove vgatherdpd usageLynne2022-05-20
| | | | | | | | | | | | | | | | | | | | Its performance loss ranges from either being just as fast as individual loads (Skylake), a few percent slower (Alderlake), 8% slower (Zen 3), to completely disasterous (older/other CPUs). Sadly, gathers never panned out fast on x86, even with the benefit of time and implementation experience. This also saves a register, as there's no need to fill out an additional register mask. Zen 3 (16384-point transform): Before: 1561050 decicycles in av_tx (fft), 131072 runs, 0 skips After: 1449621 decicycles in av_tx (fft), 131072 runs, 0 skips Alderlake: 2% slower on big transforms (65536), to 1% (131072), to a few percent for smaller sizes.
* avfilter/formats: Constify channel_layout in ff_add_channel_layout()Andreas Rheinhardt2022-05-19
| | | | | | It copies, not moves the channel layout. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegvideo: Move float.h inclusion to mpegvideoenc.hAndreas Rheinhardt2022-05-19
| | | | | | It is only needed for the options in mpegvideoenc.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mss2: Remove write-only QpelDSPContextAndreas Rheinhardt2022-05-19
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/error_resilience: Only keep what is needed from MECmpContextAndreas Rheinhardt2022-05-19
| | | | | | | | | ERContext currently has an embedded MECmpContext, despite only needing exactly one function from it. This is wasteful because MECmpContext is pretty large (135 pointers, 1080 B for eight byte pointers). So keep only what is needed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dvdsubenc: return error if canvas_size is too small for subtitle renderLimin Wang2022-05-19
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/sccenc: avoid potential invalid accessLimin Wang2022-05-19
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* Makefile: remove sccenc dependency on subtitlesLimin Wang2022-05-19
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avformat/img2: Add support for AVIF mux in image2Vignesh Venkatasubramanian2022-05-19
| | | | | | | | | Add support for AVIF muxing in the image2 muxer. Tested with this example: ffmpeg -lavfi testsrc=duration=1:size=320x320 -g 1 -flags global_header -c:v libaom-av1 -f image2 img-%2d.avif Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
* fftools/opt_common: add includes of avf headers for claritysoftworkz2022-05-18
| | | | | Signed-off-by: softworkz <softworkz@hotmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/hls, dashdec: Don't use AV_OPT flags in av_dict_set()Andreas Rheinhardt2022-05-16
| | | | | | | | | | | | | | | | | av_dict_set() expects a different set of flags, namely the AV_DICT_* flags. Using AV_OPT_FLAG_DECODING_PARAM (or any AV_OPT_FLAG_*) ic av_dict_set() is therefore completely wrong and given that av_dict_set() just doesn't care about whether the string it receives has anything to do with a decoding parameter or not, it should just be removed without replacement. (The numerical value of AV_OPT_FLAG_DECODING_PARAM currently coincides with AV_DICT_IGNORE_SUFFIX. Given that the dictionaries we are dealing with here are always empty (i.e. NULL) before the calls to av_dict_set(), this flag changes nothing. It would be different if it were equal to one of the AV_DICT_DONT_STRDUP_* values.) Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* doc/muxers: note write_btrt option for MOV/MP4Gyan Doshi2022-05-16
|
* avcodec/wrapped_avframe: Don't attach FrameDecodeData unnecessarilyAndreas Rheinhardt2022-05-15
| | | | | | It is unneeded, as this decoder does not call ff_get_buffer(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ac3: Move non-(de|en)coder-only parts out of ac3.hAndreas Rheinhardt2022-05-15
| | | | | | | | | | Move AC3HeaderInfo into ac3_parser_internal.h and the rest into a new header ac3defs.h. This also breaks an include cycle of ac3.h and ac3tab.h (the latter now only needs ac3defs.h). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ac3tab: Move some tables only used by ac3.c to itAndreas Rheinhardt2022-05-15
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ac3: Remove declaration of inexistent functionAndreas Rheinhardt2022-05-15
| | | | | | Removed in 7b11eead1b4e08728561595e6b610cf8fe2b7122. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/af_afir: add support for double sample formatPaul B Mahol2022-05-15
|
* avfilter/af_acrossover: add precision optionPaul B Mahol2022-05-14
|
* avformat/dashdec: accept and relay CENC decryption keyGyan Doshi2022-05-14
| | | | | Allows to process CENC-encrypted media segments. Option arg syntax is same as that for option decryption_key in MOV demuxer
* avfilter/af_asubboost: add channels optionPaul B Mahol2022-05-13
|
* avfilter/vf_zscale: active region use doubles so use that type here tooPaul B Mahol2022-05-13
|
* avfilter/af_asubboost: add boost optionPaul B Mahol2022-05-13
|
* avfilter/af_crossfeed: always return same number of samples with block ↵Paul B Mahol2022-05-13
| | | | processing
* avfilter/vf_zscale: improve slice processingPaul B Mahol2022-05-13
|
* avformat/movenc: Add support for AVIF muxingVignesh Venkatasubramanian2022-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an AVIF muxer by re-using the existing the mov/mp4 muxer. AVIF Specification: https://aomediacodec.github.io/av1-avif Sample usage for still image: ffmpeg -i image.png -c:v libaom-av1 -still-picture 1 image.avif Sample usage for animated AVIF image: ffmpeg -i video.mp4 animated.avif We can re-use any of the AV1 encoding options that will make sense for image encoding (like bitrate, tiles, encoding speed, etc). The files generated by this muxer has been verified to be valid AVIF files by the following: 1) Displays on Chrome (both still and animated images). 2) Displays on Firefox (only still images, firefox does not support animated AVIF yet). 3) Verified to be valid by Compliance Warden: https://github.com/gpac/ComplianceWarden Fixes the encoder/muxer part of Trac Ticket #7621 Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
* avformat/av1: Add a parameter to av1c to omit seq headerVignesh Venkatasubramanian2022-05-13
| | | | | | | | | Add a parameter to omit seq header when generating the av1C atom. For now, this does not change any behavior. This will be used by a follow-up patch to add AVIF support. Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
* avcodec/libaomenc: Add parameter for avif single image encodingVignesh Venkatasubramanian2022-05-13
| | | | | | | | | | | | | | Add a parameter to libaom-av1 encoder to enforce some of the single image constraints in the AV1 encoder. Setting this flag will limit the encoder to producing exactly one frame and the sequence header that is produced by the encoder will be conformant to the AVIF specification [1]. Part of Fixing Trac ticket #7621 [1] https://aomediacodec.github.io/av1-avif Signed-off-by:: Vignesh Venkatasubramanian <vigneshv@google.com>
* avdevice/dshow: reuse unused variables.Diederick Niehorster2022-05-12
| | | | | | | | Fix for f125c504d8fece6420bb97767f9e72414c26312a, requested_sample_rate and such should be used. Signed-off-by: Diederick Niehorster <dcnieho@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/vp9: ipred_vl_16x16_16 avx2 implementationSemen Belozerov2022-05-12
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avfilter/af_biquads: always return same number of samples with block processingPaul B Mahol2022-05-12
|
* doc/encoders.texi: Document updated behaviorTomas Härdin2022-05-12
| | | | Bitrates of akiyo changed slightly.