aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/libvpx.h
Commit message (Collapse)AuthorAgeFilesLines
* libavcodec/libvpxenc: move libvpx-vp9 init_static_data function to the only ↵James Almer2023-03-011-10/+0
| | | | | | place it's used Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/libvpx: increase thread limit to 64OvchinnikovDmitrii2023-01-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | This change improves the performance and multicore scalability of the vp9 codec for streaming single-pass encoded videos by taking advantage of up to 64 cores in the system. The current thread limit for ffmpeg codecs is 16 (MAX_AUTO_THREADS in pthread_internal.h) due to a limitation in H.264 codec that prevents more than 16 threads being used. Experiments show that increasing the thread limit to 64 for vp9 improves the performance for encoding 4K raw videos for streaming by up to 47% compared to 16 threads, and from 20-30% for 32 threads, with the same quality as measured by the VMAF score. Rationale for this change: Vp9 uses tiling to split the video frame into multiple columns; tiles must be at least 256 pixels wide, so there is a limit to how many tiles can be used. The tiles can be processed in parallel, and more tiles mean more CPU threads can be used. 4K videos can make use of 16 threads, and 8K videos can use 32. Row-mt can double the number of threads so 64 threads can be used. Signed-off-by: James Zern <jzern@google.com>
* avcodec/codec_internal: Add FFCodec, hide internal part of AVCodecAndreas Rheinhardt2022-03-211-2/+2
| | | | | | | | | | | | | | | | 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>
* Merge commit '67c884eb07c7e9f2cb72bb8d447d945e5ac8cac7'Michael Niedermayer2015-07-101-0/+2
|\ | | | | | | | | | | | | * commit '67c884eb07c7e9f2cb72bb8d447d945e5ac8cac7': libvpx: Add the library header Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * libvpx: Add the library headerVittorio Giovara2015-07-091-0/+2
| | | | | | | | Unbreak make checkheaders
* | libvpx: disable unused function prototypesJames Almer2015-06-261-0/+2
| | | | | | | | | | | | Fixes make checkheader Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit '8655c54160767de1a6b96f8bc310d6e4eaceff48'Michael Niedermayer2015-06-211-0/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '8655c54160767de1a6b96f8bc310d6e4eaceff48': libvpx: Support the vp9 extended profiles Conflicts: Changelog configure libavcodec/libvpx.c libavcodec/libvpx.h libavcodec/libvpxdec.c libavcodec/libvpxenc.c libavcodec/version.h mostly not merged, as requested by jamrial See: 01e59d48ed1a41b88107ed1d4d56ae0cbcd1a60e See: 079b7f6eacc09bc2813fc1ddc230ab05022b69c2 and others Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * libvpx: Support the vp9 extended profilesLuca Barbato2015-06-211-1/+2
| | | | | | | | | | | | | | | | | | | | Bump the minimum libvpx version to 1.3.0 and rework the configure logic to fail only if no decoders and encoders are found. Based on the original patch from Vittorio. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | avcodec/libvpx: set CODEC_CAP_EXPERIMENTAL correctly instead of testing at ↵Michael Niedermayer2013-12-101-1/+1
| | | | | | | | | | | | | | codec open time Reviewed-by: James Zern <jzern@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-12-081-4/+4
|/ | | | | | | | | | | * qatar/master: libvpx: do not mark VP9 as experimental when using libvpx >= 1.3.0 Conflicts: libavcodec/libvpxdec.c libavcodec/libvpxenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
* libvpx: do not mark VP9 as experimental when using libvpx >= 1.3.0Guillaume Martres2013-12-081-0/+28
Signed-off-by: Diego Biurrun <diego@biurrun.de>