diff options
author | Jan Ekström <jeebjp@gmail.com> | 2022-04-25 23:35:17 +0300 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2022-04-26 09:17:47 +0300 |
commit | ded0334d214f9617122ccf5466f99df5c908277b (patch) | |
tree | ab9cecf388fb25ad180336eef70c83874b55d880 /libavcodec | |
parent | 6fd1533057ff4f966efc169b71f8c3770843fc49 (diff) |
avcodec/libsvtav1: add support for setting chroma sample location
Support for configuring this was added with version 1.0.0.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/libsvtav1.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index 088b9bab02..b4112004ad 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -205,6 +205,33 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, else param->color_range = !!(desc->flags & AV_PIX_FMT_FLAG_RGB); +#if SVT_AV1_CHECK_VERSION(1, 0, 0) + if (avctx->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED) { + const char *name = + av_chroma_location_name(avctx->chroma_sample_location); + + switch (avctx->chroma_sample_location) { + case AVCHROMA_LOC_LEFT: + param->chroma_sample_position = EB_CSP_VERTICAL; + break; + case AVCHROMA_LOC_TOPLEFT: + param->chroma_sample_position = EB_CSP_COLOCATED; + break; + default: + if (!name) + break; + + av_log(avctx, AV_LOG_WARNING, + "Specified chroma sample location %s is unsupported " + "on the AV1 bit stream level. Usage of a container that " + "allows passing this information - such as Matroska - " + "is recommended.\n", + name); + break; + } + } +#endif + if (avctx->profile != FF_PROFILE_UNKNOWN) param->profile = avctx->profile; |