summaryrefslogtreecommitdiff
path: root/src/generic
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-03-03 20:38:58 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-03-08 12:36:01 +0000
commit075bab83c4288b5de20f6acfc6b0459656ea85e0 (patch)
tree4932d355352761d3cde0d4f3750defb7034bc65d /src/generic
parent0dcbc26a5a974c76d5db5c6c59652f1ae7c4fb9f (diff)
remove vlc, gst-0.10, xine deps, modules as they are broken
they dont work. easier to remove than fix, so... remove :) only gst 1.x supported now.
Diffstat (limited to 'src/generic')
-rw-r--r--src/generic/emotion/meson.build8
-rw-r--r--src/generic/emotion/vlc/emotion_generic_vlc.c789
-rw-r--r--src/generic/emotion/vlc/meson.build8
-rw-r--r--src/generic/evas/meson.build10
4 files changed, 5 insertions, 810 deletions
diff --git a/src/generic/emotion/meson.build b/src/generic/emotion/meson.build
deleted file mode 100644
index 58cd5294aa..0000000000
--- a/src/generic/emotion/meson.build
+++ /dev/null
@@ -1,8 +0,0 @@
1generic_loaders = ['vlc']
2
3foreach loader : generic_loaders
4 if get_option('emotion-generic-loaders-disabler').contains(loader) == false
5 subdir(loader)
6 endif
7endforeach
8
diff --git a/src/generic/emotion/vlc/emotion_generic_vlc.c b/src/generic/emotion/vlc/emotion_generic_vlc.c
deleted file mode 100644
index dcfcbe9e8c..0000000000
--- a/src/generic/emotion/vlc/emotion_generic_vlc.c
+++ /dev/null
@@ -1,789 +0,0 @@
1#ifdef HAVE_CONFIG_H
2# include "config.h"
3#endif
4
5#include <errno.h>
6#include <limits.h>
7#include <stdio.h>
8#include <stdlib.h>
9#include <unistd.h>
10#include <string.h>
11#include <sys/stat.h>
12#include <fcntl.h>
13#include <pthread.h>
14#include <poll.h>
15
16#include <signal.h>
17
18#include <vlc/vlc.h>
19
20#include <Emotion_Generic_Plugin.h>
21#include <Eina.h>
22#include <Ecore.h>
23
24static int _em_vlc_log_dom = -1;
25#define ERR(...) EINA_LOG_DOM_ERR(_em_vlc_log_dom, __VA_ARGS__)
26#define DBG(...) EINA_LOG_DOM_DBG(_em_vlc_log_dom, __VA_ARGS__)
27#define INF(...) EINA_LOG_DOM_INFO(_em_vlc_log_dom, __VA_ARGS__)
28#define WRN(...) EINA_LOG_DOM_WARN(_em_vlc_log_dom, __VA_ARGS__)
29#define CRIT(...) EINA_LOG_DOM_CRIT(_em_vlc_log_dom, __VA_ARGS__)
30
31
32typedef struct _App App;
33struct _App {
34 Emotion_Generic_Video_Shared *vs;
35 Emotion_Generic_Video_Frame vf;
36
37 libvlc_instance_t *libvlc;
38 libvlc_media_t *m;
39 libvlc_media_player_t *mp;
40 libvlc_event_manager_t *event_mgr;
41
42 Ecore_Pipe *fd_read; // read commands from emotion here
43 Ecore_Pipe *fd_write; // write commands for emotion here
44 Eina_Lock cmd_mutex;// lock used to send just one command at a time
45 int last_order; // current command received from emotion
46
47 char *filename;
48 char *subtitle_path;
49 char *shmname;
50 unsigned w, h;
51 int volume;
52 Eina_Bool audio_muted;
53
54 Eina_Bool opening;
55 Eina_Bool closing;
56 Eina_Bool playing;
57 Eina_Bool inited;
58};
59
60static void _player_setup(App *app);
61
62
63/* Utilities to send commands back to emotion */
64#define SEND_CMD_PARAM(app, i) \
65 if ((app)->fd_write) \
66 if (!ecore_pipe_write((app)->fd_write, &(i), sizeof((i)))) \
67 ecore_main_loop_quit();
68
69static void
70_send_cmd(App *app, int cmd)
71{
72 if (!app->fd_write)
73 return;
74
75 eina_lock_take(&app->cmd_mutex); /* LOCK HERE */
76
77 if (!ecore_pipe_write(app->fd_write, &cmd, sizeof(cmd)))
78 ecore_main_loop_quit();
79}
80
81static void
82_send_cmd_str(App *app, const char *str)
83{
84 int len;
85
86 len = str ? strlen(str) + 1 : 0;
87 if (app->fd_write)
88 if (!ecore_pipe_write(app->fd_write, &len, sizeof(len)))
89 ecore_main_loop_quit();
90 if (app->fd_write)
91 if (!ecore_pipe_write(app->fd_write, str, len))
92 ecore_main_loop_quit();
93}
94
95static void
96_send_cmd_finish(App *app)
97{
98 eina_lock_release(&app->cmd_mutex); /* UNLOCK HERE */
99}
100
101/* Commands sent to the emotion pipe */
102static void
103_send_file_closed(App *app)
104{
105 _send_cmd(app, EM_RESULT_FILE_CLOSE);
106 _send_cmd_finish(app);
107}
108
109static void
110_send_time_changed(App *app)
111{
112 float new_time;
113
114 if (app->vs->frame_drop > 1)
115 return;
116
117 new_time = libvlc_media_player_get_time(app->mp);
118 new_time /= 1000;
119 _send_cmd(app, EM_RESULT_POSITION_CHANGED);
120 SEND_CMD_PARAM(app, new_time);
121 _send_cmd_finish(app);
122}
123
124static void
125_send_resize(App *app, int width, int height)
126{
127 _send_cmd(app, EM_RESULT_FRAME_SIZE);
128 SEND_CMD_PARAM(app, width);
129 SEND_CMD_PARAM(app, height);
130 _send_cmd_finish(app);
131}
132
133static void
134_send_track_info(App *app, int cmd, int current, int count, libvlc_track_description_t *desc)
135{
136 _send_cmd(app, cmd);
137 SEND_CMD_PARAM(app, current);
138 SEND_CMD_PARAM(app, count);
139 while (desc)
140 {
141 int tid = desc->i_id;
142 const char *name = desc->psz_name;
143 SEND_CMD_PARAM(app, tid);
144 _send_cmd_str(app, name);
145 desc = desc->p_next;
146 }
147 _send_cmd_finish(app);
148}
149
150static void
151_send_all_track_info(App *app)
152{
153 int track_count, current;
154 libvlc_track_description_t *desc;
155
156 current = libvlc_audio_get_track(app->mp);
157 track_count = libvlc_audio_get_track_count(app->mp);
158 desc = libvlc_audio_get_track_description(app->mp);
159
160 _send_track_info(app, EM_RESULT_AUDIO_TRACK_INFO,
161 current, track_count, desc);
162
163 current = libvlc_video_get_track(app->mp);
164 track_count = libvlc_video_get_track_count(app->mp);
165 desc = libvlc_video_get_track_description(app->mp);
166
167 _send_track_info(app, EM_RESULT_VIDEO_TRACK_INFO,
168 current, track_count, desc);
169
170 current = libvlc_video_get_spu(app->mp);
171 track_count = libvlc_video_get_spu_count(app->mp);
172 desc = libvlc_video_get_spu_description(app->mp);
173
174 _send_track_info(app, EM_RESULT_SPU_TRACK_INFO,
175 current, track_count, desc);
176}
177
178static void
179_send_all_meta_info(App *app)
180{
181 const char *meta;
182
183 _send_cmd(app, EM_RESULT_META_INFO);
184
185 /*
186 * Will send in this order: title, artist, album, year,
187 * genre, comments, disc id and track count.
188 */
189 meta = libvlc_media_get_meta(app->m, libvlc_meta_Title);
190 _send_cmd_str(app, meta);
191 meta = libvlc_media_get_meta(app->m, libvlc_meta_Artist);
192 _send_cmd_str(app, meta);
193 meta = libvlc_media_get_meta(app->m, libvlc_meta_Album);
194 _send_cmd_str(app, meta);
195 meta = libvlc_media_get_meta(app->m, libvlc_meta_Date);
196 _send_cmd_str(app, meta);
197 meta = libvlc_media_get_meta(app->m, libvlc_meta_Genre);
198 _send_cmd_str(app, meta);
199 meta = NULL; // sending empty comments
200 _send_cmd_str(app, meta);
201 meta = NULL; // sending empty disc id
202 _send_cmd_str(app, meta);
203 meta = libvlc_media_get_meta(app->m, libvlc_meta_TrackNumber);
204 _send_cmd_str(app, meta);
205
206 _send_cmd_finish(app);
207}
208
209static void
210_send_length_changed(App *app)
211{
212 float length = libvlc_media_player_get_length(app->mp);
213
214 length /= 1000;
215 _send_cmd(app, EM_RESULT_LENGTH_CHANGED);
216 SEND_CMD_PARAM(app, length);
217 _send_cmd_finish(app);
218}
219
220static void
221_send_seekable_changed(App *app, const struct libvlc_event_t *ev)
222{
223 int seekable = ev->u.media_player_seekable_changed.new_seekable;
224
225 _send_cmd(app, EM_RESULT_SEEKABLE_CHANGED);
226 SEND_CMD_PARAM(app, seekable);
227 _send_cmd_finish(app);
228}
229
230static void
231_send_playback_started(App *app)
232{
233 _send_cmd(app, EM_RESULT_PLAYBACK_STARTED);
234 _send_cmd_finish(app);
235}
236
237static void
238_send_playback_stopped(App *app)
239{
240 _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED);
241 _send_cmd_finish(app);
242}
243
244static void
245_send_init(App *app)
246{
247 _send_cmd(app, EM_RESULT_INIT);
248 _send_cmd_finish(app);
249}
250
251static void
252_send_file_set(App *app)
253{
254 _send_cmd(app, EM_RESULT_FILE_SET);
255 _send_cmd_finish(app);
256}
257
258static void
259_send_file_set_done(App *app, int success)
260{
261 _send_cmd(app, EM_RESULT_FILE_SET_DONE);
262 SEND_CMD_PARAM(app, success);
263 _send_cmd_finish(app);
264}
265
266
267/* VLC events and callbacks */
268static void
269_event_cb(const struct libvlc_event_t *ev, void *data)
270{
271 App *app = data;
272
273 ecore_thread_main_loop_begin();
274 switch (ev->type)
275 {
276 case libvlc_MediaPlayerTimeChanged:
277 // DBG("libvlc_MediaPlayerTimeChanged");
278 _send_time_changed(app);
279 break;
280 case libvlc_MediaPlayerLengthChanged:
281 DBG("libvlc_MediaPlayerLengthChanged");
282 _send_length_changed(app);
283 break;
284 case libvlc_MediaPlayerSeekableChanged:
285 DBG("libvlc_MediaPlayerSeekableChanged");
286 _send_seekable_changed(app, ev);
287 break;
288 case libvlc_MediaPlayerPlaying:
289 DBG("libvlc_MediaPlayerPlaying");
290 libvlc_audio_set_volume(app->mp, app->volume);
291 libvlc_audio_set_mute(app->mp, app->audio_muted);
292 _send_playback_started(app);
293 break;
294 case libvlc_MediaPlayerStopped:
295 DBG("libvlc_MediaPlayerStopped");
296 _send_playback_stopped(app);
297 if (app->closing)
298 {
299 free(app->filename);
300 app->filename = NULL;
301 free(app->subtitle_path);
302 app->subtitle_path = NULL;
303 libvlc_media_release(app->m);
304 app->m = NULL;
305 libvlc_media_player_release(app->mp);
306 app->mp = NULL;
307 emotion_generic_shm_free(app->vs);
308 app->playing = EINA_FALSE;
309 app->closing = EINA_FALSE;
310 _send_file_closed(app);
311 }
312 break;
313 case libvlc_MediaPlayerEndReached:
314 DBG("libvlc_MediaPlayerEndReached");
315 app->playing = EINA_FALSE;
316 /* vlc had released the media_playere here, we create a new one */
317 app->mp = libvlc_media_player_new_from_media(app->m);
318 _player_setup(app);
319 _send_playback_stopped(app);
320 break;
321 }
322 ecore_thread_main_loop_end();
323}
324
325static void
326_tmp_playing_event_cb(const struct libvlc_event_t *ev, void *data)
327{
328 App *app = data;
329
330 if (ev->type != libvlc_MediaPlayerPlaying)
331 return;
332
333 /* pause and stop listening the temporary event */
334 libvlc_event_detach(app->event_mgr,libvlc_MediaPlayerPlaying,
335 _tmp_playing_event_cb, app);
336 libvlc_media_player_set_pause(app->mp, 1);
337
338 /* sending size info */
339 libvlc_video_get_size(app->mp, 0, &app->w, &app->h);
340 _send_resize(app, app->w, app->h);
341
342 /* sending total lenght */
343 _send_length_changed(app);
344
345 /* sending audio track info */
346 _send_all_track_info(app);
347
348 /* sending meta info */
349 _send_all_meta_info(app);
350
351 /* ok, we are done! Now let emotion create the shmem for us */
352 _send_file_set(app);
353}
354
355static void *
356_lock(void *data, void **pixels)
357{
358 App *app = data;
359
360 if (app->playing)
361 *pixels = app->vf.frames[app->vs->frame.player];
362 else
363 *pixels = NULL;
364
365 return NULL; // picture identifier, not needed here
366}
367
368static void
369_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED)
370{
371}
372
373static void
374_display(void *data, void *id EINA_UNUSED)
375{
376 App *app = data;
377
378 if (!app->playing)
379 return;
380
381 eina_semaphore_lock(&app->vs->lock);
382 app->vs->frame.last = app->vs->frame.player;
383 app->vs->frame.player = app->vs->frame.next;
384 app->vs->frame.next = app->vs->frame.last;
385 if (!app->vs->frame_drop++)
386 {
387 _send_cmd(app, EM_RESULT_FRAME_NEW);
388 _send_cmd_finish(app);
389 }
390 eina_semaphore_release(&app->vs->lock, 1);
391}
392
393static void
394_player_setup(App *app)
395{
396
397 libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4);
398 libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app);
399
400 app->event_mgr = libvlc_media_player_event_manager(app->mp);
401 libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying,
402 _event_cb, app);
403 libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged,
404 _event_cb, app);
405 libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged,
406 _event_cb, app);
407 libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged,
408 _event_cb, app);
409 libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached,
410 _event_cb, app);
411 libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped,
412 _event_cb, app);
413}
414
415/* Commands received from the emotion pipe */
416static void
417_file_set(App *app)
418{
419 DBG("Path: %s", app->filename);
420 app->m = libvlc_media_new_path(app->libvlc, app->filename);
421 if (!app->m)
422 {
423 ERR("could not open path: \"%s\"", app->filename);
424 return;
425 }
426
427 app->mp = libvlc_media_player_new_from_media(app->m);
428 if (!app->mp)
429 {
430 ERR("could not create new player from media.");
431 return;
432 }
433
434 app->opening = EINA_TRUE;
435
436 /* Here we start playing and connect a temporary callback to know when
437 * the file is parsed and ready to be played for real.
438 */
439 app->event_mgr = libvlc_media_player_event_manager(app->mp);
440 libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying,
441 _tmp_playing_event_cb, app);
442
443 libvlc_media_player_play(app->mp);
444}
445
446static void
447_file_set_done(App *app)
448{
449 int r;
450
451 DBG("Path: %s", app->filename);
452 app->opening = EINA_FALSE;
453
454 r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf);
455 if (!r)
456 {
457 free(app->filename);
458 libvlc_media_release(app->m);
459 libvlc_media_player_release(app->mp);
460 app->filename = NULL;
461 app->m = NULL;
462 app->mp = NULL;
463 }
464 else
465 {
466 _player_setup(app);
467 }
468
469 _send_file_set_done(app, r);
470}
471
472static void
473_file_close(App *app)
474{
475 DBG("closing file");
476
477 if (!app->mp)
478 return;
479
480 app->closing = EINA_TRUE;
481 libvlc_media_player_stop(app->mp);
482}
483
484static void
485_stop(App *app)
486{
487 DBG("Stop");
488 if (app->mp)
489 libvlc_media_player_set_pause(app->mp, 1);
490}
491
492static void
493_play(App *app, float pos)
494{
495 DBG("Play at %.3f", pos);
496
497 if (!app->mp)
498 return;
499
500 if (app->playing)
501 {
502 libvlc_media_player_set_pause(app->mp, 0);
503 }
504 else
505 {
506 libvlc_time_t new_time = pos * 1000;
507 libvlc_media_player_set_time(app->mp, new_time);
508 libvlc_media_player_play(app->mp);
509
510 if (app->subtitle_path)
511 libvlc_video_set_subtitle_file(app->mp, app->subtitle_path);
512
513 app->playing = EINA_TRUE;
514 }
515}
516
517static void
518_position_set(App *app, float position)
519{
520 libvlc_time_t new_time;
521
522 DBG("Position set %.3f", position);
523 if (!app->mp)
524 return;
525
526 new_time = position * 1000;
527 libvlc_media_player_set_time(app->mp, new_time);
528
529 if (libvlc_media_player_get_state(app->mp) == libvlc_Paused)
530 _send_time_changed(app);
531}
532
533static void
534_speed_set(App *app, float rate)
535{
536 DBG("Speed set %.3f", rate);
537 if (!app->mp)
538 return;
539
540 libvlc_media_player_set_rate(app->mp, rate);
541}
542
543static void
544_mute_set(App *app, int mute)
545{
546 DBG("Mute %d", mute);
547 if (!app->mp)
548 return;
549
550 app->audio_muted = mute;
551 libvlc_audio_set_mute(app->mp, mute);
552}
553
554static void
555_volume_set(App *app, float volume)
556{
557 DBG("Volume set %.2f", volume);
558 if (!app->mp)
559 return;
560
561 app->volume = volume * 100;
562 libvlc_audio_set_volume(app->mp, app->volume);
563}
564
565static void
566_spu_track_set(App *app, int track)
567{
568 DBG("SPU track %d", track);
569 libvlc_video_set_spu(app->mp, track);
570}
571
572static void
573_audio_track_set(App *app, int track)
574{
575 DBG("Audio track %d", track);
576 libvlc_audio_set_track(app->mp, track);
577}
578
579static void
580_video_track_set(App *app, int track)
581{
582 DBG("Video Track %d", track);
583 libvlc_video_set_track(app->mp, track);
584}
585
586static void
587_remote_command(void *data, void *buffer, unsigned int nbyte)
588{
589 App *app = data;
590
591 if (nbyte == 0)
592 {
593 ecore_main_loop_quit();
594 return ;
595 }
596
597 if (app->last_order == EM_CMD_LAST)
598 {
599 if (nbyte != sizeof (int))
600 {
601 ERR("didn't receive a valid command from emotion (%i) !", nbyte);
602 ecore_main_loop_quit();
603 return ;
604 }
605
606 app->last_order = *((int*) buffer);
607
608 if (!app->inited &&
609 app->last_order != EM_CMD_INIT)
610 {
611 ERR("wrong init command!");
612 ecore_main_loop_quit();
613 return ;
614 }
615
616 switch (app->last_order)
617 {
618 case EM_CMD_FILE_SET:
619 if (app->opening)
620 {
621 libvlc_media_release(app->m);
622 libvlc_media_player_release(app->mp);
623 free(app->filename);
624 app->opening = EINA_FALSE;
625 }
626 break;
627 case EM_CMD_FILE_SET_DONE:
628 _file_set_done(app);
629 app->last_order = EM_CMD_LAST;
630 break;
631 case EM_CMD_FILE_CLOSE:
632 _file_close(app);
633 app->last_order = EM_CMD_LAST;
634 break;
635 case EM_CMD_STOP:
636 _stop(app);
637 app->last_order = EM_CMD_LAST;
638 break;
639 }
640 }
641 else
642 {
643 switch (app->last_order)
644 {
645 case EM_CMD_INIT:
646 app->shmname = strdup(buffer);
647 app->inited = EINA_TRUE;
648 _send_init(app);
649 break;
650 case EM_CMD_FILE_SET:
651 app->filename = strdup(buffer);
652 _file_set(app);
653 break;
654 case EM_CMD_SUBTITLE_SET:
655 app->subtitle_path = strdup(buffer);
656 break;
657 case EM_CMD_PLAY:
658 _play(app, *(float*) buffer);
659 break;
660 case EM_CMD_POSITION_SET:
661 _position_set(app, *(float*) buffer);
662 break;
663 case EM_CMD_SPEED_SET:
664 _speed_set(app, *(float*) buffer);
665 break;
666 case EM_CMD_AUDIO_MUTE_SET:
667 _mute_set(app, *(int*) buffer);
668 break;
669 case EM_CMD_VOLUME_SET:
670 _volume_set(app, *(float*) buffer);
671 break;
672 case EM_CMD_SPU_TRACK_SET:
673 _spu_track_set(app, *(int*) buffer);
674 break;
675 case EM_CMD_AUDIO_TRACK_SET:
676 _audio_track_set(app, *(int*) buffer);
677 break;
678 case EM_CMD_VIDEO_TRACK_SET:
679 _video_track_set(app, *(int*) buffer);
680 break;
681 }
682 app->last_order = EM_CMD_LAST;
683 }
684}
685
686static void
687_dummy(void *data EINA_UNUSED, void *buffer EINA_UNUSED, unsigned int nbyte EINA_UNUSED)
688{
689 /* This function is useless for the pipe we use to send message back
690 to emotion, but still needed */
691}
692
693/* Main */
694static Eina_Bool
695exit_func(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *ev EINA_UNUSED)
696{
697 DBG("Quit signal received !");
698 ecore_main_loop_quit();
699 return EINA_TRUE;
700}
701
702int
703main(int argc, const char *argv[])
704{
705 App app;
706 Ecore_Event_Handler *hld;
707 int vlc_argc;
708
709 const char *vlc_argv[] =
710 {
711 "--quiet",
712 "--intf", "dummy", /* no interface */
713 "--vout", "dummy", /* we don't want video (output) */
714 "--no-video-title-show", /* nor the filename displayed */
715 "--no-sub-autodetect-file", /* we don't want automatic subtitles */
716 "--no-stats", /* no stats */
717 "--no-inhibit", /* we don't want interfaces */
718 "--no-disable-screensaver", /* we don't want interfaces */
719// XXX: causes newer vlcs to segv!
720// "--codec", "avcodec",
721// XXX: disable this just in case
722// "--demux", "avformat"
723 };
724 vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv);
725
726 memset(&app, 0, sizeof(app));
727 if (!eina_init())
728 {
729 EINA_LOG_CRIT("Can't initialize generic vlc player, eina failed.");
730 return -1;
731 }
732
733 _em_vlc_log_dom = eina_log_domain_register("emotion_generic_vlc",
734 EINA_COLOR_CYAN);
735 if (_em_vlc_log_dom < 0)
736 {
737 EINA_LOG_CRIT("Unable to register emotion_generic_vlc log domain.");
738 goto error;
739 }
740
741 if (!eina_log_domain_level_check(_em_vlc_log_dom, EINA_LOG_LEVEL_WARN))
742 eina_log_domain_level_set("emotion_generic_vlc", EINA_LOG_LEVEL_WARN);
743
744 if (argc < 3)
745 {
746 ERR("missing parameters.");
747 ERR("syntax:\n\t%s <fd read> <fd write>", argv[0]);
748 goto error;
749 }
750
751 ecore_init();
752
753 eina_lock_new(&app.cmd_mutex);
754
755 app.fd_read = ecore_pipe_full_add(_remote_command, &app,
756 atoi(argv[1]), -1, EINA_FALSE, EINA_FALSE);
757 app.fd_write = ecore_pipe_full_add(_dummy, NULL,
758 -1, atoi(argv[2]), EINA_FALSE, EINA_FALSE);
759
760 hld = ecore_event_handler_add(ECORE_EVENT_SIGNAL_HUP, exit_func, NULL);
761
762 app.libvlc = libvlc_new(vlc_argc, vlc_argv);
763 app.mp = NULL;
764 app.filename = NULL;
765 app.subtitle_path = NULL;
766 app.w = 0;
767 app.h = 0;
768 app.opening = EINA_FALSE;
769 app.playing = EINA_FALSE;
770 app.inited = EINA_FALSE;
771 app.last_order = EM_CMD_LAST;
772
773 ecore_main_loop_begin();
774
775 libvlc_release(app.libvlc);
776 ecore_pipe_del(app.fd_read);
777 ecore_pipe_del(app.fd_write);
778 ecore_event_handler_del(hld);
779 eina_lock_free(&app.cmd_mutex);
780
781 ecore_shutdown();
782 eina_shutdown();
783 return 0;
784
785 error:
786 eina_shutdown();
787 return -1;
788}
789#undef SEND_CMD_PARAM
diff --git a/src/generic/emotion/vlc/meson.build b/src/generic/emotion/vlc/meson.build
deleted file mode 100644
index b21f4a16df..0000000000
--- a/src/generic/emotion/vlc/meson.build
+++ /dev/null
@@ -1,8 +0,0 @@
1vlc = dependency('libvlc')
2
3executable('vlc',
4 'emotion_generic_vlc.c',
5 dependencies: [emotion_generic, eina, ecore, rt, vlc],
6 install: true,
7 install_dir: join_paths(dir_lib, 'emotion', 'generic_players', version_name)
8)
diff --git a/src/generic/evas/meson.build b/src/generic/evas/meson.build
index 2e5b58ae4c..e651b8b16a 100644
--- a/src/generic/evas/meson.build
+++ b/src/generic/evas/meson.build
@@ -1,8 +1,8 @@
1generic_loaders = ['gst', 'pdf', 1generic_loaders = [ 'pdf', 'ps', 'raw', 'rsvg', 'xcf' ]
2'ps', 2
3'raw', 3if get_option('gstreamer') == true
4'rsvg', 4 generic_loaders += [ 'gst' ]
5'xcf'] 5endif
6 6
7generic_src = [] 7generic_src = []
8generic_deps = [] 8generic_deps = []