summaryrefslogtreecommitdiff
path: root/libavcodec/allcodecs.c
Commit message (Collapse)AuthorAge
* lavc/dxvenc: add DXV encoder with support for DXT1 texture formatConnor Worley2024-01-23
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* vvcdec: add vvc decoderNuo Mi2024-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vvc decoder plug-in to avcodec. split frames into slices/tiles and send them to vvc_thread for further decoding reorder and wait for the frame decoding to be done and output the frame Features: + Support I, P, B frames + Support 8/10/12 bits, chroma 400, 420, 422, and 444 and range extension + Support VVC new tools like MIP, CCLM, AFFINE, GPM, DMVR, PROF, BDOF, LMCS, ALF + 295 conformace clips passed - Not support RPR, IBC, PALETTE, and other minor features yet Performance: C code FPS on an i7-12700K (x86): BQTerrace_1920x1080_60_10_420_22_RA.vvc 93.0 Chimera_8bit_1080P_1000_frames.vvc 184.3 NovosobornayaSquare_1920x1080.bin 191.3 RitualDance_1920x1080_60_10_420_32_LD.266 150.7 RitualDance_1920x1080_60_10_420_37_RA.266 170.0 Tango2_3840x2160_60_10_420_27_LD.266 33.7 C code FPS on a M1 Mac Pro (ARM): BQTerrace_1920x1080_60_10_420_22_RA.vvc 58.7 Chimera_8bit_1080P_1000_frames.vvc 153.3 NovosobornayaSquare_1920x1080.bin 150.3 RitualDance_1920x1080_60_10_420_32_LD.266 105.0 RitualDance_1920x1080_60_10_420_37_RA.266 133.0 Tango2_3840x2160_60_10_420_27_LD.266 21.7 Asm optimizations still working in progress. please check https://github.com/ffvvc/FFmpeg/wiki#performance-data for the latest Contributors (based on code merge order): Nuo Mi <nuomi2021@gmail.com> Xu Mu <toxumu@outlook.com> Frank Plowman <post@frankplowman.com> Shaun Loo <shaunloo10@gmail.com> Wu Jianhua <toqsxw@outlook.com> Thank you for reporting issues and providing performance reports: Łukasz Czech <lukaszcz18@wp.pl> Xu Fulong <839789740@qq.com> Thank you for providing review comments: Ronald S. Bultje <rsbultje@gmail.com> James Almer <jamrial@gmail.com> Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Co-authored-by: Xu Mu <toxumu@outlook.com> Co-authored-by: Frank Plowman <post@frankplowman.com> Co-authored-by: Shaun Loo <shaunloo10@gmail.com> Co-authored-by: Wu Jianhua <toqsxw@outlook.com>
* avcodec: add QOA decoderPaul B Mahol2023-11-26
|
* avcodec/evc_decoder: Provided support for EVC decoderDawid Kozinski2023-11-20
| | | | | | | | | - Added EVC decoder wrapper - Changes in project configuration file and libavcodec Makefile - Added documentation for xevd wrapper Signed-off-by: Dawid Kozinski <d.kozinski@samsung.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/evc_encoder: Provided support for EVC encoderDawid Kozinski2023-11-20
| | | | | | | | | - Added EVC encoder wrapper - Changes in project configuration file and libavcodec Makefile - Added documentation for xeve wrapper Signed-off-by: Dawid Kozinski <d.kozinski@samsung.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec: LEAD MCMP decoderPeter Ross2023-11-08
| | | | | | | | | Partially fixes ticket #798 Reviewed-by: James Almer <jamrial@gmail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Peter Ross <pross@xvid.org>
* lavc/vaapi_encode: Add VAAPI AV1 encoderFei Wang2023-09-22
| | | | | Signed-off-by: Fei Wang <fei.w.wang@intel.com> Acked-by: Neal Gompa <ngompa13@gmail.com>
* avcodec: add OSQ audio decoderPaul B Mahol2023-09-01
|
* lavc/msrleenc: Add msrle encoderTomas Härdin2023-06-20
| | | | Keyframes are marked automagically
* avcodec: add VMX1 decoderPaul B Mahol2023-06-12
|
* avcodec: add RTV1 decoderPaul B Mahol2023-06-07
|
* avcodec/mediacodec: Add VP8 encoderSamuel Mira2023-05-17
| | | | | | | Connected FFmpeg to Mediacodec VP8 encoder. Signed-off-by: Samuel Mira <samuel.mira@qt.io> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodec: Add AV1 encoderSamuel Mira2023-05-17
| | | | | | | Connected FFmpeg to Mediacodec AV1 encoder Signed-off-by: Samuel Mira <samuel.mira@qt.io> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec: add PDV decoderPaul B Mahol2023-04-20
|
* Remove libopenjpeg decoderMichael Niedermayer2023-04-02
| | | | | | We do not support other video/image decoders when we have our own. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mediacodec: add mpeg4 encoderSamuel Raposo Vieira Mira2023-04-02
| | | | | | | This patch will add MPEG4 encoder using Android Mediacodec Signed-off-by: Samuel Mira <samuel.mira@qt.io<mailto:samuel.mira@qt.io>> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodec: add vp9 encoder using mediacodecSamuel Raposo Vieira Mira2023-04-02
| | | | | | | | The only encoders avaliable using mediacodec were h264 and hevc. This patch adds the vp9 encoder. Signed-off-by: Samuel Mira <samuel.mira@qt.io<mailto:samuel.mira@qt.io>> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* lavc/libaribcaption.c: add ARIB caption decoder using libaribcaptionTADANO Tokumei2023-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch add another ARIB caption decoder using libaribcaption external library. Unlike libaribb24, it supports 3 types of subtitle outputs: * text: plain text * ass: ASS formatted text * bitmap: bitmap image Default subtitle type is ass as same as libaribb24. Advantages compared with libaribb24 on ASS subtitle are: * Subtitle positioning. * Multi-rect subtitle: some captions are displayed at different position at a time. * More stability and reproducibility. To compile with this feature: * libaribcaption external library has to be pre-installed. https://github.com/xqq/libaribcaption * configure with `--enable-libaribcaption` option. `--enable-libaribb24` and `--enable-libaribcaption` options are not exclusive. If both enabled, libaribcaption precedes as order listed in `libavcodec/allcodecs.c`. Signed-off-by: rcombs <rcombs@rcombs.me>
* avcodec/libvpxdec: Constify VP9-decoderAndreas Rheinhardt2023-03-13
| | | | | | | Possible since 8d226fb9786f34760e80e0d6b403bd63e9ac4ddd. Reviewed-by: James Zern <jzern-at-google.com@ffmpeg.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec: add RKA decoderPaul B Mahol2023-02-11
|
* avcodec: add WavArc decoderPaul B Mahol2023-02-04
|
* lavc: add null codecsAnton Khirnov2023-01-31
| | | | | They discard all input without ever returning any output. Useful for development.
* avcodec: add ADPCM XMD decoderPaul B Mahol2023-01-30
|
* avcodec: add CBD2 DPCM decoderPaul B Mahol2023-01-27
|
* libavcodec/amfenc: add AV1 encoding supportDmitrii Ovchinnikov2023-01-27
| | | | Tested-by: Jean-Baptiste Kempf <jb@videolan.org>
* avcodec: add WADY DPCM decoderPaul B Mahol2023-01-24
|
* avcodec/mediacodecdec: add AV1 decoding supportZhao Zhili2023-01-03
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec: add MediaCodec encoderZhao Zhili2022-11-21
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/nvenc: add AV1 encoding supportTimo Rothenpieler2022-11-05
| | | | | | | | | | | | | | | | The encoder seems to be trading blows with hevc_nvenc. In terms of quality at low bitrate cbr settings, it seems to outperform it even. It produces fewer artifacts and the ones it does produce are less jarring to my perception. At higher bitrates I had a hard time finding differences between the two encoders in terms of subjective visual quality. Using the 'slow' preset, av1_nvenc outperformed hevc_nvenc in terms of encoding speed by 75% to 100% while performing above tests. Needless to say, it always massively outperformed h264_nvenc in terms of quality for a given bitrate, while also being slightly faster.
* libavcodec/qsvenc_av1: add av1_qsv encoderWenbin Chen2022-10-24
| | | | | | | | | | | | It is available only when libvpl is enabled. MSDK doesn't support av1 encoding. sample command: ffmpeg -f rawvideo -pix_fmt nv12 -s 1920x1080 -i input.yuv \ -c:v av1_qsv output.ivf Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avcodec: ViewQuest VQC decoderPeter Ross2022-10-18
| | | | | | Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Reviewed-by: Tomas Härdin <git@haerdin.se> Signed-off-by: Peter Ross <pross@xvid.org>
* avcodec: add Media 100i decoderPaul B Mahol2022-09-30
|
* avcodec: add FTR audio decoder and parserPaul B Mahol2022-09-24
|
* avcodec: add APAC decoderPaul B Mahol2022-09-23
|
* avcodec: add MI-SC4 audio decoderPaul B Mahol2022-09-16
|
* avcodec: add bonk audio decoderPaul B Mahol2022-09-12
|
* The vuya pixel format was recently added, so this lavc workaround is no longerJames Almer2022-08-19
| | | | | | needed. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec: WBMP (Wireless Application Protocol Bitmap) image formatPeter Ross2022-08-07
| | | | | Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: Peter Ross <pross@xvid.org>
* avcodec: add Radiance HDR image format supportPaul B Mahol2022-07-16
|
* avcodec: add PHM decoder and encoderPaul B Mahol2022-07-03
|
* avcodec: add QOI decoder and demuxer and parser and encoder and muxerPaul B Mahol2022-06-05
|
* 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.
* avcodec/vbnenc: add VBN encoderMarton Balint2022-04-10
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/vbndec: add VBN decoderMarton Balint2022-04-10
| | | | | | | | Add support for decoding Vizrt Binary Image (VBN) files. LZW-compressed data is not supported yet. Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec/allcodecs: Dont play with NULLsMichael Niedermayer2022-03-21
| | | | | | | | | Fixes: member access within null pointer of type 'const FFCodec' (aka 'const struct FFCodec') Fixes: 45726/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6554445419249664 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/codec_internal: Add FFCodec, hide internal part of AVCodecAndreas Rheinhardt2022-03-21
| | | | | | | | | | | | | | | | Up until now, codec.h contains both public and private parts of AVCodec. This exposes the internals of AVCodec to users and leads them into the temptation of actually using them and forces us to forward-declare structures and types that users can't use at all. This commit changes this by adding a new structure FFCodec to codec_internal.h that extends AVCodec, i.e. contains the public AVCodec as first member; the private fields of AVCodec are moved to this structure, leaving codec.h clean. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Use a separate config_components.h header for $ALL_COMPONENTSMartin Storsjö2022-03-16
| | | | | | | | This avoids unnecessary rebuilds of most source files if only the list of enabled components has changed, but not the other properties of the build, set in config.h. Signed-off-by: Martin Storsjö <martin@martin.st>
* 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>
* avcodec: add pcm-bluray encoderPaul B Mahol2022-03-06
|