diff options
| author | Tom Hochstein <tom.hochstein@nxp.com> | 2018-08-01 18:13:23 -0500 |
|---|---|---|
| committer | Tom Hochstein <tom.hochstein@nxp.com> | 2018-09-07 17:05:17 -0500 |
| commit | 977228f071cc1ca3a8cd19fdcd08b740cbc4446e (patch) | |
| tree | a18b9cabf73a47b08081a141e2e685cb9d73c5de | |
| parent | d48643e7826674b2fed265464904272b50698f8d (diff) | |
| download | meta-freescale-977228f071cc1ca3a8cd19fdcd08b740cbc4446e.tar.gz | |
wayland-protocols: Add HDR10 metadata and alpha compositing protocols
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
3 files changed, 331 insertions, 1 deletions
diff --git a/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch b/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch new file mode 100644 index 000000000..10dc21985 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols/0001-unstable-Add-alpha-compositing-protocol.patch | |||
| @@ -0,0 +1,195 @@ | |||
| 1 | From b4be5e338be2301f83f4dfdc0cbb740f0a783464 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Haihua Hu <jared.hu@nxp.com> | ||
| 3 | Date: Thu, 14 Jun 2018 13:54:08 +0800 | ||
| 4 | Subject: [PATCH 1/2] unstable: Add alpha-compositing protocol | ||
| 5 | |||
| 6 | It's based on the Chromium Wayland protocol of the same name ([1]) | ||
| 7 | and Alexandros's modified version ([2])with a few changes | ||
| 8 | made to the blending_equation enumeration. | ||
| 9 | |||
| 10 | Add one more blending_equation "src_alpha / src_alpha" | ||
| 11 | |||
| 12 | [1] https://chromium.googlesource.com/chromium/src/+/master/third_party/wayland-protocols/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
| 13 | [2] https://lists.freedesktop.org/archives/wayland-devel/2017-August/034741.html | ||
| 14 | |||
| 15 | Upstream-Status: Inappropriate [i.MX specific] | ||
| 16 | |||
| 17 | Signed-off-by: Haihua Hu <jared.hu@nxp.com> | ||
| 18 | --- | ||
| 19 | Makefile.am | 1 + | ||
| 20 | unstable/alpha-compositing/README | 6 + | ||
| 21 | .../alpha-compositing-unstable-v1.xml | 136 +++++++++++++++++++++ | ||
| 22 | 3 files changed, 143 insertions(+) | ||
| 23 | create mode 100644 unstable/alpha-compositing/README | ||
| 24 | create mode 100644 unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
| 25 | |||
| 26 | diff --git a/Makefile.am b/Makefile.am | ||
| 27 | index 4b9a901..e6c44ec 100644 | ||
| 28 | --- a/Makefile.am | ||
| 29 | +++ b/Makefile.am | ||
| 30 | @@ -17,6 +17,7 @@ unstable_protocols = \ | ||
| 31 | unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml \ | ||
| 32 | unstable/xdg-output/xdg-output-unstable-v1.xml \ | ||
| 33 | unstable/input-timestamps/input-timestamps-unstable-v1.xml \ | ||
| 34 | + unstable/alpha-compositing/alpha-compositing-unstable-v1.xml \ | ||
| 35 | $(NULL) | ||
| 36 | |||
| 37 | stable_protocols = \ | ||
| 38 | diff --git a/unstable/alpha-compositing/README b/unstable/alpha-compositing/README | ||
| 39 | new file mode 100644 | ||
| 40 | index 0000000..d874156 | ||
| 41 | --- /dev/null | ||
| 42 | +++ b/unstable/alpha-compositing/README | ||
| 43 | @@ -0,0 +1,6 @@ | ||
| 44 | +Alpha compositing protocol | ||
| 45 | + | ||
| 46 | +Maintainers: | ||
| 47 | +David Reveman <reveman at chromium.org> | ||
| 48 | +Alexandros Frantzis <alexandros.frantzis at collabora.com> | ||
| 49 | +Jared Hu <Jared Hu at nxp.com> | ||
| 50 | diff --git a/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
| 51 | new file mode 100644 | ||
| 52 | index 0000000..0844b3f | ||
| 53 | --- /dev/null | ||
| 54 | +++ b/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml | ||
| 55 | @@ -0,0 +1,136 @@ | ||
| 56 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 57 | +<protocol name="alpha_compositing_unstable_v1"> | ||
| 58 | + | ||
| 59 | + <copyright> | ||
| 60 | + Copyright 2016 The Chromium Authors. | ||
| 61 | + Copyright 2017 Collabora Ltd | ||
| 62 | + Copyright 2018 NXP | ||
| 63 | + | ||
| 64 | + Permission is hereby granted, free of charge, to any person obtaining a | ||
| 65 | + copy of this software and associated documentation files (the "Software"), | ||
| 66 | + to deal in the Software without restriction, including without limitation | ||
| 67 | + the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
| 68 | + and/or sell copies of the Software, and to permit persons to whom the | ||
| 69 | + Software is furnished to do so, subject to the following conditions: | ||
| 70 | + | ||
| 71 | + The above copyright notice and this permission notice (including the next | ||
| 72 | + paragraph) shall be included in all copies or substantial portions of the | ||
| 73 | + Software. | ||
| 74 | + | ||
| 75 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 76 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 77 | + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
| 78 | + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 79 | + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
| 80 | + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
| 81 | + DEALINGS IN THE SOFTWARE. | ||
| 82 | + </copyright> | ||
| 83 | + | ||
| 84 | + <description summary="Protocol for more advanced compositing and blending"> | ||
| 85 | + This protocol specifies a set of interfaces used to control the alpha | ||
| 86 | + compositing and blending of surface contents. | ||
| 87 | + | ||
| 88 | + Warning! The protocol described in this file is experimental and backward | ||
| 89 | + incompatible changes may be made. Backward compatible changes may be added | ||
| 90 | + together with the corresponding interface version bump. Backward | ||
| 91 | + incompatible changes are done by bumping the version number in the protocol | ||
| 92 | + and interface names and resetting the interface version. Once the protocol | ||
| 93 | + is to be declared stable, the 'z' prefix and the version number in the | ||
| 94 | + protocol and interface names are removed and the interface version number is | ||
| 95 | + reset. | ||
| 96 | + </description> | ||
| 97 | + | ||
| 98 | + <interface name="zwp_alpha_compositing_v1" version="1"> | ||
| 99 | + <description summary="alpha_compositing"> | ||
| 100 | + The global interface exposing compositing and blending capabilities is | ||
| 101 | + used to instantiate an interface extension for a wl_surface object. | ||
| 102 | + This extended interface will then allow the client to specify the | ||
| 103 | + blending equation and alpha value used for compositing the wl_surface. | ||
| 104 | + </description> | ||
| 105 | + | ||
| 106 | + <request name="destroy" type="destructor"> | ||
| 107 | + <description summary="unbind from the blending interface"> | ||
| 108 | + Informs the server that the client will not be using this | ||
| 109 | + protocol object anymore. This does not affect any other objects, | ||
| 110 | + blending objects included. | ||
| 111 | + </description> | ||
| 112 | + </request> | ||
| 113 | + | ||
| 114 | + <enum name="error"> | ||
| 115 | + <entry name="blending_exists" value="0" | ||
| 116 | + summary="the surface already has a blending object associated"/> | ||
| 117 | + </enum> | ||
| 118 | + | ||
| 119 | + <request name="get_blending"> | ||
| 120 | + <description summary="extend surface interface for blending"> | ||
| 121 | + Instantiate an interface extension for the given wl_surface to | ||
| 122 | + provide surface blending. If the given wl_surface already has | ||
| 123 | + a blending object associated, the blending_exists protocol error | ||
| 124 | + is raised. | ||
| 125 | + </description> | ||
| 126 | + | ||
| 127 | + <arg name="id" type="new_id" interface="zwp_blending_v1" | ||
| 128 | + summary="the new blending interface id"/> | ||
| 129 | + <arg name="surface" type="object" interface="wl_surface" | ||
| 130 | + summary="the surface"/> | ||
| 131 | + </request> | ||
| 132 | + </interface> | ||
| 133 | + | ||
| 134 | + <interface name="zwp_blending_v1" version="1"> | ||
| 135 | + <description summary="blending interface to a wl_surface"> | ||
| 136 | + An additional interface to a wl_surface object, which allows the | ||
| 137 | + client to specify the blending equation used for compositing and | ||
| 138 | + an alpha value applied to the whole surface. | ||
| 139 | + | ||
| 140 | + When the blending object is created its blending equation is | ||
| 141 | + 'none' and its alpha is 1.0, i.e., it's inactive by default. Clients | ||
| 142 | + can activate it by setting the blending equation and alpha value. | ||
| 143 | + | ||
| 144 | + If the wl_surface associated with the blending object is destroyed, | ||
| 145 | + the blending object becomes inert. | ||
| 146 | + | ||
| 147 | + If the blending object is destroyed, the blending state is removed | ||
| 148 | + from the wl_surface. The change will be applied on the next | ||
| 149 | + wl_surface.commit. | ||
| 150 | + </description> | ||
| 151 | + | ||
| 152 | + <request name="destroy" type="destructor"> | ||
| 153 | + <description summary="remove blending from the surface"> | ||
| 154 | + The associated wl_surface's blending state is removed. | ||
| 155 | + The change is applied on the next wl_surface.commit. | ||
| 156 | + </description> | ||
| 157 | + </request> | ||
| 158 | + | ||
| 159 | + <enum name="blending_equation"> | ||
| 160 | + <description summary="different blending equations for compositing"> | ||
| 161 | + Blending equations that can be used when compositing a surface. | ||
| 162 | + </description> | ||
| 163 | + <entry name="none" value="0" summary="blending object is inactive"/> | ||
| 164 | + <entry name="opaque" value="1" summary="(one, zero)"/> | ||
| 165 | + <entry name="premultiplied" value="2" summary="(one, one_minus_src_alpha)"/> | ||
| 166 | + <entry name="straight" value="3" summary="(src_alpha, one_minus_src_alpha)" /> | ||
| 167 | + <entry name="fromsource" value="4" summary="(src_alpha, src_alpha)" /> | ||
| 168 | + </enum> | ||
| 169 | + | ||
| 170 | + <request name="set_blending"> | ||
| 171 | + <description summary="set the blending equation"> | ||
| 172 | + Set the blending equation for compositing the wl_surface. | ||
| 173 | + | ||
| 174 | + The blending equation state is double-buffered state, | ||
| 175 | + and will be applied on the next wl_surface.commit. | ||
| 176 | + </description> | ||
| 177 | + <arg name="equation" type="uint" summary="the new blending equation"/> | ||
| 178 | + </request> | ||
| 179 | + | ||
| 180 | + <request name="set_alpha"> | ||
| 181 | + <description summary="set the alpha value"> | ||
| 182 | + Set the alpha value applied to the whole surface for compositing. | ||
| 183 | + | ||
| 184 | + The alpha value state is double-buffered state, | ||
| 185 | + and will be applied on the next wl_surface.commit. | ||
| 186 | + </description> | ||
| 187 | + <arg name="value" type="fixed" summary="the new alpha value"/> | ||
| 188 | + </request> | ||
| 189 | + </interface> | ||
| 190 | + | ||
| 191 | +</protocol> | ||
| 192 | \ No newline at end of file | ||
| 193 | -- | ||
| 194 | 2.7.4 | ||
| 195 | |||
diff --git a/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch b/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch new file mode 100644 index 000000000..654e8b095 --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols/0002-unstable-Add-hdr10-metadata-protocol.patch | |||
| @@ -0,0 +1,134 @@ | |||
| 1 | From 54e847c10a75ec7bd6fbb8fbdd700d085145cdce Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Haihua Hu <jared.hu@nxp.com> | ||
| 3 | Date: Tue, 26 Jun 2018 15:30:18 +0800 | ||
| 4 | Subject: [PATCH 2/2] unstable: Add hdr10-metadata protocol | ||
| 5 | |||
| 6 | this protocol is used to support hdr10 video playback. | ||
| 7 | HDR10 metadata is passed to compositor via this interface | ||
| 8 | |||
| 9 | Upstream-Status: Inappropriate [i.MX specific] | ||
| 10 | |||
| 11 | Signed-off-by: Haihua Hu <jared.hu@nxp.com> | ||
| 12 | --- | ||
| 13 | Makefile.am | 1 + | ||
| 14 | unstable/hdr10-metadata/README | 4 ++ | ||
| 15 | .../hdr10-metadata/hdr10-metadata-unstable-v1.xml | 84 ++++++++++++++++++++++ | ||
| 16 | 3 files changed, 89 insertions(+) | ||
| 17 | create mode 100644 unstable/hdr10-metadata/README | ||
| 18 | create mode 100644 unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml | ||
| 19 | |||
| 20 | diff --git a/Makefile.am b/Makefile.am | ||
| 21 | index e6c44ec..b8206c7 100644 | ||
| 22 | --- a/Makefile.am | ||
| 23 | +++ b/Makefile.am | ||
| 24 | @@ -18,6 +18,7 @@ unstable_protocols = \ | ||
| 25 | unstable/xdg-output/xdg-output-unstable-v1.xml \ | ||
| 26 | unstable/input-timestamps/input-timestamps-unstable-v1.xml \ | ||
| 27 | unstable/alpha-compositing/alpha-compositing-unstable-v1.xml \ | ||
| 28 | + unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml \ | ||
| 29 | $(NULL) | ||
| 30 | |||
| 31 | stable_protocols = \ | ||
| 32 | diff --git a/unstable/hdr10-metadata/README b/unstable/hdr10-metadata/README | ||
| 33 | new file mode 100644 | ||
| 34 | index 0000000..58a82f8 | ||
| 35 | --- /dev/null | ||
| 36 | +++ b/unstable/hdr10-metadata/README | ||
| 37 | @@ -0,0 +1,4 @@ | ||
| 38 | +hdr10 metadata protocol | ||
| 39 | + | ||
| 40 | +Maintainers: | ||
| 41 | +Jared Hu <Jared Hu at nxp.com> | ||
| 42 | diff --git a/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml | ||
| 43 | new file mode 100644 | ||
| 44 | index 0000000..5b1bac4 | ||
| 45 | --- /dev/null | ||
| 46 | +++ b/unstable/hdr10-metadata/hdr10-metadata-unstable-v1.xml | ||
| 47 | @@ -0,0 +1,84 @@ | ||
| 48 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 49 | +<protocol name="hdr10_metadata_unstable_v1"> | ||
| 50 | + | ||
| 51 | + <copyright> | ||
| 52 | + Copyright 2018 NXP | ||
| 53 | + | ||
| 54 | + Permission is hereby granted, free of charge, to any person obtaining a | ||
| 55 | + copy of this software and associated documentation files (the "Software"), | ||
| 56 | + to deal in the Software without restriction, including without limitation | ||
| 57 | + the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
| 58 | + and/or sell copies of the Software, and to permit persons to whom the | ||
| 59 | + Software is furnished to do so, subject to the following conditions: | ||
| 60 | + | ||
| 61 | + The above copyright notice and this permission notice (including the next | ||
| 62 | + paragraph) shall be included in all copies or substantial portions of the | ||
| 63 | + Software. | ||
| 64 | + | ||
| 65 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 66 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 67 | + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
| 68 | + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 69 | + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
| 70 | + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
| 71 | + DEALINGS IN THE SOFTWARE. | ||
| 72 | + </copyright> | ||
| 73 | + | ||
| 74 | + <description summary="Protocol for sending hdr10 metadata to compositor"> | ||
| 75 | + This protocol specifies a set of interfaces used to set and control | ||
| 76 | + hdr10 metadata of video contents. | ||
| 77 | + | ||
| 78 | + Warning! The protocol described in this file is experimental and backward | ||
| 79 | + incompatible changes may be made. Backward compatible changes may be added | ||
| 80 | + together with the corresponding interface version bump. Backward | ||
| 81 | + incompatible changes are done by bumping the version number in the protocol | ||
| 82 | + and interface names and resetting the interface version. Once the protocol | ||
| 83 | + is to be declared stable, the 'z' prefix and the version number in the | ||
| 84 | + protocol and interface names are removed and the interface version number is | ||
| 85 | + reset. | ||
| 86 | + </description> | ||
| 87 | + | ||
| 88 | + <interface name="zwp_hdr10_metadata_v1" version="1"> | ||
| 89 | + <description summary="hdr10_metadata"> | ||
| 90 | + The global interface exposing hdr10 metadata capabilities is | ||
| 91 | + used to instantiate an interface extension for compositor. | ||
| 92 | + This extended interface will then allow the client to pass hdr10 metadata | ||
| 93 | + to compositor and send to display driver if supported. | ||
| 94 | + </description> | ||
| 95 | + | ||
| 96 | + <request name="destroy" type="destructor"> | ||
| 97 | + <description summary="unbind from the hdr10 metadata interface"> | ||
| 98 | + Informs the server that the client will not be using this | ||
| 99 | + protocol object anymore. This does not affect any other objects. | ||
| 100 | + </description> | ||
| 101 | + </request> | ||
| 102 | + | ||
| 103 | + <enum name="error"> | ||
| 104 | + <entry name="sending_meta_error" value="0" | ||
| 105 | + summary="error occurs when compositor handle metadata"/> | ||
| 106 | + </enum> | ||
| 107 | + | ||
| 108 | + <request name="set_metadata"> | ||
| 109 | + <description summary="interface of setting and controling hdr10 metadata"> | ||
| 110 | + client can use this interface pass hdr10 metadata to server. Server need | ||
| 111 | + use the recived metadata to enable hdr mode. | ||
| 112 | + </description> | ||
| 113 | + | ||
| 114 | + <arg name="eotf" type="uint" summary="supported eotf"/> | ||
| 115 | + <arg name="type" type="uint" summary="supported type"/> | ||
| 116 | + <arg name="display_primaries_red" type="uint" | ||
| 117 | + summary="display primaries of red, high 16bits for x, and low 16bits for y"/> | ||
| 118 | + <arg name="display_primaries_green" type="uint" | ||
| 119 | + summary="display primaries of green, high 16bits for x, and low 16bits for y"/> | ||
| 120 | + <arg name="display_primaries_blue" type="uint" | ||
| 121 | + summary="display primaries of blue, high 16bits for x, and low 16bits for y"/> | ||
| 122 | + <arg name="white_point" type="uint" | ||
| 123 | + summary="white point, high 16bits for x, and low 16bits for blue"/> | ||
| 124 | + <arg name="mastering_display_luminance" type="uint" | ||
| 125 | + summary="max and min mastering display luminance, high 16 bits for max, and low 16 bits for min"/> | ||
| 126 | + <arg name="max_cll" type="uint" summary="max content light level"/> | ||
| 127 | + <arg name="max_fall" type="uint" summary="max frame average light level"/> | ||
| 128 | + </request> | ||
| 129 | + </interface> | ||
| 130 | + | ||
| 131 | +</protocol> | ||
| 132 | -- | ||
| 133 | 2.7.4 | ||
| 134 | |||
diff --git a/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb b/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb index 1ef1ee141..ef8fd7302 100644 --- a/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb +++ b/recipes-graphics/wayland/wayland-protocols_1.13.imx.bb | |||
| @@ -10,7 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ | |||
| 10 | file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" | 10 | file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" |
| 11 | 11 | ||
| 12 | SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ | 12 | SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ |
| 13 | " | 13 | file://0001-unstable-Add-alpha-compositing-protocol.patch \ |
| 14 | file://0002-unstable-Add-hdr10-metadata-protocol.patch" | ||
| 14 | SRC_URI[md5sum] = "29312149dafcd4a0e739ba94995a574d" | 15 | SRC_URI[md5sum] = "29312149dafcd4a0e739ba94995a574d" |
| 15 | SRC_URI[sha256sum] = "0758bc8008d5332f431b2a84fea7de64d971ce270ed208206a098ff2ebc68f38" | 16 | SRC_URI[sha256sum] = "0758bc8008d5332f431b2a84fea7de64d971ce270ed208206a098ff2ebc68f38" |
| 16 | 17 | ||
