From feafd961a7271bf3f3df52fc44b9c07eb6e393fb Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@videolabs.io> Date: Fri, 31 Mar 2017 10:45:40 +0200 Subject: [PATCH] core: add a vlc_rational_t type for unsigned rational numbers Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org> --- 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 6a75753dbf06..a3663accdddc 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 9240f5f54625..b950b0622b24 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 46825bea8c0e..7c16f0c9928a 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 ee69ad565e19..8ad826f6ccac 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 4115cda1b815..b54f188a1bae 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 7d99d44abcdd..5f917836903c 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 824f9b6f55d0..63b94992cc3e 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); -- GitLab