[FFmpeg-devel] [PATCH 1/5] avutil/spherical: Add more spherical types

Derek Buitenhuis derek.buitenhuis at gmail.com
Mon Jun 10 21:44:03 EEST 2024


These originate from the Apple Vision Pro, and are documented here:

    https://developer.apple.com/documentation/coremedia/cmprojectiontype

Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
---
 libavutil/spherical.c |  3 +++
 libavutil/spherical.h | 16 ++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/libavutil/spherical.c b/libavutil/spherical.c
index 800d3459a5..d78f98f945 100644
--- a/libavutil/spherical.c
+++ b/libavutil/spherical.c
@@ -57,6 +57,9 @@ static const char *const spherical_projection_names[] = {
     [AV_SPHERICAL_EQUIRECTANGULAR]      = "equirectangular",
     [AV_SPHERICAL_CUBEMAP]              = "cubemap",
     [AV_SPHERICAL_EQUIRECTANGULAR_TILE] = "tiled equirectangular",
+    [AV_SPHERICAL_HALF_EQUIRECTANGULAR] = "half equirectangular",
+    [AV_SPHERICAL_RECTANGULAR]          = "rectangular",
+    [AV_SPHERICAL_FISHEYE]              = "fisheye",
 };
 
 const char *av_spherical_projection_name(enum AVSphericalProjection projection)
diff --git a/libavutil/spherical.h b/libavutil/spherical.h
index 828ac836da..118fbcc3d1 100644
--- a/libavutil/spherical.h
+++ b/libavutil/spherical.h
@@ -66,6 +66,22 @@ enum AVSphericalProjection {
      * the position of the current video in a larger surface.
      */
     AV_SPHERICAL_EQUIRECTANGULAR_TILE,
+
+    /**
+     * Video frame displays as a 180 degree equirectangular projection.
+     */
+    AV_SPHERICAL_HALF_EQUIRECTANGULAR,
+
+    /**
+     * Video contentframe displays on a flat, rectangular 2D surface.
+     */
+    AV_SPHERICAL_RECTANGULAR,
+
+    /**
+     * Fisheye projection (Apple).
+     * See: https://developer.apple.com/documentation/coremedia/cmprojectiontype/fisheye
+     */
+    AV_SPHERICAL_FISHEYE,
 };
 
 /**
-- 
2.43.0



More information about the ffmpeg-devel mailing list