This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit c23d56b173ad9edc6a3afda3ddfcaa921eda95ff Author: James Almer <[email protected]> AuthorDate: Fri Mar 6 10:24:28 2026 -0300 Commit: James Almer <[email protected]> CommitDate: Sat Mar 7 19:21:38 2026 -0300 avcodec/codec_desc: add a codec prop to signal enhancement layers Some video codecs are not meant to output frames on their own but to be applied on top of frames generated by other codecs, as is the case of LCEVC, Dolby Vision, etc. Add a codec prop to signal this kind of codec, so that library users may know to not expect a standalone decoder for them to be present. Signed-off-by: James Almer <[email protected]> --- doc/APIchanges | 3 +++ libavcodec/allcodecs.c | 4 ++++ libavcodec/codec_desc.h | 8 ++++++++ libavcodec/version.h | 2 +- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 081483b130..f3b0c68575 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2025-03-28 API changes, most recent first: +2026-03-07 - xxxxxxxxxx - lavc 62.26.100 - codec_desc.h + Add AV_CODEC_PROP_ENHANCEMENT. + 2026-03-07 - xxxxxxxxxx - lavc 62.25.100 - avcodec.h Deprecate AVCodecContext.intra_dc_precision. diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index ad22162b0e..695214f192 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -28,11 +28,13 @@ #include <string.h> #include "config.h" +#include "libavutil/avassert.h" #include "libavutil/thread.h" #include "avcodec.h" #include "codec.h" #include "codec_id.h" #include "codec_internal.h" +#include "codec_desc.h" extern const FFCodec ff_a64multi_encoder; extern const FFCodec ff_a64multi5_encoder; @@ -1018,6 +1020,7 @@ static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id) static const AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *)) { const AVCodec *p, *experimental = NULL; + av_unused const AVCodecDescriptor *desc = avcodec_descriptor_get(id); void *i = 0; id = remap_deprecated_codec_id(id); @@ -1026,6 +1029,7 @@ static const AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *)) if (!x(p)) continue; if (p->id == id) { + av_assert1(!desc || !(desc->props & AV_CODEC_PROP_ENHANCEMENT)); if (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL && !experimental) { experimental = p; } else diff --git a/libavcodec/codec_desc.h b/libavcodec/codec_desc.h index 96afd20208..1186433c90 100644 --- a/libavcodec/codec_desc.h +++ b/libavcodec/codec_desc.h @@ -96,6 +96,14 @@ typedef struct AVCodecDescriptor { */ #define AV_CODEC_PROP_FIELDS (1 << 4) +/** + * Video codec contains enhancement information meant to be applied to other + * existing frames, and can't generate usable image data on its own. + * A standalone decoder is unlikely to be available for it and should not + * be expected. + */ +#define AV_CODEC_PROP_ENHANCEMENT (1 << 5) + /** * Subtitle codec is bitmap based * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field. diff --git a/libavcodec/version.h b/libavcodec/version.h index a744e7469f..26ee41eb1f 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 25 +#define LIBAVCODEC_VERSION_MINOR 26 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
