[vlc-commits] core: add a vlc_rational_t type for unsigned rational numbers

Steve Lhomme git at videolan.org
Fri Apr 7 14:27:14 CEST 2017


vlc | branch: master | Steve Lhomme <robux4 at videolabs.io> | Fri Mar 31 10:45:40 2017 +0200| [feafd961a7271bf3f3df52fc44b9c07eb6e393fb] | committer: Jean-Baptiste Kempf

core: add a vlc_rational_t type for unsigned rational numbers

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

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

 include/vlc_common.h                   |  4 ++++
 include/vlc_fourcc.h                   | 10 ++--------
 include/vlc_vout_display.h             |  5 +----
 include/vlc_vout_wrapper.h             |  5 +----
 modules/video_output/opengl/internal.h | 10 ++--------
 src/misc/fourcc_gen.c                  |  1 +
 src/video_output/display.c             | 21 +++++----------------
 7 files changed, 16 insertions(+), 40 deletions(-)

diff --git a/include/vlc_common.h b/include/vlc_common.h
index 6a75753..a3663ac 100644
--- a/include/vlc_common.h
+++ b/include/vlc_common.h
@@ -836,6 +836,10 @@ static inline void SetQWLE (void *p, uint64_t qw)
 #   include <tchar.h>
 #endif /* _WIN32 */
 
+typedef struct {
+    unsigned num, den;
+} vlc_rational_t;
+
 VLC_API bool vlc_ureduce( unsigned *, unsigned *, uint64_t, uint64_t, uint64_t );
 
 /* Aligned memory allocator */
diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h
index 9240f5f..b950b06 100644
--- a/include/vlc_fourcc.h
+++ b/include/vlc_fourcc.h
@@ -662,14 +662,8 @@ VLC_API bool vlc_fourcc_AreUVPlanesSwapped(vlc_fourcc_t , vlc_fourcc_t );
 typedef struct {
     unsigned plane_count;
     struct {
-        struct {
-            unsigned num;
-            unsigned den;
-        } w;
-        struct {
-            unsigned num;
-            unsigned den;
-        } h;
+        vlc_rational_t w;
+        vlc_rational_t h;
     } p[4];
     unsigned pixel_size;        /* Number of bytes per pixel for a plane */
     unsigned pixel_bits;        /* Number of bits actually used bits per pixel for a plane */
diff --git a/include/vlc_vout_display.h b/include/vlc_vout_display.h
index 46825be..7c16f0c 100644
--- a/include/vlc_vout_display.h
+++ b/include/vlc_vout_display.h
@@ -92,10 +92,7 @@ typedef struct {
         unsigned  height;
 
         /* Display SAR */
-        struct {
-            unsigned num;
-            unsigned den;
-        } sar;
+        vlc_rational_t sar;
     } display;
 
     /* Alignment of the picture inside the display */
diff --git a/include/vlc_vout_wrapper.h b/include/vlc_vout_wrapper.h
index ee69ad5..8ad826f 100644
--- a/include/vlc_vout_wrapper.h
+++ b/include/vlc_vout_wrapper.h
@@ -65,10 +65,7 @@ typedef struct {
 #if defined(_WIN32) || defined(__OS2__)
     unsigned wm_state;
 #endif
-    struct {
-        unsigned num;
-        unsigned den;
-    } sar;
+    vlc_rational_t sar;
 } vout_display_state_t;
 
 /**
diff --git a/modules/video_output/opengl/internal.h b/modules/video_output/opengl/internal.h
index 4115cda..b54f188 100644
--- a/modules/video_output/opengl/internal.h
+++ b/modules/video_output/opengl/internal.h
@@ -194,14 +194,8 @@ struct opengl_tex_converter_t
 
     struct opengl_tex_cfg {
         /* Texture scale factor, cannot be 0 */
-        struct {
-            unsigned num;
-            unsigned den;
-        } w;
-        struct {
-            unsigned num;
-            unsigned den;
-        } h;
+        vlc_rational_t w;
+        vlc_rational_t h;
 
         /* The following is used and filled by the opengl_fragment_shader_init
          * function. */
diff --git a/src/misc/fourcc_gen.c b/src/misc/fourcc_gen.c
index 7d99d44..5f91783 100644
--- a/src/misc/fourcc_gen.c
+++ b/src/misc/fourcc_gen.c
@@ -31,6 +31,7 @@
 #define VLC_API
 #define VLC_USED
 typedef uint32_t vlc_fourcc_t;
+typedef struct { unsigned num, den; } vlc_rational_t;
 #include "../include/vlc_fourcc.h"
 
 #define VLC_FOURCC(a,b,c,d) { a, b, c, d }
diff --git a/src/video_output/display.c b/src/video_output/display.c
index 824f9b6..63b9499 100644
--- a/src/video_output/display.c
+++ b/src/video_output/display.c
@@ -337,10 +337,7 @@ typedef struct {
 
     /* */
     vout_display_cfg_t cfg;
-    struct {
-        unsigned num;
-        unsigned den;
-    } sar_initial;
+    vlc_rational_t sar_initial;
 
     /* */
     unsigned width_saved;
@@ -351,20 +348,14 @@ typedef struct {
     bool is_display_filled;
 
     bool ch_zoom;
-    struct {
-        unsigned num;
-        unsigned den;
-    } zoom;
+    vlc_rational_t zoom;
 #if defined(_WIN32) || defined(__OS2__)
     bool ch_wm_state;
     unsigned wm_state;
     unsigned wm_state_initial;
 #endif
     bool ch_sar;
-    struct {
-        unsigned num;
-        unsigned den;
-    } sar;
+    vlc_rational_t sar;
 
     bool ch_crop;
     struct {
@@ -1229,8 +1220,7 @@ static vout_display_t *DisplayNew(vout_thread_t *vout,
     vout_display_cfg_t *cfg = &osys->cfg;
 
     *cfg = state->cfg;
-    osys->sar_initial.num = state->sar.num;
-    osys->sar_initial.den = state->sar.den;
+    osys->sar_initial = state->sar;
     vout_display_GetDefaultDisplaySize(&cfg->display.width, &cfg->display.height,
                                        source, cfg);
 
@@ -1327,8 +1317,7 @@ void vout_DeleteDisplay(vout_display_t *vd, vout_display_state_t *state)
 #if defined(_WIN32) || defined(__OS2__)
         state->wm_state = osys->wm_state;
 #endif
-        state->sar.num  = osys->sar_initial.num;
-        state->sar.den  = osys->sar_initial.den;
+        state->sar = osys->sar_initial;
     }
 
     VoutDisplayDestroyRender(vd);



More information about the vlc-commits mailing list