[vlc-devel] [PATCH 02/28] core: add a vlc_rational_t type for unsigned rational numbers
Steve Lhomme
robux4 at videolabs.io
Mon Apr 3 10:21:50 CEST 2017
---
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 | 26 ++++++--------------------
7 files changed, 17 insertions(+), 44 deletions(-)
diff --git a/include/vlc_common.h b/include/vlc_common.h
index 6a75753dbf..a3663accdd 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 9240f5f546..b950b0622b 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 46825bea8c..7c16f0c992 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 ee69ad565e..8ad826f6cc 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 4115cda1b8..b54f188a1b 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 7d99d44abc..5f91783690 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 310f208b4c..95ed200606 100644
--- a/src/video_output/display.c
+++ b/src/video_output/display.c
@@ -337,39 +337,27 @@ typedef struct {
/* */
vout_display_cfg_t cfg;
- struct {
- unsigned num;
- unsigned den;
- } sar_initial;
+ vlc_rational_t sar_initial;
/* */
unsigned width_saved;
unsigned height_saved;
- struct {
- unsigned num;
- unsigned den;
- } crop_saved;
+ vlc_rational_t crop_saved;
/* */
bool ch_display_filled;
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 {
@@ -1234,8 +1222,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);
@@ -1334,8 +1321,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);
--
2.11.1
More information about the vlc-devel
mailing list