Name: espp-service
Summary: ESPP service package which contains client lib. and daemon binary
-Version: 0.3.14
+Version: 0.3.15
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(esplusplayer)
+%if "%{use_tizen_60}" != "1"
BuildRequires: pkgconfig(libtbm)
BuildRequires: pkgconfig(mm-common)
BuildRequires: pkgconfig(mmutil-common)
BuildRequires: pkgconfig(mmutil-imgp)
+%endif
%if "%{use_service_app}" == "1"
BuildRequires: pkgconfig(capi-appfw-service-application)
BuildRequires: pkgconfig(capi-appfw-application)
--prefix=/usr \
--libdir=%{_libdir} \
--datadir=%{_datadir} \
+%if "%{use_tizen_60}" == "1"
+ -Dtizen-60=true \
+%else
+ -Dtizen-60=false \
+%endif
-Dsock-path=/tmp/espp_service.sock \
%if "%{use_service_app}" == "1"
-Dservice-app=true \
#include <esplusplayer_capi.h>
#include <esplusplayer_internal.h>
#include <inttypes.h>
+#ifndef USE_TIZEN_60
#include <tbm_surface.h>
#include <mm_util_image.h>
#include <mm_util_imgp.h>
#include <mm_error.h>
+#endif
#define USECONDS_TO_MSECONDS(usec) ((usec) / G_GINT64_CONSTANT (1000))
#define C(b,m) (((b) >> (m)) & 0xFF)
typedef int (*set_cb_func) (esplusplayer_handle handle, void *callback, void *user_data);
typedef void (*func_handler) (handler_userdata_s *hdata, espp_service_data_from_client_s *data, espp_service_data_from_server_s *result);
-
+#ifndef USE_TIZEN_60
static gpointer __snapshot_work_thread(gpointer data);
+#endif
typedef struct {
set_cb_func set_cb;
GAsyncQueue *queue;
} snapshot;
} tb_data_s;
-
+#ifndef USE_TIZEN_60
typedef struct {
int32_t id;
uint32_t width;
uint32_t size;
unsigned char *data;
} snapshot_data_s;
+#endif
static void __handle_init_event(handler_userdata_s *hdata, espp_service_data_from_client_s *data, espp_service_data_from_server_s *result)
{
result->ret = 0;
}
+#ifndef USE_TIZEN_60
typedef struct {
int cb_id;
bool exit;
tbs->snapshot.queue = NULL;
tbs->snapshot.thread = NULL;
}
+#endif
static void __handle_create(handler_userdata_s *hdata, espp_service_data_from_client_s *data, espp_service_data_from_server_s *result)
{
esplusplayer_destroy(espp);
return;
}
-
+#ifndef USE_TIZEN_60
if (__init_snapshot_thread(tbs) != 0) {
g_hash_table_remove(hdata->svc->fd_table, hdata->key);
esplusplayer_destroy(espp);
return;
}
+#endif
result->ret = 0;
}
LOG_INFO("fd[%d]: esplusplayer_destroy() success", hdata->fd);
ASSERT(g_hash_table_steal(hdata->svc->fd_table, hdata->key));
-
+#ifndef USE_TIZEN_60
__deinit_snapshot_thread(tbs);
+#endif
result->ret = 0;
}
static void __handle_set_decoded_video_frame_buffer_type(handler_userdata_s *hdata, espp_service_data_from_client_s *data, espp_service_data_from_server_s *result)
{
int ret;
- esplusplayer_decoded_video_frame_buffer_type type;
+ int type;
result->ret = -1;
if (ret != 0)
return;
- ret = esplusplayer_set_video_frame_buffer_type((esplusplayer_handle)hdata->espp, type);
+#ifdef USE_TIZEN_60
+ LOG_WARNING("It's not supported because it's built with tizen 6.0");
+#else
+ ret = esplusplayer_set_video_frame_buffer_type((esplusplayer_handle)hdata->espp, (esplusplayer_decoded_video_frame_buffer_type)type);
RET_IF(ret != ESPLUSPLAYER_ERROR_TYPE_NONE, "failed to esplusplayer_set_video_frame_buffer_type(), ESPP[%p], type[%d]",
hdata->espp, type);
-
LOG_INFO("fd[%d], ESPP[%p]: esplusplayer_set_video_frame_buffer_type() success, type[%d]",
hdata->fd, hdata->espp, type);
+#endif
result->ret = 0;
}
+#ifndef USE_TIZEN_60
static int __convert_colorspace(unsigned char *src_data, size_t src_size, int src_w, int src_h, mm_util_color_format_e src_fmt, mm_util_color_format_e dst_fmt, snapshot_data_s *result)
{
int ret;
LOG_DEBUG("exit");
return NULL;
}
+#endif
static void __handle_take_snapshot(handler_userdata_s *hdata, espp_service_data_from_client_s *data, espp_service_data_from_server_s *result)
{
int ret;
int id;
tb_data_s *tbs;
+#ifndef USE_TIZEN_60
queue_data_s *qd;
+#endif
result->ret = -1;
RET_IF(!(tbs = g_hash_table_lookup(hdata->svc->fd_table, hdata->key)), "failed to g_hash_table_lookup(), key[%s]", hdata->key);
+#ifndef USE_TIZEN_60
ASSERT(tbs->snapshot.queue);
-
+#endif
ret = espp_service_msg_parse_params(data->params, data->request, &id);
if (ret != 0)
return;
-
+#ifdef USE_TIZEN_60
+ LOG_WARNING("It's not supported because it's built with tizen 6.0");
+#else
qd = g_new0(queue_data_s, 1);
qd->cb_id = id;
g_async_queue_push(tbs->snapshot.queue, qd);
-
LOG_INFO("qd[%p, cb_id:%d]", qd, id);
+#endif
result->ret = 0;
}
ret = espp_service_msg_parse_params(data->params, data->request, &stream_type, &time_offset_ms);
if (ret != 0)
return;
-
+#ifdef USE_TIZEN_60
+ LOG_WARNING("It's not supported because it's built with tizen 6.0");
+#else
ret = esplusplayer_set_render_time_offset((esplusplayer_handle)hdata->espp, stream_type, time_offset_ms);
RET_IF(ret != ESPLUSPLAYER_ERROR_TYPE_NONE,
"failed to esplusplayer_set_render_time_offset(), ESPP[%p], stream_type[%d], time_offset_ms[%" PRId64 "]",
hdata->espp, stream_type, time_offset_ms);
-
LOG_INFO("fd[%d], ESPP[%p]: esplusplayer_set_render_time_offset() success, stream_type[%d], time_offset_ms[%" PRId64 "]",
hdata->fd, hdata->espp, stream_type, time_offset_ms);
+#endif
result->ret = 0;
}
daemon_deps = common_deps
message('================ daemon options ================')
+if get_option('tizen-60')
+ message('tizen-6.0 option is enabled, set USE_TIZEN_60')
+ conf_data.set('USE_TIZEN_60', true)
+else
+ tbm_dep = dependency('libtbm', required: true)
+ mm_common_dep = dependency('mm-common', required: true)
+ mm_util_dep = dependency('mmutil-common', required: true)
+ mmutil_imgp_dep = dependency('mmutil-imgp', required: true)
+ daemon_deps += [tbm_dep, mm_common_dep, mm_util_dep, mmutil_imgp_dep]
+endif
message('bindir: '+ get_option('_bindir'))
if get_option('service-app')
message('service-app option is enabled, set USE_SERVICE_APP')
thread_dep = dependency('threads', required: true)
espp_dep = dependency('esplusplayer', required: true)
-tbm_dep = dependency('libtbm', required: true)
-mm_common_dep = dependency('mm-common', required: true)
-mm_util_dep = dependency('mmutil-common', required: true)
-mmutil_imgp_dep = dependency('mmutil-imgp', required: true)
-daemon_deps += [thread_dep, espp_dep, tbm_dep, mm_common_dep, mm_util_dep, mmutil_imgp_dep]
+daemon_deps += [thread_dep, espp_dep]
executable('espp-service',
espp_service_sources,