pixel-formats: Move FOURCC defines to weston-drm-fourcc.h

Which is the correct place for them.

Currently they cause warnings like:
```
/usr/include/libdrm/drm_fourcc.h:389:9: warning: ‘DRM_FORMAT_S010’ redefined
```

with libdrm >= 2.4.125.

Fixes: 3dce9e8c2 (pixel-formats: Add Sx1x software decoder formats)
Signed-off-by: Robert Mader <robert.mader@collabora.com>
This commit is contained in:
Robert Mader 2025-06-23 14:16:57 +02:00
parent 0add10986d
commit c8f71ff503
2 changed files with 54 additions and 29 deletions

View file

@ -28,35 +28,6 @@
#include <stdbool.h>
#include <pixman.h>
/* Included in libdrm 2.4.125 */
#ifndef DRM_FORMAT_S010
#define DRM_FORMAT_S010 fourcc_code ('S', '0', '1', '0')
#endif
#ifndef DRM_FORMAT_S210
#define DRM_FORMAT_S210 fourcc_code ('S', '2', '1', '0')
#endif
#ifndef DRM_FORMAT_S410
#define DRM_FORMAT_S410 fourcc_code ('S', '4', '1', '0')
#endif
#ifndef DRM_FORMAT_S012
#define DRM_FORMAT_S012 fourcc_code ('S', '0', '1', '2')
#endif
#ifndef DRM_FORMAT_S212
#define DRM_FORMAT_S212 fourcc_code ('S', '2', '1', '2')
#endif
#ifndef DRM_FORMAT_S412
#define DRM_FORMAT_S412 fourcc_code ('S', '4', '1', '2')
#endif
#ifndef DRM_FORMAT_S016
#define DRM_FORMAT_S016 fourcc_code ('S', '0', '1', '6')
#endif
#ifndef DRM_FORMAT_S216
#define DRM_FORMAT_S216 fourcc_code ('S', '2', '1', '6')
#endif
#ifndef DRM_FORMAT_S416
#define DRM_FORMAT_S416 fourcc_code ('S', '4', '1', '6')
#endif
/**
* GL format information to create and manage texture and renderbuffer objects.
*/

View file

@ -67,4 +67,58 @@
#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */
#endif
/*
* 3 plane YCbCr LSB aligned
* In order to use these formats in a similar fashion to MSB aligned ones
* implementation can multiply the values by 2^6=64. For that reason the padding
* must only contain zeros.
* index 0 = Y plane, [15:0] z:Y [6:10] little endian
* index 1 = Cr plane, [15:0] z:Cr [6:10] little endian
* index 2 = Cb plane, [15:0] z:Cb [6:10] little endian
*/
#ifndef DRM_FORMAT_S010
#define DRM_FORMAT_S010 fourcc_code('S', '0', '1', '0') /* 2x2 subsampled Cb (1) and Cr (2) planes 10 bits per channel */
#endif
#ifndef DRM_FORMAT_S210
#define DRM_FORMAT_S210 fourcc_code('S', '2', '1', '0') /* 2x1 subsampled Cb (1) and Cr (2) planes 10 bits per channel */
#endif
#ifndef DRM_FORMAT_S410
#define DRM_FORMAT_S410 fourcc_code('S', '4', '1', '0') /* non-subsampled Cb (1) and Cr (2) planes 10 bits per channel */
#endif
/*
* 3 plane YCbCr LSB aligned
* In order to use these formats in a similar fashion to MSB aligned ones
* implementation can multiply the values by 2^4=16. For that reason the padding
* must only contain zeros.
* index 0 = Y plane, [15:0] z:Y [4:12] little endian
* index 1 = Cr plane, [15:0] z:Cr [4:12] little endian
* index 2 = Cb plane, [15:0] z:Cb [4:12] little endian
*/
#ifndef DRM_FORMAT_S012
#define DRM_FORMAT_S012 fourcc_code('S', '0', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes 12 bits per channel */
#endif
#ifndef DRM_FORMAT_S212
#define DRM_FORMAT_S212 fourcc_code('S', '2', '1', '2') /* 2x1 subsampled Cb (1) and Cr (2) planes 12 bits per channel */
#endif
#ifndef DRM_FORMAT_S412
#define DRM_FORMAT_S412 fourcc_code('S', '4', '1', '2') /* non-subsampled Cb (1) and Cr (2) planes 12 bits per channel */
#endif
/*
* 3 plane YCbCr
* index 0 = Y plane, [15:0] Y little endian
* index 1 = Cr plane, [15:0] Cr little endian
* index 2 = Cb plane, [15:0] Cb little endian
*/
#ifndef DRM_FORMAT_S016
#define DRM_FORMAT_S016 fourcc_code('S', '0', '1', '6') /* 2x2 subsampled Cb (1) and Cr (2) planes 16 bits per channel */
#endif
#ifndef DRM_FORMAT_S216
#define DRM_FORMAT_S216 fourcc_code('S', '2', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes 16 bits per channel */
#endif
#ifndef DRM_FORMAT_S416
#define DRM_FORMAT_S416 fourcc_code('S', '4', '1', '6') /* non-subsampled Cb (1) and Cr (2) planes 16 bits per channel */
#endif
#endif