diff mbox series

[FFmpeg-devel,08/10,v3] avutil/stereo3d: add a new allocator function that returns a size

Message ID 20240622231520.7410-8-jamrial@gmail.com
State New
Headers show
Series [FFmpeg-devel,01/10,v4] avutil/stereo3d: add a Monoscopic view enum value | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

James Almer June 22, 2024, 11:15 p.m. UTC
av_stereo3d_alloc() is not useful in scenarios where you need to know the
runtime size of AVStereo3D.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavutil/stereo3d.c | 8 ++++++++
 libavutil/stereo3d.h | 8 ++++++++
 2 files changed, 16 insertions(+)
diff mbox series

Patch

diff --git a/libavutil/stereo3d.c b/libavutil/stereo3d.c
index 1f944e9cac..0eaa8154d9 100644
--- a/libavutil/stereo3d.c
+++ b/libavutil/stereo3d.c
@@ -32,6 +32,11 @@  static void get_defaults(AVStereo3D *stereo)
 }
 
 AVStereo3D *av_stereo3d_alloc(void)
+{
+    return av_stereo3d_alloc_size(NULL);
+}
+
+AVStereo3D *av_stereo3d_alloc_size(size_t *size)
 {
     AVStereo3D *stereo = av_mallocz(sizeof(AVStereo3D));
     if (!stereo)
@@ -39,6 +44,9 @@  AVStereo3D *av_stereo3d_alloc(void)
 
     get_defaults(stereo);
 
+    if (size)
+        *size = sizeof(*stereo);
+
     return stereo;
 }
 
diff --git a/libavutil/stereo3d.h b/libavutil/stereo3d.h
index deddecfb36..a2e480b1ff 100644
--- a/libavutil/stereo3d.h
+++ b/libavutil/stereo3d.h
@@ -248,6 +248,14 @@  typedef struct AVStereo3D {
  */
 AVStereo3D *av_stereo3d_alloc(void);
 
+/**
+ * Allocate an AVStereo3D structure and set its fields to default values.
+ * The resulting struct can be freed using av_freep().
+ *
+ * @return An AVStereo3D filled with default values or NULL on failure.
+ */
+AVStereo3D *av_stereo3d_alloc_size(size_t *size);
+
 /**
  * Allocate a complete AVFrameSideData and add it to the frame.
  *