[FFmpeg-cvslog] avutil/stereo3d: set a sane default value for AVRational fields

James Almer git at videolan.org
Thu Jun 20 23:17:15 EEST 2024


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Tue Jun 18 16:20:24 2024 -0300| [c3606cad9cffded4620af07287606d4d97f29bf1] | committer: James Almer

avutil/stereo3d: set a sane default value for AVRational fields

Prevent potential divisions by 0 when using them immediately after allocation.

Signed-off-by: James Almer <jamrial at gmail.com>

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

 libavutil/stereo3d.c                         | 14 +++++++++++++-
 libavutil/version.h                          |  2 +-
 tests/ref/fate/matroska-spherical-mono       |  2 +-
 tests/ref/fate/matroska-spherical-mono-remux |  4 ++--
 tests/ref/fate/matroska-stereo_mode          |  8 ++++----
 tests/ref/fate/matroska-vp8-alpha-remux      |  2 +-
 tests/ref/fate/mov-spherical-mono            |  2 +-
 7 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/libavutil/stereo3d.c b/libavutil/stereo3d.c
index a40a9439bb..19e81e4124 100644
--- a/libavutil/stereo3d.c
+++ b/libavutil/stereo3d.c
@@ -26,9 +26,20 @@
 #include "mem.h"
 #include "stereo3d.h"
 
+static void get_defaults(AVStereo3D *stereo)
+{
+    stereo->horizontal_disparity_adjustment = (AVRational) { 0, 1 };
+}
+
 AVStereo3D *av_stereo3d_alloc(void)
 {
-    return av_mallocz(sizeof(AVStereo3D));
+    AVStereo3D *stereo = av_mallocz(sizeof(AVStereo3D));
+    if (!stereo)
+        return NULL;
+
+    get_defaults(stereo);
+
+    return stereo;
 }
 
 AVStereo3D *av_stereo3d_create_side_data(AVFrame *frame)
@@ -40,6 +51,7 @@ AVStereo3D *av_stereo3d_create_side_data(AVFrame *frame)
         return NULL;
 
     memset(side_data->data, 0, sizeof(AVStereo3D));
+    get_defaults((AVStereo3D *)side_data->data);
 
     return (AVStereo3D *)side_data->data;
 }
diff --git a/libavutil/version.h b/libavutil/version.h
index 9c24b64032..145fe634b3 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -80,7 +80,7 @@
 
 #define LIBAVUTIL_VERSION_MAJOR  59
 #define LIBAVUTIL_VERSION_MINOR  24
-#define LIBAVUTIL_VERSION_MICRO 102
+#define LIBAVUTIL_VERSION_MICRO 103
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                LIBAVUTIL_VERSION_MINOR, \
diff --git a/tests/ref/fate/matroska-spherical-mono b/tests/ref/fate/matroska-spherical-mono
index c52ca8e7ee..b108596350 100644
--- a/tests/ref/fate/matroska-spherical-mono
+++ b/tests/ref/fate/matroska-spherical-mono
@@ -6,7 +6,7 @@ inverted=0
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [SIDE_DATA]
diff --git a/tests/ref/fate/matroska-spherical-mono-remux b/tests/ref/fate/matroska-spherical-mono-remux
index 10b92d5f2e..eec41b77f3 100644
--- a/tests/ref/fate/matroska-spherical-mono-remux
+++ b/tests/ref/fate/matroska-spherical-mono-remux
@@ -30,7 +30,7 @@ inverted=0
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [SIDE_DATA]
@@ -59,7 +59,7 @@ inverted=0
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [SIDE_DATA]
diff --git a/tests/ref/fate/matroska-stereo_mode b/tests/ref/fate/matroska-stereo_mode
index a1aab1e38e..26c325b20e 100644
--- a/tests/ref/fate/matroska-stereo_mode
+++ b/tests/ref/fate/matroska-stereo_mode
@@ -135,7 +135,7 @@ inverted=0
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [/STREAM]
@@ -155,7 +155,7 @@ inverted=1
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [/STREAM]
@@ -173,7 +173,7 @@ inverted=1
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [/STREAM]
@@ -192,7 +192,7 @@ inverted=1
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [/STREAM]
diff --git a/tests/ref/fate/matroska-vp8-alpha-remux b/tests/ref/fate/matroska-vp8-alpha-remux
index ea8a089cec..06bcc4b4ba 100644
--- a/tests/ref/fate/matroska-vp8-alpha-remux
+++ b/tests/ref/fate/matroska-vp8-alpha-remux
@@ -38,7 +38,7 @@ inverted=0
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [/STREAM]
diff --git a/tests/ref/fate/mov-spherical-mono b/tests/ref/fate/mov-spherical-mono
index c52ca8e7ee..b108596350 100644
--- a/tests/ref/fate/mov-spherical-mono
+++ b/tests/ref/fate/mov-spherical-mono
@@ -6,7 +6,7 @@ inverted=0
 view=packed
 primary_eye=none
 baseline=0
-horizontal_disparity_adjustment=0/0
+horizontal_disparity_adjustment=0/1
 horizontal_field_of_view=0
 [/SIDE_DATA]
 [SIDE_DATA]



More information about the ffmpeg-cvslog mailing list