This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit c200628eace04db7589df029ea83169d0638d857
Author:     Kacper Michajłow <[email protected]>
AuthorDate: Wed Sep 9 07:12:50 2026 +0200
Commit:     Kacper Michajłow <[email protected]>
CommitDate: Thu Oct 1 14:31:15 2026 +0000

    avcodec: add AV_CODEC_CONFIG_CHROMA_LOCATION
    
    Lets an encoder state which chroma sample locations it can accept, so the
    caller can convert to one.
    
    Signed-off-by: Kacper Michajłow <[email protected]>
---
 doc/APIchanges              |  3 +++
 libavcodec/avcodec.c        |  4 ++++
 libavcodec/avcodec.h        |  1 +
 libavcodec/codec_internal.h | 11 +++++++++++
 libavcodec/version.h        |  2 +-
 5 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index eb2c0c458b..103817062c 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -5,6 +5,9 @@ API changes, most recent first:
 2026-09-xx - xxxxxxxxxx - lavfi 12.4.101 - avfilter.h
   Add AVFilterLink.chroma_location.
 
+2026-09-xx - xxxxxxxxxx - lavc 63.16.100 - avcodec.h
+  Add AV_CODEC_CONFIG_CHROMA_LOCATION.
+
 2026-08-xx - xxxxxxxxxx - lavf 63.7.100 - avformat.h
   Add AV_STREAM_GROUP_PARAMS_GAIN_MAP.
 
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index 5320dfc06c..7c8f875e2b 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -810,6 +810,10 @@ int ff_default_get_supported_config(const AVCodecContext 
*avctx,
         *out_num_configs = av_popcount(alpha_modes);
         return 0;
 
+    case AV_CODEC_CONFIG_CHROMA_LOCATION:
+        WRAP_CONFIG(AVMEDIA_TYPE_VIDEO, chroma_locations, loc,
+                    enum AVChromaLocation, loc == AVCHROMA_LOC_UNSPECIFIED);
+
     default:
         return AVERROR(EINVAL);
     }
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 1b3eaa799c..dcd19f8ff5 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2593,6 +2593,7 @@ enum AVCodecConfig {
     AV_CODEC_CONFIG_COLOR_RANGE,    ///< AVColorRange, terminated by 
AVCOL_RANGE_UNSPECIFIED
     AV_CODEC_CONFIG_COLOR_SPACE,    ///< AVColorSpace, terminated by 
AVCOL_SPC_UNSPECIFIED
     AV_CODEC_CONFIG_ALPHA_MODE,     ///< AVAlphaMode, terminated by 
AVALPHA_MODE_UNSPECIFIED
+    AV_CODEC_CONFIG_CHROMA_LOCATION, ///< AVChromaLocation, terminated by 
AVCHROMA_LOC_UNSPECIFIED
 };
 
 /**
diff --git a/libavcodec/codec_internal.h b/libavcodec/codec_internal.h
index d6b6317a6e..27cbbc32e0 100644
--- a/libavcodec/codec_internal.h
+++ b/libavcodec/codec_internal.h
@@ -154,6 +154,14 @@ typedef struct FFCodec {
      */
     unsigned alpha_modes:2;
 
+    /**
+     * This field determines the chroma sample locations supported by an
+     * encoder, terminated by AVCHROMA_LOC_UNSPECIFIED. Only needs to be set
+     * by encoders whose format defines the chroma siting, a NULL list means
+     * the encoder accepts whatever it is given.
+     */
+    const enum AVChromaLocation *chroma_locations;
+
     /**
      * This field determines the type of the codec (decoder/encoder)
      * and also the exact callback cb implemented by the codec.
@@ -411,6 +419,9 @@ int ff_default_get_supported_config(const struct 
AVCodecContext *avctx,
 #define CODEC_PIXFMTS(...) CODEC_PIXFMTS_ARRAY(((const enum AVPixelFormat[]) { 
__VA_ARGS__, AV_PIX_FMT_NONE }))
 #define CODEC_PIXFMTS_ARRAY(array) CODEC_ARRAY(pix_fmts, (array))
 
+#define CODEC_CHROMA_LOCS(...) CODEC_CHROMA_LOCS_ARRAY(((const enum 
AVChromaLocation[]) { __VA_ARGS__, AVCHROMA_LOC_UNSPECIFIED }))
+#define CODEC_CHROMA_LOCS_ARRAY(array) CODEC_ARRAY(chroma_locations, (array))
+
 #define CODEC_ARRAY(field, array) \
     .field = (array)              \
 
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 9b8c267529..82a86fe9d9 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
 
 #include "version_major.h"
 
-#define LIBAVCODEC_VERSION_MINOR  15
+#define LIBAVCODEC_VERSION_MINOR  16
 #define LIBAVCODEC_VERSION_MICRO 100
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to