diff options
author | Thomas Guillem <thomas@gllm.fr> | 2015-09-21 23:19:17 +0200 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2015-09-21 23:19:20 +0200 |
commit | afe6f5c3a1adbfc3f1b8ab828021accc55b29341 (patch) | |
tree | f1b14483f3e1d7cded2389e82fc6e64960b92ee1 /src/lib/emotion/emotion_modules.c | |
parent | 07fbef64371d4d6eaabe2ffad939b1d4b277bd13 (diff) |
emotion: add libvlc module
Summary:
Everything is implemented except visualization, mouse events and some
EMOTION_EVENT. Video can output RGBA, YUY2, YV12 or I420.
About the video sink: this emotion module use libvlc callbacks:
libvlc_video_set_format_callbacks and libvlc_video_set_callbacks. It may be
temporary. Indeed, an other solution is to add an Evas module inside vlc. But
this vlc module would need to link with emotion in order to use
_emotion_frame_new and _emotion_frame_resize private functions. I didn't
succeed to output a frame without these private functions: see
https://github.com/tguillem/vlc/commit/15daff4d3fdcd3ca7b485c1f8fabb8c1e1c4138c
List of /* FIXME */:
- Visualization not implemented since there is no API (for now) in libvlc.
- Mouse events not implemented since there is no API (for now) in libvlc.
- Some EMOTION_EVENT are not handled.
- SIGSEGV in evas_gl_common_texture_nv12_update with
EVAS_COLORSPACE_YCBCR420NV12601_PL colorspace.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3071
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Diffstat (limited to '')
-rw-r--r-- | src/lib/emotion/emotion_modules.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/emotion/emotion_modules.c b/src/lib/emotion/emotion_modules.c index 6630096ffc..590a61fc42 100644 --- a/src/lib/emotion/emotion_modules.c +++ b/src/lib/emotion/emotion_modules.c | |||
@@ -13,6 +13,10 @@ void xine_module_shutdown(void); | |||
13 | Eina_Bool gstreamer_module_init(void); | 13 | Eina_Bool gstreamer_module_init(void); |
14 | void gstreamer_module_shutdown(void); | 14 | void gstreamer_module_shutdown(void); |
15 | #endif | 15 | #endif |
16 | #ifdef EMOTION_STATIC_BUILD_LIBVLC | ||
17 | Eina_Bool libvlc_module_init(void); | ||
18 | void libvlc_module_shutdown(void); | ||
19 | #endif | ||
16 | #ifdef EMOTION_STATIC_BUILD_GENERIC | 20 | #ifdef EMOTION_STATIC_BUILD_GENERIC |
17 | Eina_Bool generic_module_init(void); | 21 | Eina_Bool generic_module_init(void); |
18 | void generic_module_shutdown(void); | 22 | void generic_module_shutdown(void); |
@@ -79,6 +83,9 @@ _emotion_modules_load(void) | |||
79 | #ifdef EMOTION_BUILD_XINE | 83 | #ifdef EMOTION_BUILD_XINE |
80 | "xine", | 84 | "xine", |
81 | #endif | 85 | #endif |
86 | #ifdef EMOTION_BUILD_LIBVLC | ||
87 | "libvlc", | ||
88 | #endif | ||
82 | NULL | 89 | NULL |
83 | }; | 90 | }; |
84 | const char **itr; | 91 | const char **itr; |
@@ -118,6 +125,9 @@ emotion_modules_init(void) | |||
118 | #if defined(EMOTION_STATIC_BUILD_GSTREAMER) || defined(EMOTION_STATIC_BUILD_GSTREAMER1) | 125 | #if defined(EMOTION_STATIC_BUILD_GSTREAMER) || defined(EMOTION_STATIC_BUILD_GSTREAMER1) |
119 | gstreamer_module_init(); | 126 | gstreamer_module_init(); |
120 | #endif | 127 | #endif |
128 | #ifdef EMOTION_STATIC_BUILD_LIBVLC | ||
129 | libvlc_module_init(); | ||
130 | #endif | ||
121 | #ifdef EMOTION_STATIC_BUILD_GENERIC | 131 | #ifdef EMOTION_STATIC_BUILD_GENERIC |
122 | generic_module_init(); | 132 | generic_module_init(); |
123 | #endif | 133 | #endif |
@@ -136,6 +146,9 @@ emotion_modules_shutdown(void) | |||
136 | #if defined(EMOTION_STATIC_BUILD_GSTREAMER) || defined(EMOTION_STATIC_BUILD_GSTREAMER1) | 146 | #if defined(EMOTION_STATIC_BUILD_GSTREAMER) || defined(EMOTION_STATIC_BUILD_GSTREAMER1) |
137 | gstreamer_module_shutdown(); | 147 | gstreamer_module_shutdown(); |
138 | #endif | 148 | #endif |
149 | #ifdef EMOTION_STATIC_BUILD_LIBVLC | ||
150 | libvlc_module_shutdown(); | ||
151 | #endif | ||
139 | #ifdef EMOTION_STATIC_BUILD_GENERIC | 152 | #ifdef EMOTION_STATIC_BUILD_GENERIC |
140 | generic_module_shutdown(); | 153 | generic_module_shutdown(); |
141 | #endif | 154 | #endif |
@@ -366,6 +379,7 @@ emotion_engine_instance_new(const char *name, Evas_Object *obj, Emotion_Module_O | |||
366 | if (!m) m = _find_mod("xine"); | 379 | if (!m) m = _find_mod("xine"); |
367 | if (!m) m = _find_mod("gstreamer"); | 380 | if (!m) m = _find_mod("gstreamer"); |
368 | if (!m) m = _find_mod("gstreamer1"); | 381 | if (!m) m = _find_mod("gstreamer1"); |
382 | if (!m) m = _find_mod("libvlc"); | ||
369 | if (m) eina_module_load(m); | 383 | if (m) eina_module_load(m); |
370 | } | 384 | } |
371 | 385 | ||