summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVittorio Giovara <[email protected]>2025-07-23 23:42:14 +0200
committerVittorio Giovara <[email protected]>2025-07-31 10:58:36 +0200
commit119d127d05c910db0f0d31c1b124a8d60fd0d75d (patch)
tree761aa7cf55cc9ab1985cd45dd0b163fd35d4c04e
parentc275f3bfa16035b33ba879580512d517d11c6ddd (diff)
lavu/spherical: Add support for Spherical Immersive type
-rw-r--r--doc/APIchanges3
-rw-r--r--libavformat/mov.c3
-rw-r--r--libavutil/spherical.c1
-rw-r--r--libavutil/spherical.h6
-rw-r--r--libavutil/version.h2
5 files changed, 14 insertions, 1 deletions
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, \