avutil/spherical: Add more spherical types

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@gmail.com>
This commit is contained in:
Derek Buitenhuis 2024-05-30 16:09:32 +01:00
parent b515088576
commit 57bfba35d6
4 changed files with 27 additions and 1 deletions

View File

@ -2,6 +2,11 @@ The last version increases of all libraries were on 2024-03-07
API changes, most recent first: API changes, most recent first:
2024-06-18 - xxxxxxxxxx - lavu 59.23.100 - spherical.h
Add AV_SPHERICAL_HALF_EQUIRECTANGULAR, AV_SPHERICAL_RECTILINEAR, and
AV_SPHERICAL_FISHEYE values to AVSphericalProjection, and initialize
to AV_SPHERICAL_RECTILINEAR on alloc.
2024-06-13 - xxxxxxxxxx - lavu 59.22.100 - common.h 2024-06-13 - xxxxxxxxxx - lavu 59.22.100 - common.h
Deprecate av_mod_uintp2[_c]() and replace it with av_zero_extend[_c](). Deprecate av_mod_uintp2[_c]() and replace it with av_zero_extend[_c]().

View File

@ -29,6 +29,8 @@ AVSphericalMapping *av_spherical_alloc(size_t *size)
if (!spherical) if (!spherical)
return NULL; return NULL;
spherical->projection = AV_SPHERICAL_RECTILINEAR;
if (size) if (size)
*size = sizeof(*spherical); *size = sizeof(*spherical);
@ -57,6 +59,9 @@ static const char *const spherical_projection_names[] = {
[AV_SPHERICAL_EQUIRECTANGULAR] = "equirectangular", [AV_SPHERICAL_EQUIRECTANGULAR] = "equirectangular",
[AV_SPHERICAL_CUBEMAP] = "cubemap", [AV_SPHERICAL_CUBEMAP] = "cubemap",
[AV_SPHERICAL_EQUIRECTANGULAR_TILE] = "tiled equirectangular", [AV_SPHERICAL_EQUIRECTANGULAR_TILE] = "tiled equirectangular",
[AV_SPHERICAL_HALF_EQUIRECTANGULAR] = "half equirectangular",
[AV_SPHERICAL_RECTILINEAR] = "rectilinear",
[AV_SPHERICAL_FISHEYE] = "fisheye",
}; };
const char *av_spherical_projection_name(enum AVSphericalProjection projection) const char *av_spherical_projection_name(enum AVSphericalProjection projection)

View File

@ -66,6 +66,22 @@ enum AVSphericalProjection {
* the position of the current video in a larger surface. * the position of the current video in a larger surface.
*/ */
AV_SPHERICAL_EQUIRECTANGULAR_TILE, AV_SPHERICAL_EQUIRECTANGULAR_TILE,
/**
* Video frame displays as a 180 degree equirectangular projection.
*/
AV_SPHERICAL_HALF_EQUIRECTANGULAR,
/**
* Video frame displays on a flat, rectangular 2D surface.
*/
AV_SPHERICAL_RECTILINEAR,
/**
* Fisheye projection (Apple).
* See: https://developer.apple.com/documentation/coremedia/cmprojectiontype/fisheye
*/
AV_SPHERICAL_FISHEYE,
}; };
/** /**

View File

@ -79,7 +79,7 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 59 #define LIBAVUTIL_VERSION_MAJOR 59
#define LIBAVUTIL_VERSION_MINOR 22 #define LIBAVUTIL_VERSION_MINOR 23
#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \