mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-14 10:30:55 +03:00
Use "rav1e" if available as default ("auto") avif encoder
This commit is contained in:
parent
bdb24f9c84
commit
ddc8e7e459
|
@ -1370,7 +1370,7 @@ The :py:meth:`~PIL.Image.Image.save` method supports the following options:
|
|||
YUV range, either "full" or "limited". Defaults to "full"
|
||||
|
||||
**codec**
|
||||
AV1 codec to use for encoding. Specific values are "aom", "rav1e", and
|
||||
AV1 codec to use for encoding. Specific values are "rav1e", "aom", and
|
||||
"svt", presuming the chosen codec is available. Defaults to "auto", which
|
||||
will choose the first available codec in the order of the preceding list.
|
||||
|
||||
|
|
10
src/_avif.c
10
src/_avif.c
|
@ -3,6 +3,8 @@
|
|||
#include <Python.h>
|
||||
#include "avif/avif.h"
|
||||
|
||||
static int have_rav1e = 0;
|
||||
|
||||
typedef struct {
|
||||
avifPixelFormat subsampling;
|
||||
int qmin;
|
||||
|
@ -369,7 +371,11 @@ AvifEncoderNew(PyObject *self_, PyObject *args) {
|
|||
enc_options.speed = speed;
|
||||
|
||||
if (strcmp(codec, "auto") == 0) {
|
||||
enc_options.codec = AVIF_CODEC_CHOICE_AUTO;
|
||||
if (have_rav1e) {
|
||||
enc_options.codec = AVIF_CODEC_CHOICE_RAV1E;
|
||||
} else {
|
||||
enc_options.codec = AVIF_CODEC_CHOICE_AUTO;
|
||||
}
|
||||
} else {
|
||||
enc_options.codec = avifCodecChoiceFromName(codec);
|
||||
}
|
||||
|
@ -1015,6 +1021,8 @@ setup_module(PyObject *m) {
|
|||
PyDict_SetItemString(d, "libavif_version", v ? v : Py_None);
|
||||
Py_XDECREF(v);
|
||||
|
||||
have_rav1e = _codec_available("rav1e", AVIF_CODEC_FLAG_CAN_ENCODE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user