summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* libavfilter: Remove DNNReturnType from DNN ModuleShubhanshu Saxena2022-03-12
| | | | | | | | | | This patch removes all occurences of DNNReturnType from the DNN module. This commit replaces DNN_SUCCESS by 0 (essentially the same), so the functions with DNNReturnType now return 0 in case of success, the negative values otherwise. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com> Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_backend_common: Return specific error codesShubhanshu Saxena2022-03-12
| | | | | | | Switch to returning specific error codes or DNN_GENERIC_ERROR when an error is encountered in the common DNN backend functions. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_backend_native: Return Specific Error CodesShubhanshu Saxena2022-03-12
| | | | | | | Switch to returning specific error codes or DNN_GENERIC_ERROR when an error is encountered. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_backend_tf: Return Specific Error CodesShubhanshu Saxena2022-03-12
| | | | | | | | Switch to returning specific error codes or DNN_GENERIC_ERROR when an error is encountered. For TensorFlow C API errors, currently DNN_GENERIC_ERROR is returned. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_backend_openvino: Return Specific Error CodesShubhanshu Saxena2022-03-12
| | | | | | | | Switch to returning specific error codes or DNN_GENERIC_ERROR when an error is encountered. For OpenVINO API errors, currently DNN_GENERIC_ERROR is returned. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn_io_proc: Return Specific Error CodesShubhanshu Saxena2022-03-12
| | | | | | | This commit returns specific error codes from the functions in the dnn_io_proc instead of DNN_ERROR. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* lavfi/dnn: Error Specificity in Native Backend LayersShubhanshu Saxena2022-03-12
| | | | | | | This commit returns specific error codes from the execution functions in the Native Backend layers instead of DNN_ERROR. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* libavfilter: Prepare to handle specific error codes in DNN FiltersShubhanshu Saxena2022-03-12
| | | | | | | This commit prepares the filter side to handle specific error codes from the DNN backends instead of current DNN_ERROR. Signed-off-by: Shubhanshu Saxena <shubhanshu.e01@gmail.com>
* avfilter/af_afftdn: remove special handling for first and last binPaul B Mahol2022-03-11
|
* avfilter/af_afftdn: remove code that have marginal impact to denoisingPaul B Mahol2022-03-11
|
* avformat/movenc: Simplify creating chapter track extradataAndreas Rheinhardt2022-03-11
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/mov: Add test for muxing chaptersAndreas Rheinhardt2022-03-11
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: move ranlib -D test after setting defaultsAdrian Ratiu2022-03-11
| | | | | | | | | | | | | | | | | In Gentoo and ChromeOS we want to allow pure LLVM builds without using GNU tools, so we block any unwanted mixed GNU/LLVM usages (GNU tools are still kept around in our chroots for projects like glibc which cannot yet be built otherwise). The default ${cross_prefix}${ranlib_default} points to GNU and fails, so move the test a bit later - after the defaults are set and the proper values get overriden - such that ffmpeg configure calls the llvm-ranlib we desire. [1] [1] https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/ffmpeg/ffmpeg-4.4.1-r1.ebuild?id=7a34377e3277a6a0e2eedd40e90452a44c55f1e6#n477 Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* avfilter/vf_zscale: do not attempt to continue filtering if there is no graphPaul B Mahol2022-03-11
|
* avfilter/vf_zscale: also check formatsPaul B Mahol2022-03-11
|
* avutil/cpu: add AVX512 Icelake flagWu Jianhua2022-03-10
| | | | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com> Reviewed-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat: add DFPWM WAV container supportJack Bruienne2022-03-10
| | | | | | | | | | | | | | | | | | | This commit adds support for storing DFPWM audio in a WAV container. It uses the WAVEFORMATEXTENSIBLE structure, following these conventions: https://gist.github.com/MCJack123/90c24b64c8e626c7f130b57e9800962c The implementation is very simple: it just adds the GUID to the list of WAV GUIDs, and modifies the WAV muxer to always use WAVEFORMATEXTENSIBLE format with that GUID. This creates a standard container format for DFPWM besides raw data. It will allow users to transfer DFPWM audio in a standard container format, with the sample rate and channel count contained in the file as opposed to being an external parameter as in the raw format. This format is already supported in my AUKit library, which is the CC analog to libav (albeit much smaller). Support in other applications is TBD. Signed-off-by: Jack Bruienne <jackbruienne@gmail.com>
* avformat: add DFPWM raw formatJack Bruienne2022-03-10
| | | | | | | | | | | | | This patch builds on my previous DFPWM codec patch, adding a raw audio format to be able to read/write the raw files that are most commonly used (as no other container format supports it yet). The muxers are mostly copied from the PCM demuxer and the raw muxers, as DFPWM is typically stored as raw data. Please see the previous patch for more information on DFPWM. Signed-off-by: Jack Bruienne <jackbruienne@gmail.com>
* avcodec: add DFPWM1a codecJack Bruienne2022-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the wiki page (https://wiki.vexatos.com/dfpwm): > DFPWM (Dynamic Filter Pulse Width Modulation) is an audio codec > created by Ben “GreaseMonkey” Russell in 2012, originally to be used > as a voice codec for asiekierka's pixmess, a C remake of 64pixels. > It is a 1-bit-per-sample codec which uses a dynamic-strength one-pole > low-pass filter as a predictor. Due to the fact that a raw DPFWM decoding > creates a high-pitched whine, it is often followed by some post-processing > filters to make the stream more listenable. It has recently gained popularity through the ComputerCraft mod for Minecraft, which added support for audio through this codec, as well as the Computronics expansion which preceeded the official support. These both implement the slightly adjusted 1a version of the codec, which is the version I have chosen for this patch. This patch adds a new codec (with encoding and decoding) for DFPWM1a. The codec sources are pretty simple: they use the reference codec with a basic wrapper to connect it to the FFmpeg AVCodec system. To clarify, the codec does not have a specific sample rate - it is provided by the container (or user), which is typically 48000, but has also been known to be 32768. The codec does not specify channel info either, and it's pretty much always used with one mono channel. However, since it appears that libavcodec expects both sample rate and channel count to be handled by either the codec or container, I have made the decision to allow multiple channels interleaved, which as far as I know has never been used, but it works fine here nevertheless. The accompanying raw format has a channels option to set this. (I expect most users of this will not use multiple channels, but it remains an option just in case.) This patch will be highly useful to ComputerCraft developers who are working with audio, as it is the standard format for audio, and there are few user-friendly encoders out there, and even fewer decoders. It will streamline the process for importing and listening to audio, replacing the need to write code or use tools that require very specific input formats. You may use the CraftOS-PC program (https://www.craftos-pc.cc) to test out DFPWM playback. To use it, run the program and type this command: "attach left speaker" Then run "speaker play <file.dfpwm>" for each file. The app runs in a sandbox, so files have to be transferred in first; the easiest way to do this is to simply drag the file on the window. (Or copy files to the folder at https://www.craftos-pc.cc/docs/saves.) Sample DFPWM files can be generated with an online tool at https://music.madefor.cc. This is the current best way to encode DFPWM files. Simply drag an audio file onto the page, and it will encode it, giving a download link on the page. I've made sure to update all of the docs as per Developer§7, and I've tested it as per section 8. Test files encoded to DFPWM play correctly in ComputerCraft, and other files that work in CC are correctly decoded. I have also verified that corrupt files do not crash the decoder - this should theoretically not be an issue as the result size is constant with respect to the input size. Signed-off-by: Jack Bruienne <jackbruienne@gmail.com>
* avfilter/af_lv2: add commands supportPaul B Mahol2022-03-10
|
* avfilter/af_anlmdn: add support for using writable framesPaul B Mahol2022-03-10
|
* fate: add a test for HDR Vivid metadata in HEVCLimin Wang2022-03-10
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/af_anlmdn: stop using fifo and rewriting ptsPaul B Mahol2022-03-09
|
* avfilter/af_anlmdn: fix possible array overflow and increase options limitsPaul B Mahol2022-03-09
|
* arm64: Add Armv8.3-A PAC support to assembly filesAndre Kempe2022-03-09
| | | | | | | | | | | This patch adds optional support for Arm Pointer Authentication Codes. PAC support is turned on or off at compile time using additional compiler flags. Unless any of these is enabled explicitly, no additional code will be emitted at all. Signed-off-by: André Kempe <andre.kempe@arm.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* lavfi/drawtext: Add %N for drawing fractions of a secondThilo Borgmann2022-03-08
| | | | Suggested-By: ffmpeg@fb.com
* avfilter/f_segment: fix sending frames with zero samples outPaul B Mahol2022-03-08
| | | | Fix max_samples variable type, and check for out of range values.
* avcodec/pngdec: support alpha blending for palette apngPaul B Mahol2022-03-08
| | | | Update clock test, as PAL8 apngs are now decoded as RGBA.
* avcodec/argo: Check packet sizeMichael Niedermayer2022-03-08
| | | | | | | | Fixes: Timeout Fixes: 45052/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ARGO_fuzzer-6033489206575104 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/g729_parser: Check channelsMichael Niedermayer2022-03-08
| | | | | | | | | Fixes: signed integer overflow: 10 * 808464428 cannot be represented in type 'int' Fixes: assertion failure Fixes: ticket9651 Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/avidec: Check heightMichael Niedermayer2022-03-08
| | | | | | | Fixes: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself Fixes: Ticket8486 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* tools/target_dec_fuzzer: Adjust threshold for targaMichael Niedermayer2022-03-08
| | | | | | | | Fixes: Timeout Fixes: 44877/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TARGA_fuzzer-4870505251864576 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/rmdec: Better duplicate tags checkMichael Niedermayer2022-03-08
| | | | | | | | Fixes: memleaks Fixes: 44810/clusterfuzz-testcase-minimized-ffmpeg_dem_IVR_fuzzer-5619494647627776 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/f_sendcmd: export width and height tooPaul B Mahol2022-03-07
|
* avfilter/af_channelsplit: switch to activate()Paul B Mahol2022-03-07
|
* avfilter/af_acrossover: switch to activate()Paul B Mahol2022-03-07
|
* avfilter/vf_extractplanes: switch to activate()Paul B Mahol2022-03-07
| | | | | | | Fixes hang at end of input with this command: ffmpeg -f lavfi -i testsrc2=d=50,format=yuv444p -lavfi \ "extractplanes=y+u+v[y][u][v];[y]tpad=start=0[y];[u]tpad=start=0[u];[v]negate[v];[y][u][v]vstack=3" -f null -
* avfilter/split: switch to activate()Paul B Mahol2022-03-07
|
* libavfilter: vf_scale: Properly take in->color_range into accountMartin Storsjö2022-03-07
| | | | | | | | | | | | | | | | | | | | | While swscale can be reconfigured with sws_setColorspaceDetails, the in/out ranges also need to be set before calling sws_init_context, otherwise the initialization might choose fastpaths that don't take the ranges into account. Therefore, look at in->color_range too, when deciding on whether the scaler needs to be reconfigured. Add a new member variable for keeping track of this, for being able to differentiate between whether the scale filter parameter "in_range" has been set (which should override whatever the input frame has set) or whether it has been configured based on the latest frame (which should trigger reconfiguring the scaler if the input frame ranges change). Fixes: Ticket #9576 Signed-off-by: Martin Storsjö <martin@martin.st>
* avfilter/vf_colorlevels: Fix build failure on ARMMichael Niedermayer2022-03-06
| | | | | | | | | | This fixes building for arm after 10c2ef1ca41dbe7811f0588f4163c8cf7b8fda66. The argument to av_clip_uintp2 must be an assembly time immediate constant. Reviewed-by: Paul B Mahol <onemda@gmail.com> Reviewed-by and commit message details-by: Martin Storsjö <martin@martin.st> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vsrc_gradients: add radial gradientsPaul B Mahol2022-03-06
|
* avfilter/vsrc_gradients: add gbrapf32 format supportPaul B Mahol2022-03-06
|
* avfilter/vf_colorlevels: add planar rgb formats supportPaul B Mahol2022-03-06
|
* avcodec: add pcm-bluray encoderPaul B Mahol2022-03-06
|
* avformat/mpegtsenc: fix muxing pcm-blurayPaul B Mahol2022-03-06
|
* tests: update hash as output have changed again for fate-lavf-mxf_opatomPaul B Mahol2022-03-06
|
* avfilter/avf_ahistogram: use av_clip_uint8() insteadPaul B Mahol2022-03-06
|
* avcodec/dnxhdenc: fill unused bytes from put bits buffer with zerosPaul B Mahol2022-03-05
|
* avfilter/avf_ahistogram: add new histogram mode optionPaul B Mahol2022-03-05
|
* avcodec/dnxhdenc: retry increasing qscale to not overflow max_bitsPaul B Mahol2022-03-05
| | | | | | | Increase mb_bits type from uint16_t to uint32_t to fix possible overflows in bit size calculations. Update fate test that needs change.