LIBS=$old_LIBS
CFLAGS=$old_CFLAGS
- PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
+ PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0 tizen-extension-client, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
;;
esac
dnl **** Wayland ****
translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
- PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 wayland-scanner, [
+ PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 wayland-scanner tizen-extension-client, [
HAVE_WAYLAND="yes" ], [ HAVE_WAYLAND="no"
])
])
wlwindow.c \
wlvideoformat.c \
scaler-protocol.c \
- tizen-wlvideoformat.c \
- protocol/tizen-subsurfaceprotocol.c \
- protocol/tizen-bufferpoolprotocol.c
+ tizen-wlvideoformat.c
libgstwaylandsink_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
$(WAYLAND_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) $(DRM_CFLAGS) $(TBM_CFLAGS) $(MMCOMMON_CFLAGS)
wlwindow.h \
wlvideoformat.h \
scaler-client-protocol.h \
- tizen-wlvideoformat.h \
- protocol/tizen-subsurfaceprotocol.h \
- protocol/tizen-bufferpoolprotocol.h
+ tizen-wlvideoformat.h
EXTRA_DIST = scaler.xml
CLEANFILES = scaler-protocol.c scaler-client-protocol.h
+++ /dev/null
-<protocol name="tizen_buffer_pool">
- <interface name="tizen_buffer_pool" version="1">
- <request name="authenticate">
- <arg name="id" type="uint"/>
- </request>
-
- <request name="create_buffer">
- <arg name="id" type="new_id" interface="wl_buffer"/>
- <arg name="name" type="uint"/>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
- <arg name="stride" type="uint"/>
- <arg name="format" type="uint"/>
- </request>
-
- <request name="create_planar_buffer">
- <arg name="id" type="new_id" interface="wl_buffer"/>
- <arg name="width" type="int"/>
- <arg name="height" type="int"/>
- <arg name="format" type="uint"/>
- <arg name="name0" type="uint"/>
- <arg name="offset0" type="int"/>
- <arg name="stride0" type="int"/>
- <arg name="name1" type="uint"/>
- <arg name="offset1" type="int"/>
- <arg name="stride1" type="int"/>
- <arg name="name2" type="uint"/>
- <arg name="offset2" type="int"/>
- <arg name="stride2" type="int"/>
- </request>
-
- <event name="device">
- <arg name="name" type="string"/>
- </event>
-
- <event name="authenticated"/>
-
- <event name="capabilities">
- <arg name="value" type="uint"/>
- </event>
-
- <event name="format">
- <arg name="format" type="uint"/>
- </event>
-
- <enum name="error">
- <entry name="invalid_format" value="0"/>
- <entry name="invalid_name" value="1"/>
- </enum>
-
- <enum name="capability">
- <entry name="default" value="0"/>
- <entry name="video" value="0x1"/>
- <entry name="screenmirror" value="0x2"/>
- </enum>
-
- <enum name="format">
- <entry name="c8" value="0x20203843"/>
- <entry name="rgb332" value="0x38424752"/>
- <entry name="bgr233" value="0x38524742"/>
- <entry name="xrgb4444" value="0x32315258"/>
- <entry name="xbgr4444" value="0x32314258"/>
- <entry name="rgbx4444" value="0x32315852"/>
- <entry name="bgrx4444" value="0x32315842"/>
- <entry name="argb4444" value="0x32315241"/>
- <entry name="abgr4444" value="0x32314241"/>
- <entry name="rgba4444" value="0x32314152"/>
- <entry name="bgra4444" value="0x32314142"/>
- <entry name="xrgb1555" value="0x35315258"/>
- <entry name="xbgr1555" value="0x35314258"/>
- <entry name="rgbx5551" value="0x35315852"/>
- <entry name="bgrx5551" value="0x35315842"/>
- <entry name="argb1555" value="0x35315241"/>
- <entry name="abgr1555" value="0x35314241"/>
- <entry name="rgba5551" value="0x35314152"/>
- <entry name="bgra5551" value="0x35314142"/>
- <entry name="rgb565" value="0x36314752"/>
- <entry name="bgr565" value="0x36314742"/>
- <entry name="rgb888" value="0x34324752"/>
- <entry name="bgr888" value="0x34324742"/>
- <entry name="xrgb8888" value="0x34325258"/>
- <entry name="xbgr8888" value="0x34324258"/>
- <entry name="rgbx8888" value="0x34325852"/>
- <entry name="bgrx8888" value="0x34325842"/>
- <entry name="argb8888" value="0x34325241"/>
- <entry name="abgr8888" value="0x34324241"/>
- <entry name="rgba8888" value="0x34324152"/>
- <entry name="bgra8888" value="0x34324142"/>
- <entry name="xrgb2101010" value="0x30335258"/>
- <entry name="xbgr2101010" value="0x30334258"/>
- <entry name="rgbx1010102" value="0x30335852"/>
- <entry name="bgrx1010102" value="0x30335842"/>
- <entry name="argb2101010" value="0x30335241"/>
- <entry name="abgr2101010" value="0x30334241"/>
- <entry name="rgba1010102" value="0x30334152"/>
- <entry name="bgra1010102" value="0x30334142"/>
- <entry name="yuyv" value="0x56595559"/>
- <entry name="yvyu" value="0x55595659"/>
- <entry name="uyvy" value="0x59565955"/>
- <entry name="vyuy" value="0x59555956"/>
- <entry name="ayuv" value="0x56555941"/>
- <entry name="nv12" value="0x3231564e"/>
- <entry name="nv21" value="0x3132564e"/>
- <entry name="nv16" value="0x3631564e"/>
- <entry name="nv61" value="0x3136564e"/>
- <entry name="yuv410" value="0x39565559"/>
- <entry name="yvu410" value="0x39555659"/>
- <entry name="yuv411" value="0x31315559"/>
- <entry name="yvu411" value="0x31315659"/>
- <entry name="yuv420" value="0x32315559"/>
- <entry name="yvu420" value="0x32315659"/>
- <entry name="yuv422" value="0x36315559"/>
- <entry name="yvu422" value="0x36315659"/>
- <entry name="yuv444" value="0x34325559"/>
- <entry name="yvu444" value="0x34325659"/>
-
- <!-- specail format for samsung exynos(nv12t) -->
- <entry name="st12" value="0x32315453"/>
- <entry name="sn12" value="0x32314e53"/>
- </enum>
-
- </interface>
-</protocol>
+++ /dev/null
-#include <stdlib.h>
-#include <stdint.h>
-#include "wayland-util.h"
-
-extern const struct wl_interface wl_buffer_interface;
-
-static const struct wl_interface *types[] = {
- NULL,
- &wl_buffer_interface,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- &wl_buffer_interface,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
-};
-
-static const struct wl_message tizen_buffer_pool_requests[] = {
- { "authenticate", "u", types + 0 },
- { "create_buffer", "nuiiuu", types + 1 },
- { "create_planar_buffer", "niiuuiiuiiuii", types + 7 },
-};
-
-static const struct wl_message tizen_buffer_pool_events[] = {
- { "device", "s", types + 0 },
- { "authenticated", "", types + 0 },
- { "capabilities", "u", types + 0 },
- { "format", "u", types + 0 },
-};
-
-WL_EXPORT const struct wl_interface tizen_buffer_pool_interface = {
- "tizen_buffer_pool", 1,
- 3, tizen_buffer_pool_requests,
- 4, tizen_buffer_pool_events,
-};
-
+++ /dev/null
-#ifndef TIZEN_BUFFER_POOL_CLIENT_PROTOCOL_H
-#define TIZEN_BUFFER_POOL_CLIENT_PROTOCOL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-#include <stddef.h>
-#include "wayland-client.h"
-
-struct wl_client;
-struct wl_resource;
-
-struct tizen_buffer_pool;
-
-extern const struct wl_interface tizen_buffer_pool_interface;
-
-#ifndef TIZEN_BUFFER_POOL_ERROR_ENUM
-#define TIZEN_BUFFER_POOL_ERROR_ENUM
-enum tizen_buffer_pool_error {
- TIZEN_BUFFER_POOL_ERROR_INVALID_FORMAT = 0,
- TIZEN_BUFFER_POOL_ERROR_INVALID_NAME = 1,
-};
-#endif /* TIZEN_BUFFER_POOL_ERROR_ENUM */
-
-#ifndef TIZEN_BUFFER_POOL_CAPABILITY_ENUM
-#define TIZEN_BUFFER_POOL_CAPABILITY_ENUM
-enum tizen_buffer_pool_capability {
- TIZEN_BUFFER_POOL_CAPABILITY_DEFAULT = 0,
- TIZEN_BUFFER_POOL_CAPABILITY_VIDEO = 0x1,
- TIZEN_BUFFER_POOL_CAPABILITY_SCREENMIRROR = 0x2,
-};
-#endif /* TIZEN_BUFFER_POOL_CAPABILITY_ENUM */
-
-#ifndef TIZEN_BUFFER_POOL_FORMAT_ENUM
-#define TIZEN_BUFFER_POOL_FORMAT_ENUM
-enum tizen_buffer_pool_format {
- TIZEN_BUFFER_POOL_FORMAT_C8 = 0x20203843,
- TIZEN_BUFFER_POOL_FORMAT_RGB332 = 0x38424752,
- TIZEN_BUFFER_POOL_FORMAT_BGR233 = 0x38524742,
- TIZEN_BUFFER_POOL_FORMAT_XRGB4444 = 0x32315258,
- TIZEN_BUFFER_POOL_FORMAT_XBGR4444 = 0x32314258,
- TIZEN_BUFFER_POOL_FORMAT_RGBX4444 = 0x32315852,
- TIZEN_BUFFER_POOL_FORMAT_BGRX4444 = 0x32315842,
- TIZEN_BUFFER_POOL_FORMAT_ARGB4444 = 0x32315241,
- TIZEN_BUFFER_POOL_FORMAT_ABGR4444 = 0x32314241,
- TIZEN_BUFFER_POOL_FORMAT_RGBA4444 = 0x32314152,
- TIZEN_BUFFER_POOL_FORMAT_BGRA4444 = 0x32314142,
- TIZEN_BUFFER_POOL_FORMAT_XRGB1555 = 0x35315258,
- TIZEN_BUFFER_POOL_FORMAT_XBGR1555 = 0x35314258,
- TIZEN_BUFFER_POOL_FORMAT_RGBX5551 = 0x35315852,
- TIZEN_BUFFER_POOL_FORMAT_BGRX5551 = 0x35315842,
- TIZEN_BUFFER_POOL_FORMAT_ARGB1555 = 0x35315241,
- TIZEN_BUFFER_POOL_FORMAT_ABGR1555 = 0x35314241,
- TIZEN_BUFFER_POOL_FORMAT_RGBA5551 = 0x35314152,
- TIZEN_BUFFER_POOL_FORMAT_BGRA5551 = 0x35314142,
- TIZEN_BUFFER_POOL_FORMAT_RGB565 = 0x36314752,
- TIZEN_BUFFER_POOL_FORMAT_BGR565 = 0x36314742,
- TIZEN_BUFFER_POOL_FORMAT_RGB888 = 0x34324752,
- TIZEN_BUFFER_POOL_FORMAT_BGR888 = 0x34324742,
- TIZEN_BUFFER_POOL_FORMAT_XRGB8888 = 0x34325258,
- TIZEN_BUFFER_POOL_FORMAT_XBGR8888 = 0x34324258,
- TIZEN_BUFFER_POOL_FORMAT_RGBX8888 = 0x34325852,
- TIZEN_BUFFER_POOL_FORMAT_BGRX8888 = 0x34325842,
- TIZEN_BUFFER_POOL_FORMAT_ARGB8888 = 0x34325241,
- TIZEN_BUFFER_POOL_FORMAT_ABGR8888 = 0x34324241,
- TIZEN_BUFFER_POOL_FORMAT_RGBA8888 = 0x34324152,
- TIZEN_BUFFER_POOL_FORMAT_BGRA8888 = 0x34324142,
- TIZEN_BUFFER_POOL_FORMAT_XRGB2101010 = 0x30335258,
- TIZEN_BUFFER_POOL_FORMAT_XBGR2101010 = 0x30334258,
- TIZEN_BUFFER_POOL_FORMAT_RGBX1010102 = 0x30335852,
- TIZEN_BUFFER_POOL_FORMAT_BGRX1010102 = 0x30335842,
- TIZEN_BUFFER_POOL_FORMAT_ARGB2101010 = 0x30335241,
- TIZEN_BUFFER_POOL_FORMAT_ABGR2101010 = 0x30334241,
- TIZEN_BUFFER_POOL_FORMAT_RGBA1010102 = 0x30334152,
- TIZEN_BUFFER_POOL_FORMAT_BGRA1010102 = 0x30334142,
- TIZEN_BUFFER_POOL_FORMAT_YUYV = 0x56595559,
- TIZEN_BUFFER_POOL_FORMAT_YVYU = 0x55595659,
- TIZEN_BUFFER_POOL_FORMAT_UYVY = 0x59565955,
- TIZEN_BUFFER_POOL_FORMAT_VYUY = 0x59555956,
- TIZEN_BUFFER_POOL_FORMAT_AYUV = 0x56555941,
- TIZEN_BUFFER_POOL_FORMAT_NV12 = 0x3231564e,
- TIZEN_BUFFER_POOL_FORMAT_NV21 = 0x3132564e,
- TIZEN_BUFFER_POOL_FORMAT_NV16 = 0x3631564e,
- TIZEN_BUFFER_POOL_FORMAT_NV61 = 0x3136564e,
- TIZEN_BUFFER_POOL_FORMAT_YUV410 = 0x39565559,
- TIZEN_BUFFER_POOL_FORMAT_YVU410 = 0x39555659,
- TIZEN_BUFFER_POOL_FORMAT_YUV411 = 0x31315559,
- TIZEN_BUFFER_POOL_FORMAT_YVU411 = 0x31315659,
- TIZEN_BUFFER_POOL_FORMAT_YUV420 = 0x32315559,
- TIZEN_BUFFER_POOL_FORMAT_YVU420 = 0x32315659,
- TIZEN_BUFFER_POOL_FORMAT_YUV422 = 0x36315559,
- TIZEN_BUFFER_POOL_FORMAT_YVU422 = 0x36315659,
- TIZEN_BUFFER_POOL_FORMAT_YUV444 = 0x34325559,
- TIZEN_BUFFER_POOL_FORMAT_YVU444 = 0x34325659,
- TIZEN_BUFFER_POOL_FORMAT_ST12 = 0x32315453,
- TIZEN_BUFFER_POOL_FORMAT_SN12 = 0x32314e53,
-};
-#endif /* TIZEN_BUFFER_POOL_FORMAT_ENUM */
-
-struct tizen_buffer_pool_listener {
- /**
- * device - (none)
- * @name: (none)
- */
- void (*device)(void *data,
- struct tizen_buffer_pool *tizen_buffer_pool,
- const char *name);
- /**
- * authenticated - (none)
- */
- void (*authenticated)(void *data,
- struct tizen_buffer_pool *tizen_buffer_pool);
- /**
- * capabilities - (none)
- * @value: (none)
- */
- void (*capabilities)(void *data,
- struct tizen_buffer_pool *tizen_buffer_pool,
- uint32_t value);
- /**
- * format - (none)
- * @format: (none)
- */
- void (*format)(void *data,
- struct tizen_buffer_pool *tizen_buffer_pool,
- uint32_t format);
-};
-
-static inline int
-tizen_buffer_pool_add_listener(struct tizen_buffer_pool *tizen_buffer_pool,
- const struct tizen_buffer_pool_listener *listener, void *data)
-{
- return wl_proxy_add_listener((struct wl_proxy *) tizen_buffer_pool,
- (void (**)(void)) listener, data);
-}
-
-#define TIZEN_BUFFER_POOL_AUTHENTICATE 0
-#define TIZEN_BUFFER_POOL_CREATE_BUFFER 1
-#define TIZEN_BUFFER_POOL_CREATE_PLANAR_BUFFER 2
-
-static inline void
-tizen_buffer_pool_set_user_data(struct tizen_buffer_pool *tizen_buffer_pool, void *user_data)
-{
- wl_proxy_set_user_data((struct wl_proxy *) tizen_buffer_pool, user_data);
-}
-
-static inline void *
-tizen_buffer_pool_get_user_data(struct tizen_buffer_pool *tizen_buffer_pool)
-{
- return wl_proxy_get_user_data((struct wl_proxy *) tizen_buffer_pool);
-}
-
-static inline void
-tizen_buffer_pool_destroy(struct tizen_buffer_pool *tizen_buffer_pool)
-{
- wl_proxy_destroy((struct wl_proxy *) tizen_buffer_pool);
-}
-
-static inline void
-tizen_buffer_pool_authenticate(struct tizen_buffer_pool *tizen_buffer_pool, uint32_t id)
-{
- wl_proxy_marshal((struct wl_proxy *) tizen_buffer_pool,
- TIZEN_BUFFER_POOL_AUTHENTICATE, id);
-}
-
-static inline struct wl_buffer *
-tizen_buffer_pool_create_buffer(struct tizen_buffer_pool *tizen_buffer_pool, uint32_t name, int32_t width, int32_t height, uint32_t stride, uint32_t format)
-{
- struct wl_proxy *id;
-
- id = wl_proxy_marshal_constructor((struct wl_proxy *) tizen_buffer_pool,
- TIZEN_BUFFER_POOL_CREATE_BUFFER, &wl_buffer_interface, NULL, name, width, height, stride, format);
-
- return (struct wl_buffer *) id;
-}
-
-static inline struct wl_buffer *
-tizen_buffer_pool_create_planar_buffer(struct tizen_buffer_pool *tizen_buffer_pool, int32_t width, int32_t height, uint32_t format, uint32_t name0, int32_t offset0, int32_t stride0, uint32_t name1, int32_t offset1, int32_t stride1, uint32_t name2, int32_t offset2, int32_t stride2)
-{
- struct wl_proxy *id;
-
- id = wl_proxy_marshal_constructor((struct wl_proxy *) tizen_buffer_pool,
- TIZEN_BUFFER_POOL_CREATE_PLANAR_BUFFER, &wl_buffer_interface, NULL, width, height, format, name0, offset0, stride0, name1, offset1, stride1, name2, offset2, stride2);
-
- return (struct wl_buffer *) id;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+++ /dev/null
-#include <stdlib.h>
-#include <stdint.h>
-#include "wayland-util.h"
-
-extern const struct wl_interface wl_subsurface_interface;
-
-static const struct wl_interface *types[] = {
- &wl_subsurface_interface,
-};
-
-static const struct wl_message tizen_subsurface_requests[] = {
- {"place_below_parent", "o", types + 0},
-};
-
-WL_EXPORT const struct wl_interface tizen_subsurface_interface = {
- "tizen_subsurface", 1,
- 1, tizen_subsurface_requests,
- 0, NULL,
-};
+++ /dev/null
-#ifndef TIZEN_SUBSURFACEPROTOCOL_H
-#define TIZEN_SUBSURFACEPROTOCOL_H
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#include <stdint.h>
-#include <stddef.h>
-#include "wayland-client.h"
-
- struct wl_client;
- struct wl_resource;
-
- struct tizen_subsurface;
-
- extern const struct wl_interface tizen_subsurface_interface;
-
-#define TIZEN_SUBSURFACE_PLACE_BELOW_PARENT 0
-
- static inline void
- tizen_subsurface_set_user_data (struct tizen_subsurface *tizen_subsurface,
- void *user_data)
- {
- wl_proxy_set_user_data ((struct wl_proxy *) tizen_subsurface, user_data);
- }
-
- static inline void *tizen_subsurface_get_user_data (struct tizen_subsurface
- *tizen_subsurface)
- {
- return wl_proxy_get_user_data ((struct wl_proxy *) tizen_subsurface);
- }
-
- static inline void
- tizen_subsurface_destroy (struct tizen_subsurface *tizen_subsurface)
- {
- wl_proxy_destroy ((struct wl_proxy *) tizen_subsurface);
- }
-
- static inline void
- tizen_subsurface_place_below_parent (struct tizen_subsurface
- *tizen_subsurface, struct wl_subsurface *subsurface)
- {
- wl_proxy_marshal ((struct wl_proxy *) tizen_subsurface,
- TIZEN_SUBSURFACE_PLACE_BELOW_PARENT, subsurface);
- }
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
#include <gst/video/video.h>
#ifdef GST_WLSINK_ENHANCEMENT
-#include "protocol/tizen-bufferpoolprotocol.h"
+#include <tizen-extension-client-protocol.h>
G_BEGIN_DECLS
enum tizen_buffer_pool_format
wl_display_disconnect (self->display);
}
#ifdef GST_WLSINK_ENHANCEMENT
- if (self->tizen_subsurface)
- tizen_subsurface_destroy (self->tizen_subsurface);
+ if (self->tizen_policy)
+ tizen_policy_destroy (self->tizen_policy);
if (self->tizen_buffer_pool) {
tizen_buffer_pool_destroy (self->tizen_buffer_pool);
self->tizen_buffer_pool = NULL;
} else if (g_strcmp0 (interface, "wl_scaler") == 0) {
self->scaler = wl_registry_bind (registry, id, &wl_scaler_interface, 2);
#ifdef GST_WLSINK_ENHANCEMENT
- } else if (g_strcmp0 (interface, "tizen_subsurface") == 0) {
- self->tizen_subsurface =
- wl_registry_bind (registry, id, &tizen_subsurface_interface, 1);
+ } else if (g_strcmp0 (interface, "tizen_policy") == 0) {
+ self->tizen_policy =
+ wl_registry_bind (registry, id, &tizen_policy_interface, 1);
} else if (g_strcmp0 (interface, "tizen_buffer_pool") == 0) {
self->tizen_buffer_pool =
#include "scaler-client-protocol.h"
#ifdef GST_WLSINK_ENHANCEMENT
#include <tbm_bufmgr.h>
-#include "protocol/tizen-subsurfaceprotocol.h"
-#include "protocol/tizen-bufferpoolprotocol.h"
+#include <tizen-extension-client-protocol.h>
#define NV_BUF_PLANE_NUM 2 /*SN12 or ST12 has 2 plane */
#endif
G_BEGIN_DECLS
#ifdef GST_WLSINK_ENHANCEMENT
/*video output layer */
- struct tizen_subsurface *tizen_subsurface;
+ struct tizen_policy *tizen_policy;
/*tizen buffer pool */
struct tizen_buffer_pool *tizen_buffer_pool;
window->surface, parent);
wl_subsurface_set_desync (window->subsurface);
#ifdef GST_WLSINK_ENHANCEMENT
- if (display->tizen_subsurface)
- tizen_subsurface_place_below_parent (display->tizen_subsurface,
+ if (display->tizen_policy)
+ tizen_policy_place_subsurface_below_parent (display->tizen_policy,
window->subsurface);
wl_surface_commit (parent);
BuildRequires: pkgconfig(mm-common)
%if %{with wayland}
BuildRequires: pkgconfig(wayland-client) >= 1.0.0
+BuildRequires: pkgconfig(tizen-extension-client)
%endif
%if %{with x}
BuildRequires: pkgconfig(x11)