summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorJan Ekström <jeebjp@gmail.com>2022-04-25 23:35:17 +0300
committerJan Ekström <jeebjp@gmail.com>2022-04-26 09:17:47 +0300
commitded0334d214f9617122ccf5466f99df5c908277b (patch)
treeab9cecf388fb25ad180336eef70c83874b55d880 /libavcodec
parent6fd1533057ff4f966efc169b71f8c3770843fc49 (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.c27
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;