summaryrefslogtreecommitdiff
path: root/libavcodec/libsvtav1.c
Commit message (Collapse)AuthorAge
* avcodec: Add FF_CODEC_CAP_NOT_INIT_THREADSAFEAndreas Rheinhardt2022-07-18
| | | | | | | This is in preparation of switching the default init-thread-safety to a codec being init-thread-safe. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/libsvtav1: signal CPB properties through side dataJan Ekström2022-05-09
| | | | | | | | | This way values such as maxrate/bufsize can be utilized further down the chain. First, syncs up the max_rate and buffer_size from SVT-AV1 back to avctx, and then in case at least one of the utilized values is nonzero, adds the CPB properties side data.
* avcodec/libsvtav1: update avctx bit rate according to RC modeJan Ekström2022-05-09
| | | | | | This way we can filter out the default value for this member, which is nonzero. Bases on the current affairs that bit rate based rate control is nonzero in SVT-AV1.
* avcodec/libsvtav1: add support for setting chroma sample locationJan Ekström2022-04-26
| | | | Support for configuring this was added with version 1.0.0.
* avcodec/libsvtav1: pass pict_type to libraryChristopher Degawa2022-04-25
| | | | | | | | | | | match the behavior of SvtAv1EncApp to ensure pic_type is always set before passing it to the library. The other options for pic_type aren't currently used inside the library, so they aren't introduced in this patch. Signed-off-by: Christopher Degawa <ccom@randomderp.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: give svtav1-params priority over avctx valuesJames Almer2022-04-07
| | | | | | | | | | If the svt equivalent option to an avctx AVOption is passed by the user then it should have priority. The exception are fields like dimensions, bitdepth and pixel format, which must match what lavc will feed the encoder after init. This addresses libsvt-av1 issue #1858. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/codec_internal: Use union for FFCodec decode/encode callbacksAndreas Rheinhardt2022-04-05
| | | | | | | | | | | This is possible, because every given FFCodec has to implement exactly one of these. Doing so decreases sizeof(FFCodec) and therefore decreases the size of the binary. Notice that in case of position-independent code the decrease is in .data.rel.ro, so that this translates to decreased memory consumption. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/libsvtav1: pass color description infoChristopher Degawa2022-03-23
| | | | Signed-off-by: Christopher Degawa <ccom@randomderp.com>
* avcodec/codec_internal: Rename AVCodecDefault->FFCodecDefaultAndreas Rheinhardt2022-03-21
| | | | | | | This structure is no longer declared in a public header, so using an FF-prefix is more appropriate. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* 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>
* avcodec/internal: Move FF_CODEC_CAP_* to a new header codec_internal.hAndreas Rheinhardt2022-03-21
| | | | | | | | | | Also move FF_CODEC_TAGS_END as well as struct AVCodecDefault. This reduces the amount of files that have to include internal.h (which comes with quite a lot of indirect inclusions), as e.g. most encoders don't need it. It is furthemore in preparation for moving the private part of AVCodec out of the public codec.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/libsvtav1: remove version check macro workaroundJames Almer2022-03-13
| | | | | | The current minimum supported version defines the macro. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: fine tune qp mode settingsJames Almer2022-03-13
| | | | | | As requested in https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/1829 Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: deprecate some optionsJames Almer2022-03-13
| | | | | | svtav1-params should be used for these. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: update some options and defaultsJames Almer2022-02-24
| | | | | | And bump the minimum required version to 0.9.0 Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: fix compilation with old SVT-AV1 buildsJames Almer2022-02-24
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: add a svtav1-params option to pass a list of key=value ↵James Almer2022-02-24
| | | | | | parameters Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: properly enforce CQP mode when set in wrapperLimin Wang2021-09-29
| | | | | | | SVT-AV1 seems to have switched their default from CQP to CRF in February, so enforce the controlling option accordingly. Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec/libsvtav1: Fix value range for rc modeLimin Wang2021-09-25
| | | | | Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec/libsvtav1: make coded GOP type configurableLimin Wang2021-09-25
| | | | | Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec/libsvtav1: Fix duplicate definition of caps_internalLimin Wang2021-09-25
| | | | | Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec: Constify AVCodecsAndreas Rheinhardt2021-04-27
| | | | | | | | | | Given that the AVCodec.next pointer has now been removed, most of the AVCodecs are not modified at all any more and can therefore be made const (as this patch does); the only exceptions are the very few codecs for external libraries that have a init_static_data callback. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* lavc: rename AV_CODEC_CAP_AUTO_THREADS->AV_CODEC_CAP_OTHER_THREADSAnton Khirnov2021-03-16
| | | | | | | | | | This cap is currently used to mark multithreading-capable codecs that wrap external libraries with their own multithreading code. The name is highly confusing for our API users, since libavcodec ALWAYS handles thread_count=0 (see commit message in previous commit). Therefore rename the cap and update its documentation to make its meaning clear. The old name is kept deprecated until next+1 major bump.
* lavc: replace internal use of AV_CODEC_CAP_AUTO_THREADS with an internal capAnton Khirnov2021-03-16
| | | | | | | | | | | | | | | | AV_CODEC_CAP_AUTO_THREADS was originally added in b4d44a45f9a to mark codecs that spawn threads internally and are able to select an optimal threads count by themselves (all such codecs are wrappers around external libraries). It is used by lavc generic code to check whether it should handle thread_count=0 itself or pass the zero directly to the codec implementation. Within this meaning, it is clearly supposed to be an internal cap rather than a public one, since from the viewpoint of a libavcodec user, lavc ALWAYS handles thread_count=0. Whether it happens in the generic code or within the codec internals is not a meaningful difference for the caller. External aspects of this flag will be dealt with in the following commit.
* avcodec/libsvtav1: remove unneeded svt_av1_enc_deinit_handle()Limin Wang2020-08-14
| | | | | | It's for FF_CODEC_CAP_INIT_CLEANUP flag. Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avcodec/libsvtav1: fix copy and paste errorLimin Wang2020-08-12
| | | | | Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* libsvtav1: Fix the documentation to match the actual optionsMark Thompson2020-07-31
|
* libsvtav1: Use _ rather than - in optionsMark Thompson2020-07-31
|
* libsvtav1: Rename without a _Mark Thompson2020-07-31
The external library is called libsvtav1, so use this name everywhere.