summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-11-05 01:09:42 +0100
committerwm4 <wm4@nowhere>2014-11-05 01:52:20 +0100
commitfce77c05f5585c623afc312635054eb23cc69c0b (patch)
tree903b84aa966b645a5b2bd47dd644452ab6e02bb6
parent91471deecc97382d7998bd9f3b2bbbb5473ecba3 (diff)
downloadmpv-fce77c05f5585c623afc312635054eb23cc69c0b.tar.bz2
mpv-fce77c05f5585c623afc312635054eb23cc69c0b.tar.xz
vo_wayland: don't use endian-specific defines
Instead, use the native-endian alias, and switch the wayland format depending on the target platform's endian. This drops support for swapped-endian formats, but I think that is ok. Not only are the affected formats rather ancient and backwards, but using swapped formats probably does not make any sense for performance either. Untested.
-rw-r--r--video/out/vo_wayland.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/video/out/vo_wayland.c b/video/out/vo_wayland.c
index 87e38e45b3..8c07a7d249 100644
--- a/video/out/vo_wayland.c
+++ b/video/out/vo_wayland.c
@@ -33,6 +33,7 @@
#include "sub/img_convert.h"
#include "common/msg.h"
#include "input/input.h"
+#include "osdep/endian.h"
#include "osdep/timer.h"
#include "wayland_common.h"
@@ -51,24 +52,27 @@ static const format_t const format_table[] = {
{WL_SHM_FORMAT_XRGB8888, IMGFMT_BGR0},
{WL_SHM_FORMAT_RGB332, IMGFMT_RGB8}, // 3b 3g 2r
{WL_SHM_FORMAT_BGR233, IMGFMT_BGR8}, // 3r 3g 3b,
- {WL_SHM_FORMAT_XRGB4444, IMGFMT_RGB444_LE}, // 4b 4g 4r 4a
- {WL_SHM_FORMAT_XBGR4444, IMGFMT_BGR444_LE}, // 4r 4g 4b 4a
- {WL_SHM_FORMAT_RGBX4444, IMGFMT_BGR444_BE}, // 4a 4b 4g 4r
- {WL_SHM_FORMAT_BGRX4444, IMGFMT_RGB444_BE}, // 4a 4r 4g 4b
- {WL_SHM_FORMAT_ARGB4444, IMGFMT_RGB444_LE},
- {WL_SHM_FORMAT_ABGR4444, IMGFMT_BGR444_LE},
- {WL_SHM_FORMAT_RGBA4444, IMGFMT_BGR444_BE},
- {WL_SHM_FORMAT_BGRA4444, IMGFMT_RGB444_BE},
- {WL_SHM_FORMAT_XRGB1555, IMGFMT_RGB555_LE}, // 5b 5g 5r 1a
- {WL_SHM_FORMAT_XBGR1555, IMGFMT_BGR555_LE}, // 5r 5g 5b 1a
- {WL_SHM_FORMAT_RGBX5551, IMGFMT_BGR555_BE}, // 1a 5g 5b 5r
- {WL_SHM_FORMAT_BGRX5551, IMGFMT_RGB555_BE}, // 1a 5r 5g 5b
- {WL_SHM_FORMAT_ARGB1555, IMGFMT_RGB555_LE},
- {WL_SHM_FORMAT_ABGR1555, IMGFMT_BGR555_LE},
- {WL_SHM_FORMAT_RGBA5551, IMGFMT_BGR555_BE},
- {WL_SHM_FORMAT_BGRA5551, IMGFMT_RGB555_BE},
- {WL_SHM_FORMAT_RGB565, IMGFMT_RGB565_LE}, // 5b 6g 5r
- {WL_SHM_FORMAT_BGR565, IMGFMT_BGR565_LE}, // 5r 6g 5b
+#if BYTE_ORDER == LITTLE_ENDIAN
+ {WL_SHM_FORMAT_XRGB4444, IMGFMT_RGB444}, // 4b 4g 4r 4a
+ {WL_SHM_FORMAT_XBGR4444, IMGFMT_BGR444}, // 4r 4g 4b 4a
+ {WL_SHM_FORMAT_ARGB4444, IMGFMT_RGB444},
+ {WL_SHM_FORMAT_ABGR4444, IMGFMT_BGR444},
+ {WL_SHM_FORMAT_XRGB1555, IMGFMT_RGB555}, // 5b 5g 5r 1a
+ {WL_SHM_FORMAT_XBGR1555, IMGFMT_BGR555}, // 5r 5g 5b 1a
+ {WL_SHM_FORMAT_ARGB1555, IMGFMT_RGB555},
+ {WL_SHM_FORMAT_ABGR1555, IMGFMT_BGR555},
+ {WL_SHM_FORMAT_RGB565, IMGFMT_RGB565}, // 5b 6g 5r
+ {WL_SHM_FORMAT_BGR565, IMGFMT_BGR565}, // 5r 6g 5b
+#else
+ {WL_SHM_FORMAT_RGBX4444, IMGFMT_BGR444}, // 4a 4b 4g 4r
+ {WL_SHM_FORMAT_BGRX4444, IMGFMT_RGB444}, // 4a 4r 4g 4b
+ {WL_SHM_FORMAT_RGBA4444, IMGFMT_BGR444},
+ {WL_SHM_FORMAT_BGRA4444, IMGFMT_RGB444},
+ {WL_SHM_FORMAT_RGBX5551, IMGFMT_BGR555}, // 1a 5g 5b 5r
+ {WL_SHM_FORMAT_BGRX5551, IMGFMT_RGB555}, // 1a 5r 5g 5b
+ {WL_SHM_FORMAT_RGBA5551, IMGFMT_BGR555},
+ {WL_SHM_FORMAT_BGRA5551, IMGFMT_RGB555},
+#endif
{WL_SHM_FORMAT_RGB888, IMGFMT_BGR24}, // 8b 8g 8r
{WL_SHM_FORMAT_BGR888, IMGFMT_RGB24}, // 8r 8g 8b
{WL_SHM_FORMAT_XBGR8888, IMGFMT_RGB0},