From 119d127d05c910db0f0d31c1b124a8d60fd0d75d Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Wed, 23 Jul 2025 23:42:14 +0200 Subject: [PATCH] lavu/spherical: Add support for Spherical Immersive type --- doc/APIchanges | 3 +++ libavformat/mov.c | 3 +++ libavutil/spherical.c | 1 + libavutil/spherical.h | 6 ++++++ libavutil/version.h | 2 +- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 5c40b7c13d..87e6036f18 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: +2025-07-31 - xxxxxxxxxx - lavu 60.7.100 - spherical.h + Add AV_SPHERICAL_PARAMETRIC_IMMERSIVE. + 2025-07-20 - xxxxxxxxxx - lavu 60.6.100 - attributes.h, avstring.h Add av_scanf_format() and use it on av_sscanf(). diff --git a/libavformat/mov.c b/libavformat/mov.c index 1c14b6fcf9..7f88ec8220 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -6858,6 +6858,9 @@ static int mov_read_vexu_proj(MOVContext *c, AVIOContext *pb, MOVAtom atom) case MKTAG('f','i','s','h'): projection = AV_SPHERICAL_FISHEYE; break; + case MKTAG('p','r','i','m'): + projection = AV_SPHERICAL_PARAMETRIC_IMMERSIVE; + break; default: av_log(c->fc, AV_LOG_ERROR, "Invalid projection type in prji box: 0x%08X\n", tag); return AVERROR_INVALIDDATA; diff --git a/libavutil/spherical.c b/libavutil/spherical.c index 64ade1d0ec..71342faea9 100644 --- a/libavutil/spherical.c +++ b/libavutil/spherical.c @@ -62,6 +62,7 @@ static const char *const spherical_projection_names[] = { [AV_SPHERICAL_HALF_EQUIRECTANGULAR] = "half equirectangular", [AV_SPHERICAL_RECTILINEAR] = "rectilinear", [AV_SPHERICAL_FISHEYE] = "fisheye", + [AV_SPHERICAL_PARAMETRIC_IMMERSIVE] = "parametric immersive", }; const char *av_spherical_projection_name(enum AVSphericalProjection projection) diff --git a/libavutil/spherical.h b/libavutil/spherical.h index 2e90f7752d..4b78978eb9 100644 --- a/libavutil/spherical.h +++ b/libavutil/spherical.h @@ -82,6 +82,12 @@ enum AVSphericalProjection { * See: https://developer.apple.com/documentation/coremedia/cmprojectiontype/fisheye */ AV_SPHERICAL_FISHEYE, + + /** + * Parametric Immersive projection (Apple). + * See: https://developer.apple.com/documentation/coremedia/cmprojectiontype/parametricimmersive + */ + AV_SPHERICAL_PARAMETRIC_IMMERSIVE, }; /** diff --git a/libavutil/version.h b/libavutil/version.h index 946429b8fc..b454106960 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 60 -#define LIBAVUTIL_VERSION_MINOR 6 +#define LIBAVUTIL_VERSION_MINOR 7 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \