summaryrefslogtreecommitdiffstats
path: root/video/out
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 /video/out
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.
Diffstat (limited to 'video/out')
-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},