[FFmpeg-cvslog] lavu/spherical: Add support for Spherical Immersive type

Vittorio Giovara git at videolan.org
Thu Jul 31 12:24:55 EEST 2025


ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Wed Jul 23 23:42:14 2025 +0200| [119d127d05c910db0f0d31c1b124a8d60fd0d75d] | committer: Vittorio Giovara

lavu/spherical: Add support for Spherical Immersive type

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=119d127d05c910db0f0d31c1b124a8d60fd0d75d
---

 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, \



More information about the ffmpeg-cvslog mailing list