From 03b2949f799bbbff174b9d19c691b68683a05482 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Thu, 1 Sep 2011 19:04:15 +0000 Subject: [PATCH 001/141] Add generic player backend (with vlc player). This generic player backend executes a separate player in another process. It receives the bytes to be drawn on the emotion object through a shared memory, and communicates with the player through a pipe, using the player standard input/output. The player must communicate with emotion using the defined commands specified in the Emotion_Generic_Plugin.h. It doesn't need to link against emotion, just include this file for easier implementation. This implementation was sponsored by Zodiac Aerospace. SVN revision: 63062 --- .../emotion_generic_players/src/Makefile.am | 8 + .../src/vlc/Makefile.am | 19 + .../src/vlc/emotion_generic_vlc.c | 700 ++++++++++++++++++ 3 files changed, 727 insertions(+) create mode 100644 legacy/emotion_generic_players/src/Makefile.am create mode 100644 legacy/emotion_generic_players/src/vlc/Makefile.am create mode 100644 legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c diff --git a/legacy/emotion_generic_players/src/Makefile.am b/legacy/emotion_generic_players/src/Makefile.am new file mode 100644 index 0000000000..ad31accc35 --- /dev/null +++ b/legacy/emotion_generic_players/src/Makefile.am @@ -0,0 +1,8 @@ + +MAINTAINERCLEANFILES = Makefile.in + +SUBDIRS = + +if EMOTION_BUILD_VLC +SUBDIRS += vlc +endif diff --git a/legacy/emotion_generic_players/src/vlc/Makefile.am b/legacy/emotion_generic_players/src/vlc/Makefile.am new file mode 100644 index 0000000000..4089b11e24 --- /dev/null +++ b/legacy/emotion_generic_players/src/vlc/Makefile.am @@ -0,0 +1,19 @@ +MAINTAINERCLEANFILES = Makefile.in + +AM_CPPFLAGS = \ +-I$(top_srcdir) \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/modules \ +-I$(top_srcdir)/src/modules/generic \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ +@VLC_CFLAGS@ + +pkgdir = $(libdir)/emotion/generic_players/$(MODULE_ARCH) + +bin_PROGRAMS = em_generic_vlc + +em_generic_vlc_SOURCES = emotion_generic_vlc.c +em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h +em_generic_vlc_LDADD = @VLC_LIBS@ diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c new file mode 100644 index 0000000000..773bbe9b7a --- /dev/null +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -0,0 +1,700 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +enum _Thread_Events { + EM_THREAD_POSITION_CHANGED, + EM_THREAD_LAST +}; + +struct _App { + Emotion_Generic_Video_Shared *vs; + Emotion_Generic_Video_Frame vf; + libvlc_instance_t *libvlc; + libvlc_media_t *m; + libvlc_media_player_t *mp; + libvlc_event_manager_t *event_mgr; + libvlc_event_manager_t *mevent_mgr; + char *filename; + char *shmname; + int w, h; + int fd_read; + int fd_write; + int size_sent; + int opening; + int closing; + int playing; +}; + +static pthread_mutex_t _mutex_fd = PTHREAD_MUTEX_INITIALIZER; + +int +_em_read_safe(int fd, void *buf, ssize_t size) +{ + ssize_t todo; + char *p; + + todo = size; + p = buf; + + while (todo > 0) + { + ssize_t r; + + r = read(fd, p, todo); + if (r > 0) + { + todo -= r; + p += r; + } + else if (r == 0) + return 0; + else + { + if (errno == EINTR || errno == EAGAIN) + continue; + else + { + fprintf(stderr, "could not read from fd %d: %s", + fd, strerror(errno)); + return 0; + } + } + } + + return 1; +} + +int +_em_write_safe(int fd, const void *buf, ssize_t size) +{ + ssize_t todo; + const char *p; + + todo = size; + p = buf; + + while (todo > 0) + { + ssize_t r; + + r = write(fd, p, todo); + if (r > 0) + { + todo -= r; + p += r; + } + else if (r == 0) + return 0; + else + { + if (errno == EINTR || errno == EAGAIN) + continue; + else + { + fprintf(stderr, "could not write to fd %d: %s", + fd, strerror(errno)); + return 0; + } + } + } + + return 1; +} + +static int +_em_str_read(char **str) +{ + int size; + int r; + char buf[PATH_MAX]; + + r = _em_read_safe(STDIN_FILENO, &size, sizeof(size)); + if (!r) + { + *str = NULL; + return 0; + } + + if (!size) + { + *str = NULL; + return 1; + } + + r = _em_read_safe(STDIN_FILENO, buf, size); + if (!r) + { + *str = NULL; + return 0; + } + + *str = strdup(buf); + return 1; +} + +static int +_em_cmd_read(void) +{ + int cmd; + _em_read_safe(STDIN_FILENO, &cmd, sizeof(cmd)); + + return cmd; +} + +static void +_send_cmd_start(int cmd) +{ + pthread_mutex_lock(&_mutex_fd); + _em_write_safe(STDOUT_FILENO, &cmd, sizeof(cmd)); +} + +static void +_send_cmd_finish(void) +{ + static const char c = '\n'; + _em_write_safe(STDOUT_FILENO, &c, sizeof(c)); + pthread_mutex_unlock(&_mutex_fd); +} + +static void +_send_cmd(int cmd) +{ + _send_cmd_start(cmd); + _send_cmd_finish(); +} + +static void +_send_cmd_str(const char *str) +{ + int len; + len = strlen(str) + 1; + _em_write_safe(STDOUT_FILENO, &len, sizeof(len)); + _em_write_safe(STDOUT_FILENO, str, len); +} + +#define SEND_CMD_PARAM(i) \ + _em_write_safe(STDOUT_FILENO, &(i), sizeof((i))); + +static void +_send_resize(int width, int height) +{ + _send_cmd_start(EM_RESULT_FRAME_SIZE); + SEND_CMD_PARAM(width); + SEND_CMD_PARAM(height); + _send_cmd_finish(); +} + +static void +_send_length_changed(const struct libvlc_event_t *ev) +{ + float length = ev->u.media_player_length_changed.new_length; + length /= 1000; + + fprintf(stderr, "length changed: %0.3f\n", length); + _send_cmd_start(EM_RESULT_LENGTH_CHANGED); + SEND_CMD_PARAM(length); + _send_cmd_finish(); +} + +static void +_send_time_changed(const struct libvlc_event_t *ev) +{ + float new_time = ev->u.media_player_time_changed.new_time; + new_time /= 1000; + _send_cmd_start(EM_RESULT_POSITION_CHANGED); + SEND_CMD_PARAM(new_time); + _send_cmd_finish(); +} + +static void +_send_seekable_changed(const struct libvlc_event_t *ev) +{ + int seekable = ev->u.media_player_seekable_changed.new_seekable; + _send_cmd_start(EM_RESULT_SEEKABLE_CHANGED); + SEND_CMD_PARAM(seekable); + _send_cmd_finish(); +} + +static void * +_lock(void *data, void **pixels) +{ + struct _App *app = data; + + if (app->playing) + *pixels = app->vf.frames[app->vs->frame.player]; + else + *pixels = NULL; + + return NULL; // picture identifier, not needed here +} + +static void +_unlock(void *data, void *id, void *const *pixels) +{ + struct _App *app = data; + + if (!app->playing) + return; + + sem_wait(&app->vs->lock); + app->vs->frame.last = app->vs->frame.player; + app->vs->frame.player = app->vs->frame.next; + app->vs->frame.next = app->vs->frame.last; + + sem_post(&app->vs->lock); +} + +static void +_display(void *data, void *id) +{ + struct _App *app = data; + if (!app->playing) + return; + + _send_cmd(EM_RESULT_FRAME_NEW); +} + +static void * +_tmp_lock(void *data, void **pixels) +{ + *pixels = NULL; + return NULL; +} + +static void +_tmp_unlock(void *data, void *id, void *const *pixels) +{ +} + +static void +_tmp_display(void *data, void *id) +{ +} + +static void +_play(struct _App *app) +{ + float pos; + + if (!app->mp) + return; + + _em_read_safe(STDIN_FILENO, &pos, sizeof(pos)); + + if (app->playing) + { + libvlc_media_player_set_pause(app->mp, 0); + } + else + { + libvlc_time_t new_time = pos * 1000; + libvlc_media_player_play(app->mp); + libvlc_media_player_set_time(app->mp, new_time); + app->playing = 1; + } +} + +static void +_stop(struct _App *app) +{ + if (app->mp) + libvlc_media_player_set_pause(app->mp, 1); +} + +static void +_send_file_closed(struct _App *app) +{ + app->closing = 0; + emotion_generic_shm_free(app->vs); + _send_cmd(EM_RESULT_FILE_CLOSE); +} + +static void +_send_file_set(struct _App *app) +{ + if (app->opening) + _send_cmd(EM_RESULT_FILE_SET); + + if (app->closing) + _send_file_closed(app); +} + +static void +_event_cb(const struct libvlc_event_t *ev, void *data) +{ + struct _App *app = data; + int thread_event; + + switch (ev->type) { + case libvlc_MediaPlayerTimeChanged: + _send_time_changed(ev); + break; + case libvlc_MediaPlayerPositionChanged: + thread_event = EM_THREAD_POSITION_CHANGED; + write(app->fd_write, &thread_event, sizeof(thread_event)); + break; + case libvlc_MediaPlayerLengthChanged: + _send_length_changed(ev); + break; + case libvlc_MediaPlayerSeekableChanged: + _send_seekable_changed(ev); + break; + case libvlc_MediaPlayerPlaying: + _send_resize(app->w, app->h); + break; + case libvlc_MediaPlayerStopped: + _send_file_set(app); + break; + case libvlc_MediaPlayerEndReached: + _send_cmd(EM_RESULT_PLAYBACK_STOPPED); + break; + } +} + +static void +_file_set(struct _App *app) +{ + _em_str_read(&app->filename); + + app->m = libvlc_media_new_path(app->libvlc, app->filename); + if (!app->m) + { + fprintf(stderr, "could not open path: \"%s\"\n", app->filename); + return; + } + app->mp = libvlc_media_player_new_from_media(app->m); + + if (!app->mp) + { + fprintf(stderr, "could not create new player from media.\n"); + return; + } + + app->opening = 1; + libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); + libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, NULL); + app->event_mgr = libvlc_media_player_event_manager(app->mp); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, + _event_cb, app); + + app->mevent_mgr = libvlc_media_event_manager(app->m); + + libvlc_audio_set_mute(app->mp, 1); + libvlc_media_player_play(app->mp); +} + +static void +_position_set(struct _App *app) +{ + if (!app->mp) + return; + + float position; + _em_read_safe(STDIN_FILENO, &position, sizeof(position)); + + libvlc_time_t new_time = position * 1000; + libvlc_media_player_set_time(app->mp, new_time); +} + +static void +_speed_set(struct _App *app) +{ + float rate; + + if (!app->mp) + return; + + _em_read_safe(STDIN_FILENO, &rate, sizeof(rate)); + + libvlc_media_player_set_rate(app->mp, rate); +} + +static void +_mute_set(struct _App *app) +{ + int mute; + + if (!app->mp) + return; + + _em_read_safe(STDIN_FILENO, &mute, sizeof(mute)); + + libvlc_audio_set_mute(app->mp, mute); +} + +static void +_volume_set(struct _App *app) +{ + float volume; + int vol; + + if (!app->mp) + return; + + _em_read_safe(STDIN_FILENO, &volume, sizeof(volume)); + vol = volume * 100; + + libvlc_audio_set_volume(app->mp, vol); +} + +static void +_audio_track_set(struct _App *app) +{ + int track; + + _em_read_safe(STDIN_FILENO, &track, sizeof(track)); + + libvlc_audio_set_track(app->mp, track); +} + +static void +_file_set_done(struct _App *app) +{ + emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); + app->w = app->vs->width; + app->h = app->vs->height; + libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); + libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); + app->opening = 0; + + + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, + _event_cb, app); + + libvlc_audio_set_mute(app->mp, 0); + _send_cmd(EM_RESULT_FILE_SET_DONE); +} + +static void +_file_close(struct _App *app) +{ + app->playing = 0; + if (libvlc_media_player_get_state(app->mp) != libvlc_Playing) + { + _send_file_closed(app); + return; + } + + app->closing = 1; + libvlc_media_player_stop(app->mp); + if (app->filename) + free(app->filename); + if (app->mp) + { + libvlc_media_release(app->m); + libvlc_media_player_release(app->mp); + } +} + +static void +_process_emotion_commands(struct _App *app) +{ + int cmd = _em_cmd_read(); + switch (cmd) { + case EM_CMD_FILE_SET: + _file_set(app); + break; + case EM_CMD_FILE_SET_DONE: + _file_set_done(app); + break; + case EM_CMD_FILE_CLOSE: + _file_close(app); + break; + case EM_CMD_PLAY: + _play(app); + break; + case EM_CMD_STOP: + _stop(app); + break; + case EM_CMD_POSITION_SET: + _position_set(app); + break; + case EM_CMD_SPEED_SET: + _speed_set(app); + break; + case EM_CMD_AUDIO_MUTE_SET: + _mute_set(app); + break; + case EM_CMD_VOLUME_SET: + _volume_set(app); + break; + case EM_CMD_AUDIO_TRACK_SET: + _audio_track_set(app); + break; + }; +} + +static void +_send_track_info(libvlc_media_player_t *mp) +{ + int track_count, current; + libvlc_track_description_t *desc; + + current = libvlc_audio_get_track(mp); + track_count = libvlc_audio_get_track_count(mp); + desc = libvlc_audio_get_track_description(mp); + + _send_cmd_start(EM_RESULT_AUDIO_TRACK_INFO); + SEND_CMD_PARAM(current); + SEND_CMD_PARAM(track_count); + while (desc) + { + int tid = desc->i_id; + const char *name = desc->psz_name; + SEND_CMD_PARAM(tid); + _send_cmd_str(name); + desc = desc->p_next; + } + _send_cmd_finish(); +} + +static void +_position_changed(struct _App *app) +{ + if (!app->opening) + return; + + /* sending size info only once */ + int r, w, h; + r = libvlc_video_get_size(app->mp, 0, &w, &h); + if (r < 0) + return; + _send_resize(w, h); + + /* sending audio track info */ + // _send_track_info(app->mp); + + libvlc_media_player_stop(app->mp); +} + +static void +_process_thread_events(struct _App *app) +{ + int event; + size_t size; + + size = read(app->fd_read, &event, sizeof(event)); + if (size != sizeof(event)) + { + fprintf(stderr, "player: problem when reading thread event. size = %zd\n", size); + return; + } + + switch (event) { + case EM_THREAD_POSITION_CHANGED: + _position_changed(app); + break; + } +} + +int +main(int argc, const char *argv[]) +{ + struct _App app; + Emotion_Generic_Video_Shared *vs; + struct pollfd fds[2]; // watching on 2 file descriptors + int tpipe[2]; // pipe for comunicating events from threads + char shmname[256]; + char cwidth[64], cheight[64], cpitch[64], chroma[64]; + char buf[64]; + const char *vlc_argv[] = + { + "--quiet", + "--vout", + "vmem", + "--vmem-width", + cwidth, + "--vmem-height", + cheight, + "--vmem-pitch", + cpitch, + "--vmem-chroma", + chroma + }; + + int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); + snprintf(cwidth, sizeof(cwidth), "%d", DEFAULTWIDTH); + snprintf(cheight, sizeof(cheight), "%d", DEFAULTHEIGHT); + snprintf(cpitch, sizeof(cpitch), "%d", DEFAULTWIDTH * 4); + snprintf(chroma, sizeof(chroma), "RV32"); + + app.libvlc = libvlc_new(vlc_argc, vlc_argv); + app.mp = NULL; + app.filename = NULL; + app.w = 0; + app.h = 0; + app.size_sent = 0; + app.opening = 0; + app.playing = 0; + app.closing = 0; + + if (_em_cmd_read() != EM_CMD_INIT) + { + fprintf(stderr, "player: wrong init command!\n"); + return -1; + } + + int size; + _em_read_safe(STDIN_FILENO, &size, sizeof(size)); + _em_read_safe(STDIN_FILENO, buf, size); + app.shmname = strdup(buf); + + _send_cmd(EM_RESULT_INIT); + + pipe(tpipe); + app.fd_read = tpipe[0]; + app.fd_write = tpipe[1]; + fds[0].fd = STDIN_FILENO; + fds[0].events = POLLIN; + fds[1].fd = app.fd_read; + fds[1].events = POLLIN; + + while (1) + { + int r; + + r = poll(fds, 2, 30); + if (r == 0) + continue; + else if (r < 0) + { + fprintf(stderr, "an error ocurred on poll().\n"); + break; + } + + if (fds[0].revents & POLLIN) + _process_emotion_commands(&app); + if (fds[1].revents & POLLIN) + _process_thread_events(&app); + } + + libvlc_release(app.libvlc); + + + return 0; +} +#undef SEND_CMD_PARAM From 9bd7579d920d4bfdc118e65ac341f3b5e714344b Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Thu, 1 Sep 2011 23:45:18 +0000 Subject: [PATCH 002/141] emotion: use eina_prefix to determine player location. Move players from $bindir to $libdir/emotion/utils and find them with eina_prefix. I was willing to play with this prefix thing, quite nice ;-) SVN revision: 63077 --- legacy/emotion_generic_players/src/vlc/Makefile.am | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/Makefile.am b/legacy/emotion_generic_players/src/vlc/Makefile.am index 4089b11e24..c32906e59f 100644 --- a/legacy/emotion_generic_players/src/vlc/Makefile.am +++ b/legacy/emotion_generic_players/src/vlc/Makefile.am @@ -10,9 +10,8 @@ AM_CPPFLAGS = \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ @VLC_CFLAGS@ -pkgdir = $(libdir)/emotion/generic_players/$(MODULE_ARCH) - -bin_PROGRAMS = em_generic_vlc +internal_bindir = $(libdir)/emotion/utils +internal_bin_PROGRAMS = em_generic_vlc em_generic_vlc_SOURCES = emotion_generic_vlc.c em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h From 45b02a26cc448fe0da895ef12799ce718684fecb Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Fri, 2 Sep 2011 01:34:07 +0000 Subject: [PATCH 003/141] emotion/generic/vlc: die when parent dies. nasty fix for a nasty emotion behavior :-/ SVN revision: 63080 --- .../src/vlc/emotion_generic_vlc.c | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 773bbe9b7a..a9b8fd72ae 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -14,6 +14,9 @@ #include #include +#include +#include + #include #include @@ -616,7 +619,7 @@ main(int argc, const char *argv[]) { struct _App app; Emotion_Generic_Video_Shared *vs; - struct pollfd fds[2]; // watching on 2 file descriptors + struct pollfd fds[3]; int tpipe[2]; // pipe for comunicating events from threads char shmname[256]; char cwidth[64], cheight[64], cpitch[64], chroma[64]; @@ -642,6 +645,17 @@ main(int argc, const char *argv[]) snprintf(cpitch, sizeof(cpitch), "%d", DEFAULTWIDTH * 4); snprintf(chroma, sizeof(chroma), "RV32"); + /* + * Naughty xattr in emotion uses ecore_thread to run its thing, this + * may leave emotion's reference count high and it won't kill us... + * letting us play the video in the background. not good. + * + * prctl(PR_SET_PDEATHSIG) is a linux only thing. Need to find ways + * to do it on other platforms. Until then leave it breaking on + * such platforms so people port it instead of ignoring. + */ + prctl(PR_SET_PDEATHSIG, SIGHUP); + app.libvlc = libvlc_new(vlc_argc, vlc_argv); app.mp = NULL; app.filename = NULL; @@ -672,24 +686,43 @@ main(int argc, const char *argv[]) fds[0].events = POLLIN; fds[1].fd = app.fd_read; fds[1].events = POLLIN; + fds[2].fd = STDERR_FILENO; + fds[2].events = 0; while (1) { int r; - r = poll(fds, 2, 30); + r = poll(fds, 3, -1); if (r == 0) continue; else if (r < 0) { - fprintf(stderr, "an error ocurred on poll().\n"); + fprintf(stderr, + "emotion_generic_vlc: an error ocurred on poll(): %s\n", + strerror(errno)); break; } + if (fds[0].revents & (POLLERR | POLLHUP | POLLNVAL)) + { + fputs("emotion_generic_vlc: error communicating with stdin\n", + stderr); + break; + } + if (fds[1].revents & (POLLERR | POLLHUP | POLLNVAL)) + { + fputs("emotion_generic_vlc: error communicating with thread\n", + stderr); + break; + } + if (fds[0].revents & POLLIN) _process_emotion_commands(&app); if (fds[1].revents & POLLIN) _process_thread_events(&app); + if (fds[2].revents & (POLLERR | POLLHUP | POLLNVAL)) + break; } libvlc_release(app.libvlc); From 7b0656f7118af1b17ce6585b7cd89af492fa2dda Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Sat, 3 Sep 2011 20:47:28 +0000 Subject: [PATCH 004/141] Emotion: Really disable vlc SVN revision: 63132 --- legacy/emotion_generic_players/src/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/Makefile.am b/legacy/emotion_generic_players/src/Makefile.am index ad31accc35..7d1f5d8ed2 100644 --- a/legacy/emotion_generic_players/src/Makefile.am +++ b/legacy/emotion_generic_players/src/Makefile.am @@ -3,6 +3,6 @@ MAINTAINERCLEANFILES = Makefile.in SUBDIRS = -if EMOTION_BUILD_VLC -SUBDIRS += vlc -endif +#if EMOTION_BUILD_VLC +#SUBDIRS += vlc +#endif From 121b2c5ca866e84ae3533b5b8732e8213dadb854 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Sun, 4 Sep 2011 00:07:41 +0000 Subject: [PATCH 005/141] remove old vlc, fix build bugs and introduce m4 for generic players. Previous commit to disable VLC messed everything, so this one fixes it doing: - remove old src/modules/vlc and related. - add EMOTION_CHECK_GENERIC_PLAYER() m4 macro - change previous EMOTION_BUILD_VLC to EMOTION_BUILD_GENERIC_VLC SVN revision: 63140 --- legacy/emotion_generic_players/src/Makefile.am | 6 +++--- legacy/emotion_generic_players/src/vlc/Makefile.am | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/src/Makefile.am b/legacy/emotion_generic_players/src/Makefile.am index 7d1f5d8ed2..bbdd8c34b6 100644 --- a/legacy/emotion_generic_players/src/Makefile.am +++ b/legacy/emotion_generic_players/src/Makefile.am @@ -3,6 +3,6 @@ MAINTAINERCLEANFILES = Makefile.in SUBDIRS = -#if EMOTION_BUILD_VLC -#SUBDIRS += vlc -#endif +if EMOTION_BUILD_GENERIC_VLC +SUBDIRS += vlc +endif diff --git a/legacy/emotion_generic_players/src/vlc/Makefile.am b/legacy/emotion_generic_players/src/vlc/Makefile.am index c32906e59f..6d6a9f2b85 100644 --- a/legacy/emotion_generic_players/src/vlc/Makefile.am +++ b/legacy/emotion_generic_players/src/vlc/Makefile.am @@ -8,11 +8,11 @@ AM_CPPFLAGS = \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@VLC_CFLAGS@ +@GENERIC_VLC_CFLAGS@ internal_bindir = $(libdir)/emotion/utils internal_bin_PROGRAMS = em_generic_vlc em_generic_vlc_SOURCES = emotion_generic_vlc.c em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h -em_generic_vlc_LDADD = @VLC_LIBS@ +em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ From 1e6ae18dee541d37d4639b6547830665b1976e66 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 5 Sep 2011 13:11:53 +0000 Subject: [PATCH 006/141] emotion/generic: Add return value to EM_RESULT_FILE_SET_DONE. It now checks if was possible to get the shared memory, and returns true or false. This will command will also be used later to return false for file opening no matter what was the problem, and maybe the int parameter will indicate the type of error. SVN revision: 63197 --- .../src/vlc/emotion_generic_vlc.c | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index a9b8fd72ae..0df7c00f9d 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -471,12 +471,27 @@ _audio_track_set(struct _App *app) static void _file_set_done(struct _App *app) { - emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); + int r; + + app->opening = 0; + + r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); + if (!r) + { + free(app->filename); + libvlc_media_release(app->m); + libvlc_media_player_release(app->mp); + app->filename = NULL; + app->m = NULL; + app->mp = NULL; + _send_cmd_start(EM_RESULT_FILE_SET_DONE); + SEND_CMD_PARAM(r); + _send_cmd_finish(); + } app->w = app->vs->width; app->h = app->vs->height; libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); - app->opening = 0; libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, @@ -489,7 +504,10 @@ _file_set_done(struct _App *app) _event_cb, app); libvlc_audio_set_mute(app->mp, 0); - _send_cmd(EM_RESULT_FILE_SET_DONE); + + _send_cmd_start(EM_RESULT_FILE_SET_DONE); + SEND_CMD_PARAM(r); + _send_cmd_finish(); } static void From 1c86f28c6ffc6c991689b9c8e100ec8226d90584 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 5 Sep 2011 13:12:17 +0000 Subject: [PATCH 007/141] emotion/generic - Use pipes instead of stdin/stdout for communication. Now the player will have the stdin and stdout available for anything else, and there's no need to make line-buffering with ecore_exe anymore. SVN revision: 63198 --- .../src/vlc/emotion_generic_vlc.c | 164 ++++++++++-------- 1 file changed, 88 insertions(+), 76 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 0df7c00f9d..425aeb4d60 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -36,8 +36,10 @@ struct _App { char *filename; char *shmname; int w, h; - int fd_read; - int fd_write; + int fd_read; // read commands from theads here + int fd_write; // write commands from threads here + int em_read; // read commands from emotion here + int em_write; // write commands to emotion here int size_sent; int opening; int closing; @@ -121,13 +123,13 @@ _em_write_safe(int fd, const void *buf, ssize_t size) } static int -_em_str_read(char **str) +_em_str_read(int fd, char **str) { int size; int r; char buf[PATH_MAX]; - r = _em_read_safe(STDIN_FILENO, &size, sizeof(size)); + r = _em_read_safe(fd, &size, sizeof(size)); if (!r) { *str = NULL; @@ -140,7 +142,7 @@ _em_str_read(char **str) return 1; } - r = _em_read_safe(STDIN_FILENO, buf, size); + r = _em_read_safe(fd, buf, size); if (!r) { *str = NULL; @@ -152,86 +154,84 @@ _em_str_read(char **str) } static int -_em_cmd_read(void) +_em_cmd_read(struct _App *app) { int cmd; - _em_read_safe(STDIN_FILENO, &cmd, sizeof(cmd)); + _em_read_safe(app->em_read, &cmd, sizeof(cmd)); return cmd; } static void -_send_cmd_start(int cmd) +_send_cmd_start(struct _App *app, int cmd) { pthread_mutex_lock(&_mutex_fd); - _em_write_safe(STDOUT_FILENO, &cmd, sizeof(cmd)); + _em_write_safe(app->em_write, &cmd, sizeof(cmd)); } static void -_send_cmd_finish(void) +_send_cmd_finish(struct _App *app) { - static const char c = '\n'; - _em_write_safe(STDOUT_FILENO, &c, sizeof(c)); pthread_mutex_unlock(&_mutex_fd); } static void -_send_cmd(int cmd) +_send_cmd(struct _App *app, int cmd) { - _send_cmd_start(cmd); - _send_cmd_finish(); + _send_cmd_start(app, cmd); + _send_cmd_finish(app); } static void -_send_cmd_str(const char *str) +_send_cmd_str(struct _App *app, const char *str) { int len; len = strlen(str) + 1; - _em_write_safe(STDOUT_FILENO, &len, sizeof(len)); - _em_write_safe(STDOUT_FILENO, str, len); + _em_write_safe(app->em_write, &len, sizeof(len)); + _em_write_safe(app->em_write, str, len); } -#define SEND_CMD_PARAM(i) \ - _em_write_safe(STDOUT_FILENO, &(i), sizeof((i))); +#define SEND_CMD_PARAM(app, i) \ + _em_write_safe((app)->em_write, &(i), sizeof((i))); static void -_send_resize(int width, int height) +_send_resize(struct _App *app, int width, int height) { - _send_cmd_start(EM_RESULT_FRAME_SIZE); - SEND_CMD_PARAM(width); - SEND_CMD_PARAM(height); - _send_cmd_finish(); + _send_cmd_start(app, EM_RESULT_FRAME_SIZE); + SEND_CMD_PARAM(app, width); + SEND_CMD_PARAM(app, height); + _send_cmd_finish(app); } static void -_send_length_changed(const struct libvlc_event_t *ev) +_send_length_changed(struct _App *app, const struct libvlc_event_t *ev) { float length = ev->u.media_player_length_changed.new_length; length /= 1000; fprintf(stderr, "length changed: %0.3f\n", length); - _send_cmd_start(EM_RESULT_LENGTH_CHANGED); - SEND_CMD_PARAM(length); - _send_cmd_finish(); + _send_cmd_start(app, EM_RESULT_LENGTH_CHANGED); + SEND_CMD_PARAM(app, length); + _send_cmd_finish(app); } static void -_send_time_changed(const struct libvlc_event_t *ev) +_send_time_changed(struct _App *app, const struct libvlc_event_t *ev) { float new_time = ev->u.media_player_time_changed.new_time; new_time /= 1000; - _send_cmd_start(EM_RESULT_POSITION_CHANGED); - SEND_CMD_PARAM(new_time); - _send_cmd_finish(); + _send_cmd_start(app, EM_RESULT_POSITION_CHANGED); + SEND_CMD_PARAM(app, new_time); + _send_cmd_finish(app); } static void -_send_seekable_changed(const struct libvlc_event_t *ev) +_send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev) { int seekable = ev->u.media_player_seekable_changed.new_seekable; - _send_cmd_start(EM_RESULT_SEEKABLE_CHANGED); - SEND_CMD_PARAM(seekable); - _send_cmd_finish(); + _send_cmd_start(app, EM_RESULT_SEEKABLE_CHANGED); + SEND_CMD_PARAM(app, seekable); + _send_cmd_finish(app); } static void * @@ -270,7 +270,7 @@ _display(void *data, void *id) if (!app->playing) return; - _send_cmd(EM_RESULT_FRAME_NEW); + _send_cmd(app, EM_RESULT_FRAME_NEW); } static void * @@ -298,7 +298,7 @@ _play(struct _App *app) if (!app->mp) return; - _em_read_safe(STDIN_FILENO, &pos, sizeof(pos)); + _em_read_safe(app->em_read, &pos, sizeof(pos)); if (app->playing) { @@ -325,14 +325,14 @@ _send_file_closed(struct _App *app) { app->closing = 0; emotion_generic_shm_free(app->vs); - _send_cmd(EM_RESULT_FILE_CLOSE); + _send_cmd(app, EM_RESULT_FILE_CLOSE); } static void _send_file_set(struct _App *app) { if (app->opening) - _send_cmd(EM_RESULT_FILE_SET); + _send_cmd(app, EM_RESULT_FILE_SET); if (app->closing) _send_file_closed(app); @@ -346,26 +346,26 @@ _event_cb(const struct libvlc_event_t *ev, void *data) switch (ev->type) { case libvlc_MediaPlayerTimeChanged: - _send_time_changed(ev); + _send_time_changed(app, ev); break; case libvlc_MediaPlayerPositionChanged: thread_event = EM_THREAD_POSITION_CHANGED; write(app->fd_write, &thread_event, sizeof(thread_event)); break; case libvlc_MediaPlayerLengthChanged: - _send_length_changed(ev); + _send_length_changed(app, ev); break; case libvlc_MediaPlayerSeekableChanged: - _send_seekable_changed(ev); + _send_seekable_changed(app, ev); break; case libvlc_MediaPlayerPlaying: - _send_resize(app->w, app->h); + _send_resize(app, app->w, app->h); break; case libvlc_MediaPlayerStopped: _send_file_set(app); break; case libvlc_MediaPlayerEndReached: - _send_cmd(EM_RESULT_PLAYBACK_STOPPED); + _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); break; } } @@ -373,7 +373,7 @@ _event_cb(const struct libvlc_event_t *ev, void *data) static void _file_set(struct _App *app) { - _em_str_read(&app->filename); + _em_str_read(app->em_read, &app->filename); app->m = libvlc_media_new_path(app->libvlc, app->filename); if (!app->m) @@ -411,7 +411,7 @@ _position_set(struct _App *app) return; float position; - _em_read_safe(STDIN_FILENO, &position, sizeof(position)); + _em_read_safe(app->em_read, &position, sizeof(position)); libvlc_time_t new_time = position * 1000; libvlc_media_player_set_time(app->mp, new_time); @@ -425,7 +425,7 @@ _speed_set(struct _App *app) if (!app->mp) return; - _em_read_safe(STDIN_FILENO, &rate, sizeof(rate)); + _em_read_safe(app->em_read, &rate, sizeof(rate)); libvlc_media_player_set_rate(app->mp, rate); } @@ -438,7 +438,7 @@ _mute_set(struct _App *app) if (!app->mp) return; - _em_read_safe(STDIN_FILENO, &mute, sizeof(mute)); + _em_read_safe(app->em_read, &mute, sizeof(mute)); libvlc_audio_set_mute(app->mp, mute); } @@ -452,7 +452,7 @@ _volume_set(struct _App *app) if (!app->mp) return; - _em_read_safe(STDIN_FILENO, &volume, sizeof(volume)); + _em_read_safe(app->em_read, &volume, sizeof(volume)); vol = volume * 100; libvlc_audio_set_volume(app->mp, vol); @@ -463,7 +463,7 @@ _audio_track_set(struct _App *app) { int track; - _em_read_safe(STDIN_FILENO, &track, sizeof(track)); + _em_read_safe(app->em_read, &track, sizeof(track)); libvlc_audio_set_track(app->mp, track); } @@ -484,9 +484,9 @@ _file_set_done(struct _App *app) app->filename = NULL; app->m = NULL; app->mp = NULL; - _send_cmd_start(EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(r); - _send_cmd_finish(); + _send_cmd_start(app, EM_RESULT_FILE_SET_DONE); + SEND_CMD_PARAM(app, r); + _send_cmd_finish(app); } app->w = app->vs->width; app->h = app->vs->height; @@ -505,9 +505,9 @@ _file_set_done(struct _App *app) libvlc_audio_set_mute(app->mp, 0); - _send_cmd_start(EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(r); - _send_cmd_finish(); + _send_cmd_start(app, EM_RESULT_FILE_SET_DONE); + SEND_CMD_PARAM(app, r); + _send_cmd_finish(app); } static void @@ -534,7 +534,7 @@ _file_close(struct _App *app) static void _process_emotion_commands(struct _App *app) { - int cmd = _em_cmd_read(); + int cmd = _em_cmd_read(app); switch (cmd) { case EM_CMD_FILE_SET: _file_set(app); @@ -570,27 +570,27 @@ _process_emotion_commands(struct _App *app) } static void -_send_track_info(libvlc_media_player_t *mp) +_send_track_info(struct _App *app) { int track_count, current; libvlc_track_description_t *desc; - current = libvlc_audio_get_track(mp); - track_count = libvlc_audio_get_track_count(mp); - desc = libvlc_audio_get_track_description(mp); + current = libvlc_audio_get_track(app->mp); + track_count = libvlc_audio_get_track_count(app->mp); + desc = libvlc_audio_get_track_description(app->mp); - _send_cmd_start(EM_RESULT_AUDIO_TRACK_INFO); - SEND_CMD_PARAM(current); - SEND_CMD_PARAM(track_count); + _send_cmd_start(app, EM_RESULT_AUDIO_TRACK_INFO); + SEND_CMD_PARAM(app, current); + SEND_CMD_PARAM(app, track_count); while (desc) { int tid = desc->i_id; const char *name = desc->psz_name; - SEND_CMD_PARAM(tid); - _send_cmd_str(name); + SEND_CMD_PARAM(app, tid); + _send_cmd_str(app, name); desc = desc->p_next; } - _send_cmd_finish(); + _send_cmd_finish(app); } static void @@ -604,10 +604,10 @@ _position_changed(struct _App *app) r = libvlc_video_get_size(app->mp, 0, &w, &h); if (r < 0) return; - _send_resize(w, h); + _send_resize(app, w, h); /* sending audio track info */ - // _send_track_info(app->mp); + // _send_track_info(app); libvlc_media_player_stop(app->mp); } @@ -657,6 +657,18 @@ main(int argc, const char *argv[]) chroma }; + if (argc < 3) + { + fprintf(stderr, "player: missing paramters.\n"); + fprintf(stderr, "syntax:\n\t%s \n", argv[0]); + return -1; + } + + app.em_read = atoi(argv[1]); + app.em_write = atoi(argv[2]); + + fprintf(stderr, "reading commands from fd: %d, writing on fd: %d\n", app.em_read, app.em_write); + int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); snprintf(cwidth, sizeof(cwidth), "%d", DEFAULTWIDTH); snprintf(cheight, sizeof(cheight), "%d", DEFAULTHEIGHT); @@ -684,23 +696,23 @@ main(int argc, const char *argv[]) app.playing = 0; app.closing = 0; - if (_em_cmd_read() != EM_CMD_INIT) + if (_em_cmd_read(&app) != EM_CMD_INIT) { fprintf(stderr, "player: wrong init command!\n"); return -1; } int size; - _em_read_safe(STDIN_FILENO, &size, sizeof(size)); - _em_read_safe(STDIN_FILENO, buf, size); + _em_read_safe(app.em_read, &size, sizeof(size)); + _em_read_safe(app.em_read, buf, size); app.shmname = strdup(buf); - _send_cmd(EM_RESULT_INIT); + _send_cmd(&app, EM_RESULT_INIT); pipe(tpipe); app.fd_read = tpipe[0]; app.fd_write = tpipe[1]; - fds[0].fd = STDIN_FILENO; + fds[0].fd = app.em_read; fds[0].events = POLLIN; fds[1].fd = app.fd_read; fds[1].events = POLLIN; From 29c6d361e63ad7b744432fd029d535e17e9d1959 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 5 Sep 2011 16:07:00 +0000 Subject: [PATCH 008/141] emotion/generic - Don't start opening new file when another one is being open. SVN revision: 63203 --- .../src/vlc/emotion_generic_vlc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 425aeb4d60..a29793151e 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -373,6 +373,13 @@ _event_cb(const struct libvlc_event_t *ev, void *data) static void _file_set(struct _App *app) { + if (app->opening) + { + libvlc_media_release(app->m); + libvlc_media_player_release(app->mp); + free(app->filename); + } + _em_str_read(app->em_read, &app->filename); app->m = libvlc_media_new_path(app->libvlc, app->filename); @@ -514,6 +521,9 @@ static void _file_close(struct _App *app) { app->playing = 0; + if (app->opening) + goto release_resources; + if (libvlc_media_player_get_state(app->mp) != libvlc_Playing) { _send_file_closed(app); @@ -521,6 +531,8 @@ _file_close(struct _App *app) } app->closing = 1; + +release_resources: libvlc_media_player_stop(app->mp); if (app->filename) free(app->filename); From 38cef9c793389f3dc30df9dfbbe0d503f7769a8d Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 5 Sep 2011 21:52:11 +0000 Subject: [PATCH 009/141] emotion/generic: Add audio/video/spu channel set/get/count. SVN revision: 63218 --- .../src/vlc/emotion_generic_vlc.c | 66 +++++++++++++++---- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index a29793151e..2e13ed4878 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -475,6 +475,26 @@ _audio_track_set(struct _App *app) libvlc_audio_set_track(app->mp, track); } +static void +_video_track_set(struct _App *app) +{ + int track; + + _em_read_safe(app->em_read, &track, sizeof(track)); + + libvlc_video_set_track(app->mp, track); +} + +static void +_spu_track_set(struct _App *app) +{ + int track; + + _em_read_safe(app->em_read, &track, sizeof(track)); + + libvlc_video_set_spu(app->mp, track); +} + static void _file_set_done(struct _App *app) { @@ -578,22 +598,18 @@ _process_emotion_commands(struct _App *app) case EM_CMD_AUDIO_TRACK_SET: _audio_track_set(app); break; + case EM_CMD_VIDEO_TRACK_SET: + _video_track_set(app); + break; }; } static void -_send_track_info(struct _App *app) +_send_track_info(struct _App *app, int cmd, int current, int count, libvlc_track_description_t *desc) { - int track_count, current; - libvlc_track_description_t *desc; - - current = libvlc_audio_get_track(app->mp); - track_count = libvlc_audio_get_track_count(app->mp); - desc = libvlc_audio_get_track_description(app->mp); - - _send_cmd_start(app, EM_RESULT_AUDIO_TRACK_INFO); + _send_cmd_start(app, cmd); SEND_CMD_PARAM(app, current); - SEND_CMD_PARAM(app, track_count); + SEND_CMD_PARAM(app, count); while (desc) { int tid = desc->i_id; @@ -605,6 +621,34 @@ _send_track_info(struct _App *app) _send_cmd_finish(app); } +static void +_send_all_track_info(struct _App *app) +{ + int track_count, current; + libvlc_track_description_t *desc; + + current = libvlc_audio_get_track(app->mp); + track_count = libvlc_audio_get_track_count(app->mp); + desc = libvlc_audio_get_track_description(app->mp); + + _send_track_info(app, EM_RESULT_AUDIO_TRACK_INFO, + current, track_count, desc); + + current = libvlc_video_get_track(app->mp); + track_count = libvlc_video_get_track_count(app->mp); + desc = libvlc_video_get_track_description(app->mp); + + _send_track_info(app, EM_RESULT_VIDEO_TRACK_INFO, + current, track_count, desc); + + current = libvlc_video_get_spu(app->mp); + track_count = libvlc_video_get_spu_count(app->mp); + desc = libvlc_video_get_spu_description(app->mp); + + _send_track_info(app, EM_RESULT_SPU_TRACK_INFO, + current, track_count, desc); +} + static void _position_changed(struct _App *app) { @@ -619,7 +663,7 @@ _position_changed(struct _App *app) _send_resize(app, w, h); /* sending audio track info */ - // _send_track_info(app); + _send_all_track_info(app); libvlc_media_player_stop(app->mp); } From 6c4b4ccaf8951a0ad743183b95ecffeec15b0f06 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 5 Sep 2011 21:52:14 +0000 Subject: [PATCH 010/141] emotion/generic: Add support for fetching meta info. SVN revision: 63219 --- .../src/vlc/emotion_generic_vlc.c | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 2e13ed4878..b3e1eb1d1c 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -186,7 +186,10 @@ static void _send_cmd_str(struct _App *app, const char *str) { int len; - len = strlen(str) + 1; + if (str) + len = strlen(str) + 1; + else + len = 0; _em_write_safe(app->em_write, &len, sizeof(len)); _em_write_safe(app->em_write, str, len); } @@ -649,6 +652,36 @@ _send_all_track_info(struct _App *app) current, track_count, desc); } +static void +_send_all_meta_info(struct _App *app) +{ + const char *meta; + + _send_cmd_start(app, EM_RESULT_META_INFO); + + /* + * Will send in this order: title, artist, album, year, + * genre, comments, disc id and track count. + */ + meta = libvlc_media_get_meta(app->m, libvlc_meta_Title); + _send_cmd_str(app, meta); + meta = libvlc_media_get_meta(app->m, libvlc_meta_Artist); + _send_cmd_str(app, meta); + meta = libvlc_media_get_meta(app->m, libvlc_meta_Album); + _send_cmd_str(app, meta); + meta = libvlc_media_get_meta(app->m, libvlc_meta_Date); + _send_cmd_str(app, meta); + meta = libvlc_media_get_meta(app->m, libvlc_meta_Genre); + _send_cmd_str(app, meta); + meta = NULL; // sending empty comments + _send_cmd_str(app, meta); + meta = NULL; // sending empty disc id + _send_cmd_str(app, meta); + meta = libvlc_media_get_meta(app->m, libvlc_meta_TrackNumber); + _send_cmd_str(app, meta); + _send_cmd_finish(app); +} + static void _position_changed(struct _App *app) { @@ -665,6 +698,9 @@ _position_changed(struct _App *app) /* sending audio track info */ _send_all_track_info(app); + /* sending meta info */ + _send_all_meta_info(app); + libvlc_media_player_stop(app->mp); } From e0c4c65bbadf4c569f00b231d5c58c1c81d7f454 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 5 Sep 2011 21:52:18 +0000 Subject: [PATCH 011/141] emotion/generic: Fix frame dropping. Move the frame drop counter to the shared memory object, so the player can check its value and not send new frames if we didn't "consume" the previous one. Also move the triple buffering pointer changing to the display function, so it will only lock once when accessing the critical region. SVN revision: 63220 --- .../src/vlc/emotion_generic_vlc.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index b3e1eb1d1c..dfa0962132 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -253,17 +253,6 @@ _lock(void *data, void **pixels) static void _unlock(void *data, void *id, void *const *pixels) { - struct _App *app = data; - - if (!app->playing) - return; - - sem_wait(&app->vs->lock); - app->vs->frame.last = app->vs->frame.player; - app->vs->frame.player = app->vs->frame.next; - app->vs->frame.next = app->vs->frame.last; - - sem_post(&app->vs->lock); } static void @@ -273,7 +262,13 @@ _display(void *data, void *id) if (!app->playing) return; - _send_cmd(app, EM_RESULT_FRAME_NEW); + sem_wait(&app->vs->lock); + app->vs->frame.last = app->vs->frame.player; + app->vs->frame.player = app->vs->frame.next; + app->vs->frame.next = app->vs->frame.last; + if (!app->vs->frame_drop++) + _send_cmd(app, EM_RESULT_FRAME_NEW); + sem_post(&app->vs->lock); } static void * From 1d7ffacad83cd07c04e84b053ea1a210ac451c73 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Tue, 6 Sep 2011 12:37:03 +0000 Subject: [PATCH 012/141] emotion/generic: Don't send position update when skipping frames. SVN revision: 63227 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index dfa0962132..4fb8ba0b45 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -223,6 +223,8 @@ _send_time_changed(struct _App *app, const struct libvlc_event_t *ev) { float new_time = ev->u.media_player_time_changed.new_time; new_time /= 1000; + if (app->vs->frame_drop > 1) + return; _send_cmd_start(app, EM_RESULT_POSITION_CHANGED); SEND_CMD_PARAM(app, new_time); _send_cmd_finish(app); From 4438a21c43998b3ac36cd5ded104e1541a71671c Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Tue, 6 Sep 2011 21:15:46 +0000 Subject: [PATCH 013/141] emotion/generic: Non-blocking event reading from player. Temporarily disabled fetching/sending of channel and meta info. Will enable it with the next commit, to simplify code. SVN revision: 63236 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 4fb8ba0b45..81431281d4 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -693,10 +693,10 @@ _position_changed(struct _App *app) _send_resize(app, w, h); /* sending audio track info */ - _send_all_track_info(app); + // _send_all_track_info(app); /* sending meta info */ - _send_all_meta_info(app); + // _send_all_meta_info(app); libvlc_media_player_stop(app->mp); } From 0aa0de6f74c18203b864f952b3761e6903a3fdb0 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Tue, 6 Sep 2011 21:15:50 +0000 Subject: [PATCH 014/141] emotion/generic: Non-blocking track info retrieval. SVN revision: 63237 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 81431281d4..c4ab25b47a 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -693,7 +693,7 @@ _position_changed(struct _App *app) _send_resize(app, w, h); /* sending audio track info */ - // _send_all_track_info(app); + _send_all_track_info(app); /* sending meta info */ // _send_all_meta_info(app); From db329f7203419409a7fee40ae7939888d6c6740e Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Tue, 6 Sep 2011 21:15:53 +0000 Subject: [PATCH 015/141] emotion/generic: Non-blocking meta info retrieval. SVN revision: 63238 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index c4ab25b47a..4fb8ba0b45 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -696,7 +696,7 @@ _position_changed(struct _App *app) _send_all_track_info(app); /* sending meta info */ - // _send_all_meta_info(app); + _send_all_meta_info(app); libvlc_media_player_stop(app->mp); } From b9e350aa284ec4bfad9ba95712192af3d11e477d Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 3 Oct 2011 18:19:48 +0000 Subject: [PATCH 016/141] emotion/generic/vlc: VLC needs to write data somewhere. It seems that depending on the system, vlc can't use a NULL pointer to the pixels where it should write its data. So a small amount of memory should be allocated and passed to its rendering callbacks (specifically, the lock callback) when the file is being opened and decoded for the first time. Then this memory can be freed, since the real rendering will happen on the shared memory area. SVN revision: 63777 --- .../emotion_generic_players/src/vlc/emotion_generic_vlc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 4fb8ba0b45..848cabb1d6 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -35,6 +35,7 @@ struct _App { libvlc_event_manager_t *mevent_mgr; char *filename; char *shmname; + void *tmpbuffer; int w, h; int fd_read; // read commands from theads here int fd_write; // write commands from threads here @@ -276,7 +277,8 @@ _display(void *data, void *id) static void * _tmp_lock(void *data, void **pixels) { - *pixels = NULL; + struct _App *app = data; + *pixels = app->tmpbuffer; return NULL; } @@ -398,7 +400,7 @@ _file_set(struct _App *app) app->opening = 1; libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); - libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, NULL); + libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app); app->event_mgr = libvlc_media_player_event_manager(app->mp); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, _event_cb, app); @@ -407,6 +409,7 @@ _file_set(struct _App *app) app->mevent_mgr = libvlc_media_event_manager(app->m); + app->tmpbuffer = malloc(sizeof(char) * DEFAULTWIDTH * DEFAULTHEIGHT * 4); libvlc_audio_set_mute(app->mp, 1); libvlc_media_player_play(app->mp); } @@ -560,6 +563,7 @@ release_resources: { libvlc_media_release(app->m); libvlc_media_player_release(app->mp); + free(app->tmpbuffer); } } From a1c7b5a1b21cc01c5d3adc5b0cafa239fe946a92 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 3 Oct 2011 18:24:12 +0000 Subject: [PATCH 017/141] emotion/build: Fix DSO build for em_generic_vlc. SVN revision: 63779 --- legacy/emotion_generic_players/src/vlc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/Makefile.am b/legacy/emotion_generic_players/src/vlc/Makefile.am index 6d6a9f2b85..6b00d281c1 100644 --- a/legacy/emotion_generic_players/src/vlc/Makefile.am +++ b/legacy/emotion_generic_players/src/vlc/Makefile.am @@ -15,4 +15,4 @@ internal_bin_PROGRAMS = em_generic_vlc em_generic_vlc_SOURCES = emotion_generic_vlc.c em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h -em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ +em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ -lpthread -lrt From 34e627783bb3e2743c80016beade4c1d20de4335 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 3 Oct 2011 18:39:23 +0000 Subject: [PATCH 018/141] emotion/generic/vlc: Remove more warnings. SVN revision: 63781 --- .../src/vlc/emotion_generic_vlc.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 848cabb1d6..244592951a 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -488,16 +488,6 @@ _video_track_set(struct _App *app) libvlc_video_set_track(app->mp, track); } -static void -_spu_track_set(struct _App *app) -{ - int track; - - _em_read_safe(app->em_read, &track, sizeof(track)); - - libvlc_video_set_spu(app->mp, track); -} - static void _file_set_done(struct _App *app) { @@ -690,7 +680,8 @@ _position_changed(struct _App *app) return; /* sending size info only once */ - int r, w, h; + int r; + unsigned int w, h; r = libvlc_video_get_size(app->mp, 0, &w, &h); if (r < 0) return; @@ -729,10 +720,8 @@ int main(int argc, const char *argv[]) { struct _App app; - Emotion_Generic_Video_Shared *vs; struct pollfd fds[3]; int tpipe[2]; // pipe for comunicating events from threads - char shmname[256]; char cwidth[64], cheight[64], cpitch[64], chroma[64]; char buf[64]; const char *vlc_argv[] = From 964e67b4624ad6db94f4aafde7d36552ca3b9cb5 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 30 Dec 2011 15:06:24 +0000 Subject: [PATCH 019/141] emotion: fix build with Eina_Semaphore. SVN revision: 66697 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 244592951a..0be1ee922d 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -18,6 +18,7 @@ #include #include + #include enum _Thread_Events { From 50cff9abb15ff525774a662aa90689f9be85ed35 Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Tue, 6 Mar 2012 20:57:50 +0000 Subject: [PATCH 020/141] Emotion: remove unused var on generic SVN revision: 68849 --- .../src/vlc/emotion_generic_vlc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 0be1ee922d..6d61451eec 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -172,7 +172,7 @@ _send_cmd_start(struct _App *app, int cmd) } static void -_send_cmd_finish(struct _App *app) +_send_cmd_finish(struct _App *app __UNUSED__) { pthread_mutex_unlock(&_mutex_fd); } @@ -255,12 +255,12 @@ _lock(void *data, void **pixels) } static void -_unlock(void *data, void *id, void *const *pixels) +_unlock(void *data __UNUSED__, void *id __UNUSED__, void *const *pixels __UNUSED__) { } static void -_display(void *data, void *id) +_display(void *data, void *id __UNUSED__) { struct _App *app = data; if (!app->playing) @@ -284,12 +284,12 @@ _tmp_lock(void *data, void **pixels) } static void -_tmp_unlock(void *data, void *id, void *const *pixels) +_tmp_unlock(void *data __UNUSED__, void *id __UNUSED__, void *const *pixels __UNUSED__) { } static void -_tmp_display(void *data, void *id) +_tmp_display(void *data __UNUSED__, void *id __UNUSED__) { } From 65505d9ca8886c483458d4949b090a14317d7ef9 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Thu, 15 Mar 2012 20:43:17 +0000 Subject: [PATCH 021/141] Don't abort when there's no video size. For music, it does make sense to return -1. SVN revision: 69436 --- .../emotion_generic_players/src/vlc/emotion_generic_vlc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 6d61451eec..f286da3580 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -214,7 +214,6 @@ _send_length_changed(struct _App *app, const struct libvlc_event_t *ev) float length = ev->u.media_player_length_changed.new_length; length /= 1000; - fprintf(stderr, "length changed: %0.3f\n", length); _send_cmd_start(app, EM_RESULT_LENGTH_CHANGED); SEND_CMD_PARAM(app, length); _send_cmd_finish(app); @@ -685,7 +684,10 @@ _position_changed(struct _App *app) unsigned int w, h; r = libvlc_video_get_size(app->mp, 0, &w, &h); if (r < 0) - return; + { + w = 1; + h = 1; + } _send_resize(app, w, h); /* sending audio track info */ @@ -750,8 +752,6 @@ main(int argc, const char *argv[]) app.em_read = atoi(argv[1]); app.em_write = atoi(argv[2]); - fprintf(stderr, "reading commands from fd: %d, writing on fd: %d\n", app.em_read, app.em_write); - int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); snprintf(cwidth, sizeof(cwidth), "%d", DEFAULTWIDTH); snprintf(cheight, sizeof(cheight), "%d", DEFAULTHEIGHT); From 80e06eb5a50f5f189d017e6354f905272fe2c50c Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Thu, 15 Mar 2012 20:43:21 +0000 Subject: [PATCH 022/141] emotion/generic-vlc: Add callback for reaching end of playback. SVN revision: 69437 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index f286da3580..feecac3285 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -522,6 +522,8 @@ _file_set_done(struct _App *app) _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, + _event_cb, app); libvlc_audio_set_mute(app->mp, 0); From 3d730505185d0dffc30bf00eaa4362b735429923 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Fri, 23 Mar 2012 19:42:38 +0000 Subject: [PATCH 023/141] emotion/generic-vlc: Don't try to stop the player from event thread. Must send the command through the pipe so the main thread can stop it. SVN revision: 69591 --- .../src/vlc/emotion_generic_vlc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index feecac3285..266ae65019 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -23,6 +23,7 @@ enum _Thread_Events { EM_THREAD_POSITION_CHANGED, + EM_THREAD_PLAYBACK_STOPPED, EM_THREAD_LAST }; @@ -367,7 +368,8 @@ _event_cb(const struct libvlc_event_t *ev, void *data) _send_file_set(app); break; case libvlc_MediaPlayerEndReached: - _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); + thread_event = EM_THREAD_PLAYBACK_STOPPED; + write(app->fd_write, &thread_event, sizeof(thread_event)); break; } } @@ -718,6 +720,11 @@ _process_thread_events(struct _App *app) case EM_THREAD_POSITION_CHANGED: _position_changed(app); break; + case EM_THREAD_PLAYBACK_STOPPED: + libvlc_media_player_stop(app->mp); + app->playing = 0; + _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); + break; } } From 37978d7d6f3b3969ccda1758fdd92db4615f542c Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Fri, 23 Mar 2012 20:18:22 +0000 Subject: [PATCH 024/141] emotion/generic-vlc: Change playing position before start playing. This will avoid that a video that reached its end starts playing from that end when started again. SVN revision: 69592 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 266ae65019..72649ace9b 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -310,8 +310,8 @@ _play(struct _App *app) else { libvlc_time_t new_time = pos * 1000; - libvlc_media_player_play(app->mp); libvlc_media_player_set_time(app->mp, new_time); + libvlc_media_player_play(app->mp); app->playing = 1; } } From be6981e639967b97b4fb24f4de9fbbff23413483 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Sun, 25 Mar 2012 18:43:21 +0000 Subject: [PATCH 025/141] Emotion: Fix shm_open check + various autotools cleaning This works in linux, and should fix shm_detection on BSD (including Mac) BSD, Mac and solaris users : please check that it compiles and shm_open is detected SVN revision: 69618 --- legacy/emotion_generic_players/src/vlc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/Makefile.am b/legacy/emotion_generic_players/src/vlc/Makefile.am index 6b00d281c1..ca9d22a92f 100644 --- a/legacy/emotion_generic_players/src/vlc/Makefile.am +++ b/legacy/emotion_generic_players/src/vlc/Makefile.am @@ -15,4 +15,4 @@ internal_bin_PROGRAMS = em_generic_vlc em_generic_vlc_SOURCES = emotion_generic_vlc.c em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h -em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ -lpthread -lrt +em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ -lpthread From d83dd24951f917942c440da4dc28f44db93c750c Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 8 Jun 2012 04:59:37 +0000 Subject: [PATCH 026/141] emotion: Add support for "playback_started" callback to generic player. Patch by Pierre Le Magourou SVN revision: 71830 --- .../emotion_generic_players/src/vlc/emotion_generic_vlc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 72649ace9b..4fe1d16fbc 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -23,6 +23,7 @@ enum _Thread_Events { EM_THREAD_POSITION_CHANGED, + EM_THREAD_PLAYBACK_STARTED, EM_THREAD_PLAYBACK_STOPPED, EM_THREAD_LAST }; @@ -363,6 +364,8 @@ _event_cb(const struct libvlc_event_t *ev, void *data) break; case libvlc_MediaPlayerPlaying: _send_resize(app, app->w, app->h); + thread_event = EM_THREAD_PLAYBACK_STARTED; + write(app->fd_write, &thread_event, sizeof(thread_event)); break; case libvlc_MediaPlayerStopped: _send_file_set(app); @@ -720,6 +723,9 @@ _process_thread_events(struct _App *app) case EM_THREAD_POSITION_CHANGED: _position_changed(app); break; + case EM_THREAD_PLAYBACK_STARTED: + _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); + break; case EM_THREAD_PLAYBACK_STOPPED: libvlc_media_player_stop(app->mp); app->playing = 0; From c1c529f2cfd7986c9fdf65ee049494f978a76672 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 8 Jun 2012 05:10:29 +0000 Subject: [PATCH 027/141] emotion: implement SPU switch for generic/vlc. Patch by Hugo Camboulive . SVN revision: 71831 --- .../src/vlc/emotion_generic_vlc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 4fe1d16fbc..7ec0a6f6c2 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -473,6 +473,16 @@ _volume_set(struct _App *app) libvlc_audio_set_volume(app->mp, vol); } +static void +_spu_track_set(struct _App *app) +{ + int track; + + _em_read_safe(app->em_read, &track, sizeof(track)); + + libvlc_video_set_spu(app->mp, track); +} + static void _audio_track_set(struct _App *app) { @@ -596,6 +606,9 @@ _process_emotion_commands(struct _App *app) case EM_CMD_VOLUME_SET: _volume_set(app); break; + case EM_CMD_SPU_TRACK_SET: + _spu_track_set(app); + break; case EM_CMD_AUDIO_TRACK_SET: _audio_track_set(app); break; From f913c6433e9d7d4ad44373b04bccc84ae6152f30 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 19 Jun 2012 06:16:41 +0000 Subject: [PATCH 028/141] missing @EFL_SHM_OPEN_LIBS@ for shm_open. SVN revision: 72439 --- legacy/emotion_generic_players/src/vlc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/Makefile.am b/legacy/emotion_generic_players/src/vlc/Makefile.am index ca9d22a92f..5cda1b95b4 100644 --- a/legacy/emotion_generic_players/src/vlc/Makefile.am +++ b/legacy/emotion_generic_players/src/vlc/Makefile.am @@ -15,4 +15,4 @@ internal_bin_PROGRAMS = em_generic_vlc em_generic_vlc_SOURCES = emotion_generic_vlc.c em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h -em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ -lpthread +em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ @EFL_SHM_OPEN_LIBS@ -lpthread From 5171e93dc55f5edbe4b86c6b4e78cc0e54c5861d Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 21 Aug 2012 09:17:38 +0000 Subject: [PATCH 029/141] emotion: fix priority_set/get Patch by Sohyun Kim SVN revision: 75495 --- .../src/vlc/emotion_generic_vlc.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 7ec0a6f6c2..f41506491e 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -25,6 +25,7 @@ enum _Thread_Events { EM_THREAD_POSITION_CHANGED, EM_THREAD_PLAYBACK_STARTED, EM_THREAD_PLAYBACK_STOPPED, + EM_THREAD_EOF, EM_THREAD_LAST }; @@ -311,6 +312,7 @@ _play(struct _App *app) else { libvlc_time_t new_time = pos * 1000; + fprintf(stderr, "pos %f\n", pos); libvlc_media_player_set_time(app->mp, new_time); libvlc_media_player_play(app->mp); app->playing = 1; @@ -371,9 +373,11 @@ _event_cb(const struct libvlc_event_t *ev, void *data) _send_file_set(app); break; case libvlc_MediaPlayerEndReached: - thread_event = EM_THREAD_PLAYBACK_STOPPED; - write(app->fd_write, &thread_event, sizeof(thread_event)); - break; + thread_event = EM_THREAD_EOF; + write(app->fd_write, &thread_event, sizeof(thread_event)); + /* thread_event = EM_THREAD_PLAYBACK_STOPPED; */ + /* write(app->fd_write, &thread_event, sizeof(thread_event)); */ + break; } } @@ -739,6 +743,10 @@ _process_thread_events(struct _App *app) case EM_THREAD_PLAYBACK_STARTED: _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; + case EM_THREAD_EOF: + _send_cmd(app, EM_RESULT_FILE_EOF); + app->playing = 0; + break; case EM_THREAD_PLAYBACK_STOPPED: libvlc_media_player_stop(app->mp); app->playing = 0; From 86e4278771b150af3e02da162b2f2dcb88053be6 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 21 Aug 2012 09:20:08 +0000 Subject: [PATCH 030/141] emotion: oops, this files should never have gotten in. SVN revision: 75496 --- .../src/vlc/emotion_generic_vlc.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index f41506491e..7ec0a6f6c2 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -25,7 +25,6 @@ enum _Thread_Events { EM_THREAD_POSITION_CHANGED, EM_THREAD_PLAYBACK_STARTED, EM_THREAD_PLAYBACK_STOPPED, - EM_THREAD_EOF, EM_THREAD_LAST }; @@ -312,7 +311,6 @@ _play(struct _App *app) else { libvlc_time_t new_time = pos * 1000; - fprintf(stderr, "pos %f\n", pos); libvlc_media_player_set_time(app->mp, new_time); libvlc_media_player_play(app->mp); app->playing = 1; @@ -373,11 +371,9 @@ _event_cb(const struct libvlc_event_t *ev, void *data) _send_file_set(app); break; case libvlc_MediaPlayerEndReached: - thread_event = EM_THREAD_EOF; - write(app->fd_write, &thread_event, sizeof(thread_event)); - /* thread_event = EM_THREAD_PLAYBACK_STOPPED; */ - /* write(app->fd_write, &thread_event, sizeof(thread_event)); */ - break; + thread_event = EM_THREAD_PLAYBACK_STOPPED; + write(app->fd_write, &thread_event, sizeof(thread_event)); + break; } } @@ -743,10 +739,6 @@ _process_thread_events(struct _App *app) case EM_THREAD_PLAYBACK_STARTED: _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; - case EM_THREAD_EOF: - _send_cmd(app, EM_RESULT_FILE_EOF); - app->playing = 0; - break; case EM_THREAD_PLAYBACK_STOPPED: libvlc_media_player_stop(app->mp); app->playing = 0; From a77b8103c9760eef7287d787da52f7b8c88310a7 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 28 Aug 2012 09:17:34 +0000 Subject: [PATCH 031/141] emotion: reset VLC pipeline on EOS. NOTE: I gave up and completely restart the child, seems like the only reliable way to do it. SVN revision: 75769 --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 7ec0a6f6c2..583036df6f 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -312,7 +312,7 @@ _play(struct _App *app) { libvlc_time_t new_time = pos * 1000; libvlc_media_player_set_time(app->mp, new_time); - libvlc_media_player_play(app->mp); + libvlc_media_player_play(app->mp); app->playing = 1; } } @@ -395,8 +395,8 @@ _file_set(struct _App *app) fprintf(stderr, "could not open path: \"%s\"\n", app->filename); return; } - app->mp = libvlc_media_player_new_from_media(app->m); + app->mp = libvlc_media_player_new_from_media(app->m); if (!app->mp) { fprintf(stderr, "could not create new player from media.\n"); @@ -740,7 +740,6 @@ _process_thread_events(struct _App *app) _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; case EM_THREAD_PLAYBACK_STOPPED: - libvlc_media_player_stop(app->mp); app->playing = 0; _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); break; From 7d8f061a4a7f4b0ff9f7ba58ab2d97f1a03ff53c Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Tue, 4 Dec 2012 00:45:47 +0000 Subject: [PATCH 032/141] emotion/generic/vlc: Only send frame size when it's not zero. SVN revision: 80117 --- .../src/vlc/emotion_generic_vlc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 583036df6f..836eda3a45 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -708,7 +708,12 @@ _position_changed(struct _App *app) w = 1; h = 1; } - _send_resize(app, w, h); + + if (w > 0 || h > 0) + { + _send_resize(app, w, h); + app->size_sent = 1; + } /* sending audio track info */ _send_all_track_info(app); @@ -716,7 +721,8 @@ _position_changed(struct _App *app) /* sending meta info */ _send_all_meta_info(app); - libvlc_media_player_stop(app->mp); + if (app->size_sent) + libvlc_media_player_stop(app->mp); } static void From 36113f208511606fb9a7e85cf25cf87d729702bc Mon Sep 17 00:00:00 2001 From: Leandro Dorileo Date: Wed, 2 Jan 2013 21:03:30 +0000 Subject: [PATCH 033/141] Emotion: introce emotion_object_video_subtitle_file_set() call For setting an arbitrary subtitle file, this patch introduces the emotion_object_video_subtitle_file_set() and its counterpart emotion_object_video_subtitle_file_get(). The tag @sice were added as 1.7.2 since we're preparing a backport to stable tree. SVN revision: 82019 --- .../src/vlc/emotion_generic_vlc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 836eda3a45..d15341667a 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -37,6 +37,7 @@ struct _App { libvlc_event_manager_t *event_mgr; libvlc_event_manager_t *mevent_mgr; char *filename; + char *subtitle_path; char *shmname; void *tmpbuffer; int w, h; @@ -313,6 +314,10 @@ _play(struct _App *app) libvlc_time_t new_time = pos * 1000; libvlc_media_player_set_time(app->mp, new_time); libvlc_media_player_play(app->mp); + + if (app->subtitle_path) + libvlc_video_set_subtitle_file(app->mp, app->subtitle_path); + app->playing = 1; } } @@ -377,6 +382,12 @@ _event_cb(const struct libvlc_event_t *ev, void *data) } } +static void +_subtitle_set(struct _App *app) +{ + _em_str_read(app->em_read, &app->subtitle_path); +} + static void _file_set(struct _App *app) { @@ -585,6 +596,9 @@ _process_emotion_commands(struct _App *app) case EM_CMD_FILE_SET_DONE: _file_set_done(app); break; + case EM_CMD_SUBTITLE_SET: + _subtitle_set(app); + break; case EM_CMD_FILE_CLOSE: _file_close(app); break; @@ -805,6 +819,7 @@ main(int argc, const char *argv[]) app.libvlc = libvlc_new(vlc_argc, vlc_argv); app.mp = NULL; app.filename = NULL; + app.subtitle_path = NULL; app.w = 0; app.h = 0; app.size_sent = 0; From 9bfc2751725c241994a4319f874c9f642ef300fa Mon Sep 17 00:00:00 2001 From: Leandro Dorileo Date: Thu, 3 Jan 2013 20:27:08 +0000 Subject: [PATCH 034/141] Emotion: generic vlc player now uses eina_log SVN revision: 82098 --- .../src/vlc/emotion_generic_vlc.c | 68 ++++++++++++------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index d15341667a..a20717303c 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -20,6 +20,14 @@ #include #include +#include + +static int _em_vlc_log_dom = -1; +#define ERR(...) EINA_LOG_DOM_ERR(_em_vlc_log_dom, __VA_ARGS__) +#define DBG(...) EINA_LOG_DOM_DBG(_em_vlc_log_dom, __VA_ARGS__) +#define INF(...) EINA_LOG_DOM_INFO(_em_vlc_log_dom, __VA_ARGS__) +#define WRN(...) EINA_LOG_DOM_WARN(_em_vlc_log_dom, __VA_ARGS__) +#define CRIT(...) EINA_LOG_DOM_CRIT(_em_vlc_log_dom, __VA_ARGS__) enum _Thread_Events { EM_THREAD_POSITION_CHANGED, @@ -80,8 +88,7 @@ _em_read_safe(int fd, void *buf, ssize_t size) continue; else { - fprintf(stderr, "could not read from fd %d: %s", - fd, strerror(errno)); + ERR("could not read from fd %d: %s", fd, strerror(errno)); return 0; } } @@ -117,8 +124,7 @@ _em_write_safe(int fd, const void *buf, ssize_t size) continue; else { - fprintf(stderr, "could not write to fd %d: %s", - fd, strerror(errno)); + ERR("could not write to fd %d: %s", fd, strerror(errno)); return 0; } } @@ -403,14 +409,14 @@ _file_set(struct _App *app) app->m = libvlc_media_new_path(app->libvlc, app->filename); if (!app->m) { - fprintf(stderr, "could not open path: \"%s\"\n", app->filename); + ERR("could not open path: \"%s\"", app->filename); return; } app->mp = libvlc_media_player_new_from_media(app->m); if (!app->mp) { - fprintf(stderr, "could not create new player from media.\n"); + ERR("could not create new player from media."); return; } @@ -748,8 +754,8 @@ _process_thread_events(struct _App *app) size = read(app->fd_read, &event, sizeof(event)); if (size != sizeof(event)) { - fprintf(stderr, "player: problem when reading thread event. size = %zd\n", size); - return; + ERR("player: problem when reading thread event. size = %zd", size); + return; } switch (event) { @@ -774,6 +780,24 @@ main(int argc, const char *argv[]) int tpipe[2]; // pipe for comunicating events from threads char cwidth[64], cheight[64], cpitch[64], chroma[64]; char buf[64]; + + if (!eina_init()) + { + EINA_LOG_CRIT("Can't initialize generic vlc player, eina failed."); + return -1; + } + + _em_vlc_log_dom = eina_log_domain_register("emotion_generic_vlc", + EINA_COLOR_CYAN); + if (_em_vlc_log_dom < 0) + { + EINA_LOG_CRIT("Unable to register emotion_generic_vlc log domain."); + goto error; + } + + if (!eina_log_domain_level_check(_em_vlc_log_dom, EINA_LOG_LEVEL_WARN)) + eina_log_domain_level_set("emotion_generic_vlc", EINA_LOG_LEVEL_WARN); + const char *vlc_argv[] = { "--quiet", @@ -791,9 +815,9 @@ main(int argc, const char *argv[]) if (argc < 3) { - fprintf(stderr, "player: missing paramters.\n"); - fprintf(stderr, "syntax:\n\t%s \n", argv[0]); - return -1; + ERR("missing parameters."); + ERR("syntax:\n\t%s ", argv[0]); + goto error; } app.em_read = atoi(argv[1]); @@ -829,8 +853,8 @@ main(int argc, const char *argv[]) if (_em_cmd_read(&app) != EM_CMD_INIT) { - fprintf(stderr, "player: wrong init command!\n"); - return -1; + ERR("wrong init command!"); + goto error; } int size; @@ -859,22 +883,18 @@ main(int argc, const char *argv[]) continue; else if (r < 0) { - fprintf(stderr, - "emotion_generic_vlc: an error ocurred on poll(): %s\n", - strerror(errno)); - break; + ERR("an error ocurred on poll(): %s", strerror(errno)); + break; } if (fds[0].revents & (POLLERR | POLLHUP | POLLNVAL)) { - fputs("emotion_generic_vlc: error communicating with stdin\n", - stderr); + ERR("error communicating with stdin", stderr); break; } if (fds[1].revents & (POLLERR | POLLHUP | POLLNVAL)) { - fputs("emotion_generic_vlc: error communicating with thread\n", - stderr); + ERR("error communicating with thread", stderr); break; } @@ -887,8 +907,10 @@ main(int argc, const char *argv[]) } libvlc_release(app.libvlc); - - return 0; + + error: + eina_shutdown(); + return -1; } #undef SEND_CMD_PARAM From cfdbc0473dc9922c0873fc40d6088bddd9e3a8d8 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Fri, 11 Jan 2013 03:07:58 +0000 Subject: [PATCH 035/141] add emotion_generic_players project. This is similar to evas_generic_loaders. It contains VLC player engine. SVN revision: 82603 --- legacy/emotion_generic_players/AUTHORS | 9 ++ legacy/emotion_generic_players/COPYING | 25 +++ legacy/emotion_generic_players/ChangeLog | 5 + legacy/emotion_generic_players/Makefile.am | 40 +++++ legacy/emotion_generic_players/NEWS | 0 legacy/emotion_generic_players/README | 24 +++ legacy/emotion_generic_players/autogen.sh | 10 ++ legacy/emotion_generic_players/configure.ac | 142 ++++++++++++++++++ .../m4/efl_compiler.m4 | 98 ++++++++++++ .../m4/emotion_generic_players.m4 | 37 +++++ .../emotion_generic_players/src/Makefile.am | 8 - .../src/vlc/Makefile.am | 18 --- .../src/vlc/emotion_generic_vlc.c | 14 +- 13 files changed, 397 insertions(+), 33 deletions(-) create mode 100644 legacy/emotion_generic_players/AUTHORS create mode 100644 legacy/emotion_generic_players/COPYING create mode 100644 legacy/emotion_generic_players/ChangeLog create mode 100644 legacy/emotion_generic_players/Makefile.am create mode 100644 legacy/emotion_generic_players/NEWS create mode 100644 legacy/emotion_generic_players/README create mode 100755 legacy/emotion_generic_players/autogen.sh create mode 100644 legacy/emotion_generic_players/configure.ac create mode 100644 legacy/emotion_generic_players/m4/efl_compiler.m4 create mode 100644 legacy/emotion_generic_players/m4/emotion_generic_players.m4 delete mode 100644 legacy/emotion_generic_players/src/Makefile.am delete mode 100644 legacy/emotion_generic_players/src/vlc/Makefile.am diff --git a/legacy/emotion_generic_players/AUTHORS b/legacy/emotion_generic_players/AUTHORS new file mode 100644 index 0000000000..3270ec5387 --- /dev/null +++ b/legacy/emotion_generic_players/AUTHORS @@ -0,0 +1,9 @@ +VLC +--- +Cedric Bail +Hugo Camboulive +Leandro Dorileo +Pierre Le Magourou +Rafael Antognolli +Sohyun Kim + diff --git a/legacy/emotion_generic_players/COPYING b/legacy/emotion_generic_players/COPYING new file mode 100644 index 0000000000..aab836272d --- /dev/null +++ b/legacy/emotion_generic_players/COPYING @@ -0,0 +1,25 @@ +Copyright notice for Emotion: + +Copyright (C) 2004-2011 Carsten Haitzler and various contributors (see AUTHORS) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/legacy/emotion_generic_players/ChangeLog b/legacy/emotion_generic_players/ChangeLog new file mode 100644 index 0000000000..2d381b5fd9 --- /dev/null +++ b/legacy/emotion_generic_players/ChangeLog @@ -0,0 +1,5 @@ +2012-01-10 Gustavo Sverzut Barbieri (k-s) + + * Created the project based on previous + emotion/src/generic_players, as it was removed when Emotion was + merged into EFL single-tree. diff --git a/legacy/emotion_generic_players/Makefile.am b/legacy/emotion_generic_players/Makefile.am new file mode 100644 index 0000000000..7c5e7c5c3f --- /dev/null +++ b/legacy/emotion_generic_players/Makefile.am @@ -0,0 +1,40 @@ +AUTOMAKE_OPTIONS = subdir-objects +ACLOCAL_AMFLAGS = -I m4 + +AM_MAKEFLAGS = --no-print-directory +AM_CFLAGS = \ +@EFL_CFLAGS@ \ +@EMOTION_CFLAGS@ + +AM_LDFLAGS = \ +@EFL_LDFLAGS@ + +EXTRA_DIST = \ +README \ +AUTHORS \ +COPYING \ +m4/efl_compiler_flag.m4 + +MAINTAINERCLEANFILES = \ +aclocal.m4 \ +compile \ +config.guess \ +config.h.in \ +config.sub \ +configure \ +depcomp \ +install-sh \ +ltmain.sh \ +Makefile.in \ +missing \ +mkinstalldirs + +emotiongenericplayersdir = $(EMOTION_GENERIC_PLAYERS_DIR) +emotiongenericplayers_PROGRAMS = + +if HAVE_VLC +emotiongenericplayers_PROGRAMS += src/vlc/vlc +src_vlc_vlc_SOURCES = src/vlc/emotion_generic_vlc.c +src_vlc_vlc_CPPFLAGS = @VLC_CFLAGS@ +src_vlc_vlc_LDADD = @VLC_LIBS@ +endif diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/legacy/emotion_generic_players/README b/legacy/emotion_generic_players/README new file mode 100644 index 0000000000..711f36cfca --- /dev/null +++ b/legacy/emotion_generic_players/README @@ -0,0 +1,24 @@ +Players for Emotion using "generic" module. + +EMOTION GENERIC PLAYERS +======================= + +Emotion support multiple modules provided as shared-objects under +${prefix}/lib/emotion/modules, making it extensible. However these +live in the same process as the application, thus problems handling +the media may crash or halt the application. Unfortunately media +handling is very error prone due multiple sources, sinks, decoders et +al, each with their own level of stability. + +To solve this emotion ships with a "generic" module that will be a +layer to talk to another process, the "player", using pipes and shared +memory (shm). If this external process dies, the main application +remains working (without any media, of course). Thus it is safer and +have some nice qualities as avoiding bringing in many libraries to +decode media, saving memory in the application process, etc. + +A secondary benefit is that the generic player is a separate process +and does not link with the user application code or EFL, avoiding +license conflicts. Many decoding libraries or elements exist in +conflicting licenses with GPL, LGPL or even proprietary code. + diff --git a/legacy/emotion_generic_players/autogen.sh b/legacy/emotion_generic_players/autogen.sh new file mode 100755 index 0000000000..d265ba52df --- /dev/null +++ b/legacy/emotion_generic_players/autogen.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +rm -rf autom4te.cache +rm -f aclocal.m4 ltmain.sh config.cache + +autoreconf -vif + +if [ -z "$NOCONFIGURE" ]; then + exec ./configure -C "$@" +fi diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac new file mode 100644 index 0000000000..bbefa25ba3 --- /dev/null +++ b/legacy/emotion_generic_players/configure.ac @@ -0,0 +1,142 @@ +m4_define([v_maj], [1]) +m4_define([v_min], [7]) +m4_define([v_mic], [99]) + +dnl m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n'])) +m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))]) + +#### FIXME: i am sure that we can do some m4 to automagically do the stuff below for release and snapshots + +##-- When released, remove the dnl on the below line +dnl m4_undefine([v_rev]) + +m4_define([v_rel], []) +##-- When doing snapshots - change soname. remove dnl on below line +dnl m4_define([relname], [ver-pre-svn-07]) +dnl m4_define([v_rel], [-release relname]) + +m4_ifdef([v_rev], [m4_define([proj_version], [v_maj.v_min.v_mic.v_rev])], [m4_define([proj_version], [v_maj.v_min.v_mic])]) + +AC_INIT([emotion_generic_players], [proj_version], [enlightenment-devel@lists.sourceforge.net]) +AC_PREREQ([2.59]) +AC_CONFIG_SRCDIR([configure.ac]) +AC_CONFIG_MACRO_DIR([m4]) + +AC_CONFIG_HEADERS([config.h]) + +AC_USE_SYSTEM_EXTENSIONS +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE([1.6 dist-bzip2]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +AC_LANG([C]) +AC_PROG_CC_C99 +AM_PROG_CC_C_O + +PKG_PROG_PKG_CONFIG +if test "x${PKG_CONFIG}" = "x" ; then + AC_MSG_ERROR([pkg-config tool not found. Install it or set PKG_CONFIG environment variable to that path tool. Exiting...]) +fi + +#### Additional options to configure + +AC_ARG_WITH([profile], + [AC_HELP_STRING([--with-profile=PROFILE], + [use the predefined build profile, one of: dev, debug and release. + @<:@default=dev@:>@])], + [build_profile=${withval}], + [build_profile=dev]) + +case "${build_profile}" in + dev|debug|release) + ;; + *) + AC_MSG_ERROR([Unknown build profile --with-profile=${build_profile}]) + ;; +esac + +with_max_log_level="" +case "${build_profile}" in + release) + with_max_log_level="3" + ;; +esac + +if test -n "${with_max_log_level}"; then + AC_MSG_NOTICE([ignoring any EINA_LOG() with level greater than ${with_max_log_level}]) + AC_DEFINE_UNQUOTED([EINA_LOG_LEVEL_MAXIMUM], [${with_max_log_level}], [if set, logging is limited to this amount.]) +fi + + +#### Checks for compiler characteristics + +EFL_CHECK_COMPILER_FLAGS([EFL], [-Wall -Wextra -Wpointer-arith -Wno-missing-field-initializers -fvisibility=hidden -fdata-sections -ffunction-sections]) +EFL_CHECK_LINKER_FLAGS([EFL], [-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed]) +case "${build_profile}" in + dev) + EFL_CHECK_COMPILER_FLAGS([EFL], [-Wshadow]) + ;; +esac + + +#### Main dependency: emotion + +PKG_CHECK_MODULES([EMOTION], [emotion >= v_maj.v_min]) + +MODULE_ARCH=`pkg-config --variable=module_arch emotion` +if test -z "${MODULE_ARCH}"; then + EMOTION_VERSION=`pkg-config --modversion emotion | cut -d. -f1-3` + case "$host_os" in + mingw32ce*) + MODULE_ARCH="$host_os-$host_cpu" + ;; + *) + MODULE_ARCH="$host_os-$host_cpu-${EMOTION_VERSION}" + ;; + esac +fi + +EMOTION_GENERIC_PLAYERS_DIR=`pkg-config --variable=generic_players emotion` +if test -z "${EMOTION_GENERIC_PLAYERS_DIR}"; then + EMOTION_GENERIC_PLAYERS_DIR="`pkg-config --variable=libdir emotion`/emotion/generic_players" +fi +EMOTION_GENERIC_PLAYERS_DIR="${EMOTION_GENERIC_PLAYERS_DIR}/${MODULE_ARCH}" + +AC_MSG_CHECKING([where to install generic players]) +AC_MSG_RESULT([${EMOTION_GENERIC_PLAYERS_DIR}]) +AC_SUBST(EMOTION_GENERIC_PLAYERS_DIR) + +#### Players +EMOTION_GENERIC_PLAYER([VLC], [yes], [libvlc >= 0.9 eina >= 1.1.99]) + + +AC_CONFIG_FILES([ +Makefile +]) + +AC_OUTPUT + +echo +echo +echo +echo "------------------------------------------------------------------------" +echo "$PACKAGE_NAME $PACKAGE_VERSION" +echo "------------------------------------------------------------------------" +echo +echo "Configuration Options Summary:" +echo " Build Profile..........: ${build_profile}" +echo +echo "Players:" +echo " VLC....................: ${with_vlc}" +echo +echo "Compilation..............: make (or gmake)" +echo " CPPFLAGS...............: $CPPFLAGS" +echo " CFLAGS.................: $CFLAGS" +echo " CXXFLAGS...............: $CXXFLAGS" +echo " LDFLAGS................: $LDFLAGS" +echo +echo "Installation.............: make install (as root if needed, with 'su' or 'sudo')" +echo " prefix.................: $prefix" +echo " emotion generic players: ${EMOTION_GENERIC_PLAYERS_DIR}" +echo diff --git a/legacy/emotion_generic_players/m4/efl_compiler.m4 b/legacy/emotion_generic_players/m4/efl_compiler.m4 new file mode 100644 index 0000000000..6b98390e5c --- /dev/null +++ b/legacy/emotion_generic_players/m4/efl_compiler.m4 @@ -0,0 +1,98 @@ +dnl Copyright (C) 2012 Vincent Torri +dnl This code is public domain and can be freely used or copied. + +dnl Macro that check if compiler of linker flags are available + + +dnl Macro that checks for a compiler flag availability +dnl +dnl EFL_CHECK_COMPILER_FLAG(EFL, FLAG[, ACTION-IF-FOUND[ ,ACTION-IF-NOT-FOUND]]) +dnl AC_SUBST : EFL_CFLAGS (EFL being replaced by its value) + +AC_DEFUN([EFL_CHECK_COMPILER_FLAG], +[ +m4_pushdef([UPEFL], m4_translit([[$1]], [-a-z], [_A-Z])) +m4_pushdef([UP], m4_translit([[$2]], [-a-z], [_A-Z])) + +dnl store in options -Wfoo if -Wno-foo is passed +option=m4_bpatsubst([[$2]], [-Wno-], [-W]) + +CFLAGS_save="${CFLAGS}" +CFLAGS="${CFLAGS} ${option}" + +AC_LANG_PUSH([C]) +AC_MSG_CHECKING([whether the compiler supports $2]) + +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]])], + [have_flag="yes"], + [have_flag="no"]) +AC_MSG_RESULT([${have_flag}]) + +CFLAGS="${CFLAGS_save}" +AC_LANG_POP([C]) + +if test "x${have_flag}" = "xyes" ; then + UPEFL[_CFLAGS]="${UPEFL[_CFLAGS]} [$2]" +fi +AC_ARG_VAR(UPEFL[_CFLAGS], [preprocessor flags for $2]) +AC_SUBST(UPEFL[_CFLAGS]) + +m4_popdef([UP]) +m4_popdef([UPEFL]) +]) + +dnl Macro that iterates over a sequence of white separated flags +dnl and that call EFL_CHECK_COMPILER_FLAG() for each of these flags +dnl +dnl EFL_CHECK_COMPILER_FLAGS(EFL, FLAGS) + +AC_DEFUN([EFL_CHECK_COMPILER_FLAGS], +[ +m4_foreach_w([flag], [$2], [EFL_CHECK_COMPILER_FLAG([$1], m4_defn([flag]))]) +]) + + +dnl Macro that checks for a linker flag availability +dnl +dnl EFL_CHECK_LINKER_FLAG(EFL, FLAG[, ACTION-IF-FOUND[ ,ACTION-IF-NOT-FOUND]]) +dnl AC_SUBST : EFL_LDFLAGS (EFL being replaced by its value) + +AC_DEFUN([EFL_CHECK_LINKER_FLAG], +[ +m4_pushdef([UPEFL], m4_translit([[$1]], [-a-z], [_A-Z])) +m4_pushdef([UP], m4_translit([[$2]], [,-a-z], [__A-Z])) + +LDFLAGS_save="${LDFLAGS}" +LDFLAGS="${LDFLAGS} $2" + +AC_LANG_PUSH([C]) +AC_MSG_CHECKING([whether the linker supports $2]) + +AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]])], + [have_flag="yes"], + [have_flag="no"]) +AC_MSG_RESULT([${have_flag}]) + +LDFLAGS="${LDFLAGS_save}" +AC_LANG_POP([C]) + +if test "x${have_flag}" = "xyes" ; then + UPEFL[_LDFLAGS]="${UPEFL[_LDFLAGS]} [$2]" +fi +AC_SUBST(UPEFL[_LDFLAGS]) + +m4_popdef([UP]) +m4_popdef([UPEFL]) +]) + +dnl Macro that iterates over a sequence of white separated flags +dnl and that call EFL_CHECK_LINKER_FLAG() for each of these flags +dnl +dnl EFL_CHECK_LINKER_FLAGS(EFL, FLAGS) + +AC_DEFUN([EFL_CHECK_LINKER_FLAGS], +[ +m4_foreach_w([flag], [$2], [EFL_CHECK_LINKER_FLAG([$1], m4_defn([flag]))]) +]) diff --git a/legacy/emotion_generic_players/m4/emotion_generic_players.m4 b/legacy/emotion_generic_players/m4/emotion_generic_players.m4 new file mode 100644 index 0000000000..d852dbaa29 --- /dev/null +++ b/legacy/emotion_generic_players/m4/emotion_generic_players.m4 @@ -0,0 +1,37 @@ +dnl EMOTION_GENERIC_PLAYER(NAME, DEFAULT_STATE, [PKG_CONFIG_DEPS]) +dnl Does the following: +dnl * AC_ARG_WITH(NAME) +dnl * define with_name to yes or no +dnl * PKG_CHECK_MODULES(NAME, PKG_CONFIG_DEPS) +dnl * AC_DEFINE([HAVE_NAME]) +dnl * AM_CONDITIONAL([HAVE_NAME]) +AC_DEFUN([EMOTION_GENERIC_PLAYER], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl + +AC_ARG_WITH([DOWN], + [AC_HELP_STRING([--with-]m4_defn([DOWN]), + [build generic player ]m4_defn([UP])[. @<:@default=$2@:>@])], + [], [with_]m4_defn([DOWN])[="$2"]) + +if test "${with_[]m4_defn([DOWN])}" = "yes"; then + m4_ifval([$3], [dnl + PKG_CHECK_MODULES(m4_defn([UP]), [$3]) + ], [dnl + m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS}" + m4_defn([UP])_CFLAGS="${m4_defn([UP])_CFLAGS}" + AC_SUBST(m4_defn([UP])[_LIBS]) + AC_SUBST(m4_defn([UP])[_CFLAGS]) + ]) + + AC_SEARCH_LIBS([shm_open], [rt], [], [AC_MSG_ERROR([unable to find the shm_open() function])]) + if test "${ac_cv_search_shm_open}" != "none required"; then + m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS} ${ac_cv_search_shm_open}" + fi +fi +AM_CONDITIONAL([HAVE_]m4_defn([UP]), [test "$with_[]m4_defn([DOWN])" = "yes"]) + +m4_popdef([UP])dnl +m4_popdef([DOWN])dnl +]) diff --git a/legacy/emotion_generic_players/src/Makefile.am b/legacy/emotion_generic_players/src/Makefile.am deleted file mode 100644 index bbdd8c34b6..0000000000 --- a/legacy/emotion_generic_players/src/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ - -MAINTAINERCLEANFILES = Makefile.in - -SUBDIRS = - -if EMOTION_BUILD_GENERIC_VLC -SUBDIRS += vlc -endif diff --git a/legacy/emotion_generic_players/src/vlc/Makefile.am b/legacy/emotion_generic_players/src/vlc/Makefile.am deleted file mode 100644 index 5cda1b95b4..0000000000 --- a/legacy/emotion_generic_players/src/vlc/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I$(top_srcdir) \ --I$(top_srcdir)/src/lib \ --I$(top_srcdir)/src/modules \ --I$(top_srcdir)/src/modules/generic \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@GENERIC_VLC_CFLAGS@ - -internal_bindir = $(libdir)/emotion/utils -internal_bin_PROGRAMS = em_generic_vlc - -em_generic_vlc_SOURCES = emotion_generic_vlc.c -em_generic_vlc_DEPENDENCIES = $(top_srcdir)/src/modules/generic/Emotion_Generic_Plugin.h -em_generic_vlc_LDADD = @GENERIC_VLC_LIBS@ @EFL_SHM_OPEN_LIBS@ -lpthread diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index a20717303c..2bf441ee1f 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -181,7 +181,7 @@ _send_cmd_start(struct _App *app, int cmd) } static void -_send_cmd_finish(struct _App *app __UNUSED__) +_send_cmd_finish(struct _App *app EINA_UNUSED) { pthread_mutex_unlock(&_mutex_fd); } @@ -263,12 +263,12 @@ _lock(void *data, void **pixels) } static void -_unlock(void *data __UNUSED__, void *id __UNUSED__, void *const *pixels __UNUSED__) +_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) { } static void -_display(void *data, void *id __UNUSED__) +_display(void *data, void *id EINA_UNUSED) { struct _App *app = data; if (!app->playing) @@ -292,12 +292,12 @@ _tmp_lock(void *data, void **pixels) } static void -_tmp_unlock(void *data __UNUSED__, void *id __UNUSED__, void *const *pixels __UNUSED__) +_tmp_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) { } static void -_tmp_display(void *data __UNUSED__, void *id __UNUSED__) +_tmp_display(void *data EINA_UNUSED, void *id EINA_UNUSED) { } @@ -889,12 +889,12 @@ main(int argc, const char *argv[]) if (fds[0].revents & (POLLERR | POLLHUP | POLLNVAL)) { - ERR("error communicating with stdin", stderr); + ERR("error communicating with stdin"); break; } if (fds[1].revents & (POLLERR | POLLHUP | POLLNVAL)) { - ERR("error communicating with thread", stderr); + ERR("error communicating with thread"); break; } From 0ab6be0eb4e13c93016e7e110b920bdcccd26b0c Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 27 Feb 2013 12:12:43 +0000 Subject: [PATCH 036/141] emotion_generic_players: improve portability by using EFL infrastructure. SVN revision: 84391 --- legacy/emotion_generic_players/configure.ac | 2 +- .../src/vlc/emotion_generic_vlc.c | 1202 +++++++---------- 2 files changed, 521 insertions(+), 683 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index bbefa25ba3..e219d34199 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -108,7 +108,7 @@ AC_MSG_RESULT([${EMOTION_GENERIC_PLAYERS_DIR}]) AC_SUBST(EMOTION_GENERIC_PLAYERS_DIR) #### Players -EMOTION_GENERIC_PLAYER([VLC], [yes], [libvlc >= 0.9 eina >= 1.1.99]) +EMOTION_GENERIC_PLAYER([VLC], [yes], [libvlc >= 0.9 eina >= 1.1.99 ecore >= 1.7.99]) AC_CONFIG_FILES([ diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 2bf441ee1f..fb0c9004cd 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -21,6 +21,7 @@ #include #include +#include static int _em_vlc_log_dom = -1; #define ERR(...) EINA_LOG_DOM_ERR(_em_vlc_log_dom, __VA_ARGS__) @@ -30,313 +31,77 @@ static int _em_vlc_log_dom = -1; #define CRIT(...) EINA_LOG_DOM_CRIT(_em_vlc_log_dom, __VA_ARGS__) enum _Thread_Events { - EM_THREAD_POSITION_CHANGED, - EM_THREAD_PLAYBACK_STARTED, - EM_THREAD_PLAYBACK_STOPPED, - EM_THREAD_LAST + EM_THREAD_POSITION_CHANGED, + EM_THREAD_PLAYBACK_STARTED, + EM_THREAD_PLAYBACK_STOPPED, + EM_THREAD_LAST }; +typedef struct _App App; struct _App { - Emotion_Generic_Video_Shared *vs; - Emotion_Generic_Video_Frame vf; - libvlc_instance_t *libvlc; - libvlc_media_t *m; - libvlc_media_player_t *mp; - libvlc_event_manager_t *event_mgr; - libvlc_event_manager_t *mevent_mgr; - char *filename; - char *subtitle_path; - char *shmname; - void *tmpbuffer; - int w, h; - int fd_read; // read commands from theads here - int fd_write; // write commands from threads here - int em_read; // read commands from emotion here - int em_write; // write commands to emotion here - int size_sent; - int opening; - int closing; - int playing; + Emotion_Generic_Video_Shared *vs; + Emotion_Generic_Video_Frame vf; + libvlc_instance_t *libvlc; + libvlc_media_t *m; + libvlc_media_player_t *mp; + libvlc_event_manager_t *event_mgr; + libvlc_event_manager_t *mevent_mgr; + char *filename; + char *subtitle_path; + char *shmname; + void *tmpbuffer; + int w, h; + // Use Ecore infra for that instead + Ecore_Pipe *fd_read; // read commands from theads here + Ecore_Pipe *fd_write; // write commands from threads here + /* int em_read; // read commands from emotion here */ + /* int em_write; // write commands to emotion here */ + int size_sent; + int opening; + int closing; + int playing; + + int last_order; + + Eina_Bool inited; }; -static pthread_mutex_t _mutex_fd = PTHREAD_MUTEX_INITIALIZER; - -int -_em_read_safe(int fd, void *buf, ssize_t size) +Eina_Bool +exit_func(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *ev EINA_UNUSED) { - ssize_t todo; - char *p; - - todo = size; - p = buf; - - while (todo > 0) - { - ssize_t r; - - r = read(fd, p, todo); - if (r > 0) - { - todo -= r; - p += r; - } - else if (r == 0) - return 0; - else - { - if (errno == EINTR || errno == EAGAIN) - continue; - else - { - ERR("could not read from fd %d: %s", fd, strerror(errno)); - return 0; - } - } - } - - return 1; + ecore_main_loop_quit(); + return EINA_TRUE; } -int -_em_write_safe(int fd, const void *buf, ssize_t size) +#define SEND_CMD_PARAM(app, i) \ + if ((app)->fd_write) \ + if (!ecore_pipe_write((app)->fd_write, &(i), sizeof((i)))) \ + ecore_main_loop_quit(); + +static void +_send_cmd(App *app, int cmd) { - ssize_t todo; - const char *p; - - todo = size; - p = buf; - - while (todo > 0) - { - ssize_t r; - - r = write(fd, p, todo); - if (r > 0) - { - todo -= r; - p += r; - } - else if (r == 0) - return 0; - else - { - if (errno == EINTR || errno == EAGAIN) - continue; - else - { - ERR("could not write to fd %d: %s", fd, strerror(errno)); - return 0; - } - } - } - - return 1; -} - -static int -_em_str_read(int fd, char **str) -{ - int size; - int r; - char buf[PATH_MAX]; - - r = _em_read_safe(fd, &size, sizeof(size)); - if (!r) - { - *str = NULL; - return 0; - } - - if (!size) - { - *str = NULL; - return 1; - } - - r = _em_read_safe(fd, buf, size); - if (!r) - { - *str = NULL; - return 0; - } - - *str = strdup(buf); - return 1; -} - -static int -_em_cmd_read(struct _App *app) -{ - int cmd; - _em_read_safe(app->em_read, &cmd, sizeof(cmd)); - - return cmd; + if (app->fd_write) + if (!ecore_pipe_write(app->fd_write, &cmd, sizeof(cmd))) + ecore_main_loop_quit(); } static void -_send_cmd_start(struct _App *app, int cmd) -{ - pthread_mutex_lock(&_mutex_fd); - _em_write_safe(app->em_write, &cmd, sizeof(cmd)); -} - -static void -_send_cmd_finish(struct _App *app EINA_UNUSED) -{ - pthread_mutex_unlock(&_mutex_fd); -} - -static void -_send_cmd(struct _App *app, int cmd) -{ - _send_cmd_start(app, cmd); - _send_cmd_finish(app); -} - -static void -_send_cmd_str(struct _App *app, const char *str) +_send_cmd_str(App *app, const char *str) { int len; - if (str) - len = strlen(str) + 1; - else - len = 0; - _em_write_safe(app->em_write, &len, sizeof(len)); - _em_write_safe(app->em_write, str, len); -} -#define SEND_CMD_PARAM(app, i) \ - _em_write_safe((app)->em_write, &(i), sizeof((i))); - -static void -_send_resize(struct _App *app, int width, int height) -{ - _send_cmd_start(app, EM_RESULT_FRAME_SIZE); - SEND_CMD_PARAM(app, width); - SEND_CMD_PARAM(app, height); - _send_cmd_finish(app); + len = str ? strlen(str) + 1 : 0; + if (app->fd_write) + if (!ecore_pipe_write(app->fd_write, &len, sizeof(len))) + ecore_main_loop_quit(); + if (app->fd_write) + if (!ecore_pipe_write(app->fd_write, str, len)) + ecore_main_loop_quit(); } static void -_send_length_changed(struct _App *app, const struct libvlc_event_t *ev) -{ - float length = ev->u.media_player_length_changed.new_length; - length /= 1000; - - _send_cmd_start(app, EM_RESULT_LENGTH_CHANGED); - SEND_CMD_PARAM(app, length); - _send_cmd_finish(app); -} - -static void -_send_time_changed(struct _App *app, const struct libvlc_event_t *ev) -{ - float new_time = ev->u.media_player_time_changed.new_time; - new_time /= 1000; - if (app->vs->frame_drop > 1) - return; - _send_cmd_start(app, EM_RESULT_POSITION_CHANGED); - SEND_CMD_PARAM(app, new_time); - _send_cmd_finish(app); -} - -static void -_send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev) -{ - int seekable = ev->u.media_player_seekable_changed.new_seekable; - _send_cmd_start(app, EM_RESULT_SEEKABLE_CHANGED); - SEND_CMD_PARAM(app, seekable); - _send_cmd_finish(app); -} - -static void * -_lock(void *data, void **pixels) -{ - struct _App *app = data; - - if (app->playing) - *pixels = app->vf.frames[app->vs->frame.player]; - else - *pixels = NULL; - - return NULL; // picture identifier, not needed here -} - -static void -_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) -{ -} - -static void -_display(void *data, void *id EINA_UNUSED) -{ - struct _App *app = data; - if (!app->playing) - return; - - sem_wait(&app->vs->lock); - app->vs->frame.last = app->vs->frame.player; - app->vs->frame.player = app->vs->frame.next; - app->vs->frame.next = app->vs->frame.last; - if (!app->vs->frame_drop++) - _send_cmd(app, EM_RESULT_FRAME_NEW); - sem_post(&app->vs->lock); -} - -static void * -_tmp_lock(void *data, void **pixels) -{ - struct _App *app = data; - *pixels = app->tmpbuffer; - return NULL; -} - -static void -_tmp_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) -{ -} - -static void -_tmp_display(void *data EINA_UNUSED, void *id EINA_UNUSED) -{ -} - -static void -_play(struct _App *app) -{ - float pos; - - if (!app->mp) - return; - - _em_read_safe(app->em_read, &pos, sizeof(pos)); - - if (app->playing) - { - libvlc_media_player_set_pause(app->mp, 0); - } - else - { - libvlc_time_t new_time = pos * 1000; - libvlc_media_player_set_time(app->mp, new_time); - libvlc_media_player_play(app->mp); - - if (app->subtitle_path) - libvlc_video_set_subtitle_file(app->mp, app->subtitle_path); - - app->playing = 1; - } -} - -static void -_stop(struct _App *app) -{ - if (app->mp) - libvlc_media_player_set_pause(app->mp, 1); -} - -static void -_send_file_closed(struct _App *app) +_send_file_closed(App *app) { app->closing = 0; emotion_generic_shm_free(app->vs); @@ -344,304 +109,29 @@ _send_file_closed(struct _App *app) } static void -_send_file_set(struct _App *app) +_send_time_changed(struct _App *app, const struct libvlc_event_t *ev) { - if (app->opening) - _send_cmd(app, EM_RESULT_FILE_SET); + float new_time = ev->u.media_player_time_changed.new_time; - if (app->closing) - _send_file_closed(app); -} - -static void -_event_cb(const struct libvlc_event_t *ev, void *data) -{ - struct _App *app = data; - int thread_event; - - switch (ev->type) { - case libvlc_MediaPlayerTimeChanged: - _send_time_changed(app, ev); - break; - case libvlc_MediaPlayerPositionChanged: - thread_event = EM_THREAD_POSITION_CHANGED; - write(app->fd_write, &thread_event, sizeof(thread_event)); - break; - case libvlc_MediaPlayerLengthChanged: - _send_length_changed(app, ev); - break; - case libvlc_MediaPlayerSeekableChanged: - _send_seekable_changed(app, ev); - break; - case libvlc_MediaPlayerPlaying: - _send_resize(app, app->w, app->h); - thread_event = EM_THREAD_PLAYBACK_STARTED; - write(app->fd_write, &thread_event, sizeof(thread_event)); - break; - case libvlc_MediaPlayerStopped: - _send_file_set(app); - break; - case libvlc_MediaPlayerEndReached: - thread_event = EM_THREAD_PLAYBACK_STOPPED; - write(app->fd_write, &thread_event, sizeof(thread_event)); - break; - } -} - -static void -_subtitle_set(struct _App *app) -{ - _em_str_read(app->em_read, &app->subtitle_path); -} - -static void -_file_set(struct _App *app) -{ - if (app->opening) - { - libvlc_media_release(app->m); - libvlc_media_player_release(app->mp); - free(app->filename); - } - - _em_str_read(app->em_read, &app->filename); - - app->m = libvlc_media_new_path(app->libvlc, app->filename); - if (!app->m) - { - ERR("could not open path: \"%s\"", app->filename); - return; - } - - app->mp = libvlc_media_player_new_from_media(app->m); - if (!app->mp) - { - ERR("could not create new player from media."); - return; - } - - app->opening = 1; - libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); - libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app); - app->event_mgr = libvlc_media_player_event_manager(app->mp); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, - _event_cb, app); - - app->mevent_mgr = libvlc_media_event_manager(app->m); - - app->tmpbuffer = malloc(sizeof(char) * DEFAULTWIDTH * DEFAULTHEIGHT * 4); - libvlc_audio_set_mute(app->mp, 1); - libvlc_media_player_play(app->mp); -} - -static void -_position_set(struct _App *app) -{ - if (!app->mp) + new_time /= 1000; + if (app->vs->frame_drop > 1) return; - - float position; - _em_read_safe(app->em_read, &position, sizeof(position)); - - libvlc_time_t new_time = position * 1000; - libvlc_media_player_set_time(app->mp, new_time); + _send_cmd(app, EM_RESULT_POSITION_CHANGED); + SEND_CMD_PARAM(app, new_time); } static void -_speed_set(struct _App *app) +_send_resize(struct _App *app, int width, int height) { - float rate; - - if (!app->mp) - return; - - _em_read_safe(app->em_read, &rate, sizeof(rate)); - - libvlc_media_player_set_rate(app->mp, rate); -} - -static void -_mute_set(struct _App *app) -{ - int mute; - - if (!app->mp) - return; - - _em_read_safe(app->em_read, &mute, sizeof(mute)); - - libvlc_audio_set_mute(app->mp, mute); -} - -static void -_volume_set(struct _App *app) -{ - float volume; - int vol; - - if (!app->mp) - return; - - _em_read_safe(app->em_read, &volume, sizeof(volume)); - vol = volume * 100; - - libvlc_audio_set_volume(app->mp, vol); -} - -static void -_spu_track_set(struct _App *app) -{ - int track; - - _em_read_safe(app->em_read, &track, sizeof(track)); - - libvlc_video_set_spu(app->mp, track); -} - -static void -_audio_track_set(struct _App *app) -{ - int track; - - _em_read_safe(app->em_read, &track, sizeof(track)); - - libvlc_audio_set_track(app->mp, track); -} - -static void -_video_track_set(struct _App *app) -{ - int track; - - _em_read_safe(app->em_read, &track, sizeof(track)); - - libvlc_video_set_track(app->mp, track); -} - -static void -_file_set_done(struct _App *app) -{ - int r; - - app->opening = 0; - - r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); - if (!r) - { - free(app->filename); - libvlc_media_release(app->m); - libvlc_media_player_release(app->mp); - app->filename = NULL; - app->m = NULL; - app->mp = NULL; - _send_cmd_start(app, EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(app, r); - _send_cmd_finish(app); - } - app->w = app->vs->width; - app->h = app->vs->height; - libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); - libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); - - - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, - _event_cb, app); - - libvlc_audio_set_mute(app->mp, 0); - - _send_cmd_start(app, EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(app, r); - _send_cmd_finish(app); -} - -static void -_file_close(struct _App *app) -{ - app->playing = 0; - if (app->opening) - goto release_resources; - - if (libvlc_media_player_get_state(app->mp) != libvlc_Playing) - { - _send_file_closed(app); - return; - } - - app->closing = 1; - -release_resources: - libvlc_media_player_stop(app->mp); - if (app->filename) - free(app->filename); - if (app->mp) - { - libvlc_media_release(app->m); - libvlc_media_player_release(app->mp); - free(app->tmpbuffer); - } -} - -static void -_process_emotion_commands(struct _App *app) -{ - int cmd = _em_cmd_read(app); - switch (cmd) { - case EM_CMD_FILE_SET: - _file_set(app); - break; - case EM_CMD_FILE_SET_DONE: - _file_set_done(app); - break; - case EM_CMD_SUBTITLE_SET: - _subtitle_set(app); - break; - case EM_CMD_FILE_CLOSE: - _file_close(app); - break; - case EM_CMD_PLAY: - _play(app); - break; - case EM_CMD_STOP: - _stop(app); - break; - case EM_CMD_POSITION_SET: - _position_set(app); - break; - case EM_CMD_SPEED_SET: - _speed_set(app); - break; - case EM_CMD_AUDIO_MUTE_SET: - _mute_set(app); - break; - case EM_CMD_VOLUME_SET: - _volume_set(app); - break; - case EM_CMD_SPU_TRACK_SET: - _spu_track_set(app); - break; - case EM_CMD_AUDIO_TRACK_SET: - _audio_track_set(app); - break; - case EM_CMD_VIDEO_TRACK_SET: - _video_track_set(app); - break; - }; + _send_cmd(app, EM_RESULT_FRAME_SIZE); + SEND_CMD_PARAM(app, width); + SEND_CMD_PARAM(app, height); } static void _send_track_info(struct _App *app, int cmd, int current, int count, libvlc_track_description_t *desc) { - _send_cmd_start(app, cmd); + _send_cmd(app, cmd); SEND_CMD_PARAM(app, current); SEND_CMD_PARAM(app, count); while (desc) @@ -652,7 +142,6 @@ _send_track_info(struct _App *app, int cmd, int current, int count, libvlc_track _send_cmd_str(app, name); desc = desc->p_next; } - _send_cmd_finish(app); } static void @@ -688,7 +177,7 @@ _send_all_meta_info(struct _App *app) { const char *meta; - _send_cmd_start(app, EM_RESULT_META_INFO); + _send_cmd(app, EM_RESULT_META_INFO); /* * Will send in this order: title, artist, album, year, @@ -710,18 +199,29 @@ _send_all_meta_info(struct _App *app) _send_cmd_str(app, meta); meta = libvlc_media_get_meta(app->m, libvlc_meta_TrackNumber); _send_cmd_str(app, meta); - _send_cmd_finish(app); +} + +static Eina_Bool +_loaded_idler(void *data) +{ + App *app = data; + + if (app->mp) + libvlc_media_player_stop(app->mp); + + return EINA_FALSE; } static void -_position_changed(struct _App *app) +_position_changed(App *app) { + int r; + unsigned int w, h; + if (!app->opening) return; /* sending size info only once */ - int r; - unsigned int w, h; r = libvlc_video_get_size(app->mp, 0, &w, &h); if (r < 0) { @@ -741,45 +241,448 @@ _position_changed(struct _App *app) /* sending meta info */ _send_all_meta_info(app); - if (app->size_sent) - libvlc_media_player_stop(app->mp); + ecore_idler_add(_loaded_idler, app); } static void -_process_thread_events(struct _App *app) +_send_length_changed(struct _App *app, const struct libvlc_event_t *ev) { - int event; - size_t size; + float length = ev->u.media_player_length_changed.new_length; + length /= 1000; - size = read(app->fd_read, &event, sizeof(event)); - if (size != sizeof(event)) - { - ERR("player: problem when reading thread event. size = %zd", size); - return; - } + _send_cmd(app, EM_RESULT_LENGTH_CHANGED); + SEND_CMD_PARAM(app, length); +} - switch (event) { - case EM_THREAD_POSITION_CHANGED: +static void +_send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev) +{ + int seekable = ev->u.media_player_seekable_changed.new_seekable; + + _send_cmd(app, EM_RESULT_SEEKABLE_CHANGED); + SEND_CMD_PARAM(app, seekable); +} + +static void +_send_file_set(struct _App *app) +{ + if (app->opening) + _send_cmd(app, EM_RESULT_FILE_SET); + + if (app->closing) + _send_file_closed(app); +} + +static void +_event_cb(const struct libvlc_event_t *ev, void *data) +{ + App *app = data; + + ecore_thread_main_loop_begin(); + switch (ev->type) { + case libvlc_MediaPlayerTimeChanged: + _send_time_changed(app, ev); + break; + case libvlc_MediaPlayerPositionChanged: _position_changed(app); break; - case EM_THREAD_PLAYBACK_STARTED: + case libvlc_MediaPlayerLengthChanged: + _send_length_changed(app, ev); + break; + case libvlc_MediaPlayerSeekableChanged: + _send_seekable_changed(app, ev); + break; + case libvlc_MediaPlayerPlaying: + _send_resize(app, app->w, app->h); _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; - case EM_THREAD_PLAYBACK_STOPPED: + case libvlc_MediaPlayerStopped: + _send_file_set(app); + break; + case libvlc_MediaPlayerEndReached: app->playing = 0; _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); break; } + ecore_thread_main_loop_end(); +} + +static void * +_tmp_lock(void *data, void **pixels) +{ + App *app = data; + *pixels = app->tmpbuffer; + return NULL; +} + +static void +_tmp_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) +{ +} + +static void +_tmp_display(void *data EINA_UNUSED, void *id EINA_UNUSED) +{ +} + +static void +_file_set(App *app) +{ + app->m = libvlc_media_new_path(app->libvlc, app->filename); + if (!app->m) + { + ERR("could not open path: \"%s\"", app->filename); + return; + } + + app->mp = libvlc_media_player_new_from_media(app->m); + if (!app->mp) + { + ERR("could not create new player from media."); + return; + } + + app->opening = 1; + libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); + libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app); + app->event_mgr = libvlc_media_player_event_manager(app->mp); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, + _event_cb, app); + + app->mevent_mgr = libvlc_media_event_manager(app->m); + + app->tmpbuffer = malloc(sizeof(char) * DEFAULTWIDTH * DEFAULTHEIGHT * 4); + libvlc_audio_set_mute(app->mp, 1); + libvlc_media_player_play(app->mp); +} + +static void * +_lock(void *data, void **pixels) +{ + App *app = data; + + if (app->playing) + *pixels = app->vf.frames[app->vs->frame.player]; + else + *pixels = NULL; + + return NULL; // picture identifier, not needed here +} + +static void +_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) +{ +} + +static void +_display(void *data, void *id EINA_UNUSED) +{ + App *app = data; + + if (!app->playing) + return; + + eina_semaphore_lock(&app->vs->lock); + app->vs->frame.last = app->vs->frame.player; + app->vs->frame.player = app->vs->frame.next; + app->vs->frame.next = app->vs->frame.last; + if (!app->vs->frame_drop++) + _send_cmd(app, EM_RESULT_FRAME_NEW); + eina_semaphore_release(&app->vs->lock, 1); +} + +static void +_file_set_done(App *app) +{ + int r; + + app->opening = 0; + + r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); + if (!r) + { + free(app->filename); + libvlc_media_release(app->m); + libvlc_media_player_release(app->mp); + app->filename = NULL; + app->m = NULL; + app->mp = NULL; + + _send_cmd(app, EM_RESULT_FILE_SET_DONE); + SEND_CMD_PARAM(app, r); + } + app->w = app->vs->width; + app->h = app->vs->height; + libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); + libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); + + + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, + _event_cb, app); + + libvlc_audio_set_mute(app->mp, 0); + + _send_cmd(app, EM_RESULT_FILE_SET_DONE); + SEND_CMD_PARAM(app, r); +} + +static void +_file_close(App *app) +{ + app->playing = 0; + if (app->opening) + goto release_resources; + + if (libvlc_media_player_get_state(app->mp) != libvlc_Playing) + { + _send_file_closed(app); + return; + } + + app->closing = 1; + +release_resources: + libvlc_media_player_stop(app->mp); + if (app->filename) + free(app->filename); + if (app->mp) + { + libvlc_media_release(app->m); + libvlc_media_player_release(app->mp); + free(app->tmpbuffer); + } +} + +static void +_stop(App *app) +{ + if (app->mp) + libvlc_media_player_set_pause(app->mp, 1); +} + +static void +_play(App *app, float pos) +{ + if (!app->mp) + return; + + if (app->playing) + { + libvlc_media_player_set_pause(app->mp, 0); + } + else + { + libvlc_time_t new_time = pos * 1000; + libvlc_media_player_set_time(app->mp, new_time); + libvlc_media_player_play(app->mp); + + if (app->subtitle_path) + libvlc_video_set_subtitle_file(app->mp, app->subtitle_path); + + app->playing = 1; + } +} + +static void +_position_set(struct _App *app, float position) +{ + libvlc_time_t new_time; + + if (!app->mp) + return; + + new_time = position * 1000; + libvlc_media_player_set_time(app->mp, new_time); +} + +static void +_speed_set(App *app, float rate) +{ + if (!app->mp) + return; + + libvlc_media_player_set_rate(app->mp, rate); +} + +static void +_mute_set(App *app, int mute) +{ + if (!app->mp) + return; + + libvlc_audio_set_mute(app->mp, mute); +} + +static void +_volume_set(App *app, float volume) +{ + int vol; + + if (!app->mp) + return; + + vol = volume * 100; + + libvlc_audio_set_volume(app->mp, vol); +} + +static void +_spu_track_set(App *app, int track) +{ + libvlc_video_set_spu(app->mp, track); +} + +static void +_audio_track_set(App *app, int track) +{ + libvlc_audio_set_track(app->mp, track); +} + +static void +_video_track_set(App *app, int track) +{ + libvlc_video_set_track(app->mp, track); +} + +static void +_remote_command(void *data, void *buffer, unsigned int nbyte) +{ + App *app = data; + + if (nbyte == 0) + { + fprintf(stderr, "death is comming\n"); + ecore_main_loop_quit(); + return ; + } + + if (app->last_order == EM_CMD_LAST) + { + if (nbyte != sizeof (int)) + { + ERR("didn't receive a valid command from emotion (%i) !", nbyte); + ecore_main_loop_quit(); + return ; + } + + app->last_order = *((int*) buffer); + + if (!app->inited && + app->last_order != EM_CMD_INIT) + { + ERR("wrong init command!"); + ecore_main_loop_quit(); + return ; + } + + switch (app->last_order) + { + case EM_CMD_FILE_SET: + if (app->opening) + { + libvlc_media_release(app->m); + libvlc_media_player_release(app->mp); + free(app->filename); + app->opening = 0; + } + break; + case EM_CMD_FILE_SET_DONE: + _file_set_done(app); + app->last_order = EM_CMD_LAST; + break; + case EM_CMD_FILE_CLOSE: + _file_close(app); + app->last_order = EM_CMD_LAST; + break; + } + } + else + { + switch (app->last_order) + { + case EM_CMD_INIT: + app->shmname = strdup(buffer); + app->inited = EINA_TRUE; + _send_cmd(app, EM_RESULT_INIT); + break; + case EM_CMD_FILE_SET: + app->filename = strdup(buffer); + _file_set(app); + break; + case EM_CMD_SUBTITLE_SET: + app->subtitle_path = strdup(buffer); + break; + case EM_CMD_PLAY: + _play(app, *(float*) buffer); + break; + case EM_CMD_STOP: + _stop(app); + break; + case EM_CMD_POSITION_SET: + _position_set(app, *(float*) buffer); + break; + case EM_CMD_SPEED_SET: + _speed_set(app, *(float*) buffer); + break; + case EM_CMD_AUDIO_MUTE_SET: + _mute_set(app, *(int*) buffer); + break; + case EM_CMD_VOLUME_SET: + _volume_set(app, *(float*) buffer); + break; + case EM_CMD_SPU_TRACK_SET: + _spu_track_set(app, *(int*) buffer); + break; + case EM_CMD_AUDIO_TRACK_SET: + _audio_track_set(app, *(int*) buffer); + break; + case EM_CMD_VIDEO_TRACK_SET: + _video_track_set(app, *(int*) buffer); + break; + } + app->last_order = EM_CMD_LAST; + } +} + +void +_dummy(void *data EINA_UNUSED, void *buffer EINA_UNUSED, unsigned int nbyte EINA_UNUSED) +{ + /* This function is useless for the pipe we use to send message back to emotion, + but still needed */ } int main(int argc, const char *argv[]) { - struct _App app; - struct pollfd fds[3]; - int tpipe[2]; // pipe for comunicating events from threads + App app; + Ecore_Event_Handler *hld; char cwidth[64], cheight[64], cpitch[64], chroma[64]; - char buf[64]; + int vlc_argc; + + const char *vlc_argv[] = + { + "--quiet", + "--vout", + "vmem", + "--vmem-width", + cwidth, + "--vmem-height", + cheight, + "--vmem-pitch", + cpitch, + "--vmem-chroma", + chroma + }; if (!eina_init()) { @@ -798,21 +701,6 @@ main(int argc, const char *argv[]) if (!eina_log_domain_level_check(_em_vlc_log_dom, EINA_LOG_LEVEL_WARN)) eina_log_domain_level_set("emotion_generic_vlc", EINA_LOG_LEVEL_WARN); - const char *vlc_argv[] = - { - "--quiet", - "--vout", - "vmem", - "--vmem-width", - cwidth, - "--vmem-height", - cheight, - "--vmem-pitch", - cpitch, - "--vmem-chroma", - chroma - }; - if (argc < 3) { ERR("missing parameters."); @@ -820,25 +708,20 @@ main(int argc, const char *argv[]) goto error; } - app.em_read = atoi(argv[1]); - app.em_write = atoi(argv[2]); + ecore_init(); - int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); + app.fd_read = ecore_pipe_full_add(_remote_command, &app, + atoi(argv[1]), -1, EINA_FALSE, EINA_FALSE); + app.fd_write = ecore_pipe_full_add(_dummy, NULL, + -1, atoi(argv[2]), EINA_FALSE, EINA_FALSE); + + vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); snprintf(cwidth, sizeof(cwidth), "%d", DEFAULTWIDTH); snprintf(cheight, sizeof(cheight), "%d", DEFAULTHEIGHT); snprintf(cpitch, sizeof(cpitch), "%d", DEFAULTWIDTH * 4); snprintf(chroma, sizeof(chroma), "RV32"); - /* - * Naughty xattr in emotion uses ecore_thread to run its thing, this - * may leave emotion's reference count high and it won't kill us... - * letting us play the video in the background. not good. - * - * prctl(PR_SET_PDEATHSIG) is a linux only thing. Need to find ways - * to do it on other platforms. Until then leave it breaking on - * such platforms so people port it instead of ignoring. - */ - prctl(PR_SET_PDEATHSIG, SIGHUP); + hld = ecore_event_handler_add(ECORE_EVENT_SIGNAL_HUP, exit_func, NULL); app.libvlc = libvlc_new(vlc_argc, vlc_argv); app.mp = NULL; @@ -850,63 +733,18 @@ main(int argc, const char *argv[]) app.opening = 0; app.playing = 0; app.closing = 0; + app.last_order = EM_CMD_LAST; + app.inited = EINA_FALSE; - if (_em_cmd_read(&app) != EM_CMD_INIT) - { - ERR("wrong init command!"); - goto error; - } - - int size; - _em_read_safe(app.em_read, &size, sizeof(size)); - _em_read_safe(app.em_read, buf, size); - app.shmname = strdup(buf); - - _send_cmd(&app, EM_RESULT_INIT); - - pipe(tpipe); - app.fd_read = tpipe[0]; - app.fd_write = tpipe[1]; - fds[0].fd = app.em_read; - fds[0].events = POLLIN; - fds[1].fd = app.fd_read; - fds[1].events = POLLIN; - fds[2].fd = STDERR_FILENO; - fds[2].events = 0; - - while (1) - { - int r; - - r = poll(fds, 3, -1); - if (r == 0) - continue; - else if (r < 0) - { - ERR("an error ocurred on poll(): %s", strerror(errno)); - break; - } - - if (fds[0].revents & (POLLERR | POLLHUP | POLLNVAL)) - { - ERR("error communicating with stdin"); - break; - } - if (fds[1].revents & (POLLERR | POLLHUP | POLLNVAL)) - { - ERR("error communicating with thread"); - break; - } - - if (fds[0].revents & POLLIN) - _process_emotion_commands(&app); - if (fds[1].revents & POLLIN) - _process_thread_events(&app); - if (fds[2].revents & (POLLERR | POLLHUP | POLLNVAL)) - break; - } + ecore_main_loop_begin(); libvlc_release(app.libvlc); + + ecore_event_handler_del(hld); + + ecore_shutdown(); + eina_shutdown(); + return 0; error: From ef31669c3d8d55b96f13872ff57fe847ea596ee0 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Tue, 26 Mar 2013 08:00:20 +0900 Subject: [PATCH 037/141] .gitignore: added git ignores. --- legacy/emotion_generic_players/.gitignore | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 legacy/emotion_generic_players/.gitignore diff --git a/legacy/emotion_generic_players/.gitignore b/legacy/emotion_generic_players/.gitignore new file mode 100644 index 0000000000..e50b1f1cc8 --- /dev/null +++ b/legacy/emotion_generic_players/.gitignore @@ -0,0 +1,23 @@ +INSTALL +Makefile +Makefile.in +aclocal.m4 +autom4te.cache/ +compile +config.cache +config.guess +config.h +config.h.in +config.h.in~ +config.log +config.status +config.sub +configure +depcomp +install-sh +missing +src/vlc/.deps/ +src/vlc/.dirstamp +src/vlc/src_vlc_vlc-emotion_generic_vlc.o +src/vlc/vlc +stamp-h1 From 0d0475fe7c0b3379b220e3de9737422796f3cbb9 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 7 Jun 2013 19:03:12 +0900 Subject: [PATCH 038/141] add pkgbuild --- legacy/emotion_generic_players/configure.ac | 1 + .../pkgbuild/PKGBUILD.in | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 legacy/emotion_generic_players/pkgbuild/PKGBUILD.in diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index e219d34199..da0012b021 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -113,6 +113,7 @@ EMOTION_GENERIC_PLAYER([VLC], [yes], [libvlc >= 0.9 eina >= 1.1.99 ecore >= 1.7. AC_CONFIG_FILES([ Makefile +pkgbuild/PKGBUILD ]) AC_OUTPUT diff --git a/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in b/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in new file mode 100644 index 0000000000..6d46478b59 --- /dev/null +++ b/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in @@ -0,0 +1,40 @@ +# Maintainer: Enlightenment Developers +pkgname=('emotion_generic_players') +pkgver=@VERSION@ +pkgrel=1 +pkgdesc="Emotion external binary executable players - GIT development snapshot" +arch=('i686' 'x86_64' 'arm') +url="http://www.enlightenment.org" +license=('BSD') +makedepends=() +depends=('vlc' 'libdvdcss' 'libbluray' 'flac' 'vcdimager' 'libcdio' + 'ttf-freefont' 'ttf-dejavu' 'opus' 'libssh2') +provides=("emotion_generic_players=$pkgver") +conflicts=('emotion_generic_players-svn') +options=('strip' 'zipman' '!libtool' 'debug') +buildflags="-O2 -g -fvisibility=hidden -fomit-frame-pointer" +build() { + export LDFLAGS="" + cd "../.." + make clean distclean + ./configure --prefix=/usr \ + --disable-static + make +} + +#check() { +# cd "../.." +# make -k check +#} + +package() { + cd "../.." + rm -rf $pkgdir/usr + make -j1 DESTDIR="$pkgdir/" install + install -Dm644 README $pkgdir/usr/share/$pkgname/README + install -Dm644 NEWS $pkgdir/usr/share/$pkgname/NEWS + install -Dm644 ChangeLog $pkgdir/usr/share/$pkgname/ChangeLog + install -Dm644 AUTHORS $pkgdir/usr/share/$pkgname/AUTHORS + install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING + ln -s ../licenses/$pkgname/COPYING $pkgdir/usr/share/$pkgname/COPYING +} From b13cadc651a9551a67ab6270ec37b5d7a175f790 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 7 Jun 2013 19:10:54 +0900 Subject: [PATCH 039/141] update pkgbuild --- legacy/emotion_generic_players/pkgbuild/PKGBUILD.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in b/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in index 6d46478b59..6082a1778e 100644 --- a/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in +++ b/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in @@ -9,7 +9,7 @@ license=('BSD') makedepends=() depends=('vlc' 'libdvdcss' 'libbluray' 'flac' 'vcdimager' 'libcdio' 'ttf-freefont' 'ttf-dejavu' 'opus' 'libssh2') -provides=("emotion_generic_players=$pkgver") +provides=("emotion_generic_players=$pkgver" 'emotion_generic_players-svn') conflicts=('emotion_generic_players-svn') options=('strip' 'zipman' '!libtool' 'debug') buildflags="-O2 -g -fvisibility=hidden -fomit-frame-pointer" From ad82dc2a76039ade514abdd7aee15260added92c Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 7 Jun 2013 20:08:51 +0900 Subject: [PATCH 040/141] update gitignore --- legacy/emotion_generic_players/.gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/legacy/emotion_generic_players/.gitignore b/legacy/emotion_generic_players/.gitignore index e50b1f1cc8..bd0957f9cc 100644 --- a/legacy/emotion_generic_players/.gitignore +++ b/legacy/emotion_generic_players/.gitignore @@ -1,3 +1,4 @@ +*~ INSTALL Makefile Makefile.in @@ -21,3 +22,7 @@ src/vlc/.dirstamp src/vlc/src_vlc_vlc-emotion_generic_vlc.o src/vlc/vlc stamp-h1 +pkgbuild/PKGBUILD +pkgbuild/pkg +pkgbuild/src +pkgbuild/*.tar.xz From 77b2e883874c7a42dbe9915e43e6fd922505aba9 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 7 Jun 2013 20:26:53 +0900 Subject: [PATCH 041/141] fix configure.ac for to be consistent with other efl and use git revlist... --- legacy/emotion_generic_players/configure.ac | 25 +++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index da0012b021..f97a392c48 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,23 +1,24 @@ +##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## +##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [7]) m4_define([v_mic], [99]) - -dnl m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n'])) -m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))]) - -#### FIXME: i am sure that we can do some m4 to automagically do the stuff below for release and snapshots - +m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) - -m4_define([v_rel], []) ##-- When doing snapshots - change soname. remove dnl on below line -dnl m4_define([relname], [ver-pre-svn-07]) +dnl m4_define([relname], [ver-pre-svn-05]) dnl m4_define([v_rel], [-release relname]) +##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## +m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], +[m4_define([v_ver], [v_maj.v_min.v_mic])]) +m4_define([lt_cur], m4_eval(v_maj + v_min)) +m4_define([lt_rev], v_mic) +m4_define([lt_age], v_min) +##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## +##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -m4_ifdef([v_rev], [m4_define([proj_version], [v_maj.v_min.v_mic.v_rev])], [m4_define([proj_version], [v_maj.v_min.v_mic])]) - -AC_INIT([emotion_generic_players], [proj_version], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 30944650ddc16bdbedce06c94d58b4f84e8bcd19 Mon Sep 17 00:00:00 2001 From: davemds Date: Sun, 16 Jun 2013 10:00:22 +0200 Subject: [PATCH 042/141] Emotion VLC: better args to init vlc This new set of opts disable the display of the title "inside" the video, and disable the automatic search and use of .srt files. --- .../src/vlc/emotion_generic_vlc.c | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index fb0c9004cd..665f932c35 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -666,23 +666,20 @@ main(int argc, const char *argv[]) { App app; Ecore_Event_Handler *hld; - char cwidth[64], cheight[64], cpitch[64], chroma[64]; int vlc_argc; const char *vlc_argv[] = { "--quiet", - "--vout", - "vmem", - "--vmem-width", - cwidth, - "--vmem-height", - cheight, - "--vmem-pitch", - cpitch, - "--vmem-chroma", - chroma + "--intf", "dummy", /* no interface */ + "--vout", "dummy", /* we don't want video (output) */ + "--no-video-title-show", /* nor the filename displayed */ + "--no-sub-autodetect-file", /* we don't want automatic subtitles */ + "--no-stats", /* no stats */ + "--no-inhibit", /* we don't want interfaces */ + "--no-disable-screensaver", /* we don't want interfaces */ }; + vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); if (!eina_init()) { @@ -715,12 +712,6 @@ main(int argc, const char *argv[]) app.fd_write = ecore_pipe_full_add(_dummy, NULL, -1, atoi(argv[2]), EINA_FALSE, EINA_FALSE); - vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); - snprintf(cwidth, sizeof(cwidth), "%d", DEFAULTWIDTH); - snprintf(cheight, sizeof(cheight), "%d", DEFAULTHEIGHT); - snprintf(cpitch, sizeof(cpitch), "%d", DEFAULTWIDTH * 4); - snprintf(chroma, sizeof(chroma), "RV32"); - hld = ecore_event_handler_add(ECORE_EVENT_SIGNAL_HUP, exit_func, NULL); app.libvlc = libvlc_new(vlc_argc, vlc_argv); From 3d20d1706e4d98b386c4186b9eb48966be12355e Mon Sep 17 00:00:00 2001 From: davemds Date: Sun, 16 Jun 2013 10:12:27 +0200 Subject: [PATCH 043/141] Emotion VLC: indentation tabs-- --- .../src/vlc/emotion_generic_vlc.c | 95 ++++++++++--------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 665f932c35..ae3f14f203 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -136,11 +136,11 @@ _send_track_info(struct _App *app, int cmd, int current, int count, libvlc_track SEND_CMD_PARAM(app, count); while (desc) { - int tid = desc->i_id; - const char *name = desc->psz_name; - SEND_CMD_PARAM(app, tid); - _send_cmd_str(app, name); - desc = desc->p_next; + int tid = desc->i_id; + const char *name = desc->psz_name; + SEND_CMD_PARAM(app, tid); + _send_cmd_str(app, name); + desc = desc->p_next; } } @@ -155,21 +155,21 @@ _send_all_track_info(struct _App *app) desc = libvlc_audio_get_track_description(app->mp); _send_track_info(app, EM_RESULT_AUDIO_TRACK_INFO, - current, track_count, desc); + current, track_count, desc); current = libvlc_video_get_track(app->mp); track_count = libvlc_video_get_track_count(app->mp); desc = libvlc_video_get_track_description(app->mp); _send_track_info(app, EM_RESULT_VIDEO_TRACK_INFO, - current, track_count, desc); + current, track_count, desc); current = libvlc_video_get_spu(app->mp); track_count = libvlc_video_get_spu_count(app->mp); desc = libvlc_video_get_spu_description(app->mp); _send_track_info(app, EM_RESULT_SPU_TRACK_INFO, - current, track_count, desc); + current, track_count, desc); } static void @@ -225,8 +225,8 @@ _position_changed(App *app) r = libvlc_video_get_size(app->mp, 0, &w, &h); if (r < 0) { - w = 1; - h = 1; + w = 1; + h = 1; } if (w > 0 || h > 0) @@ -279,30 +279,31 @@ _event_cb(const struct libvlc_event_t *ev, void *data) App *app = data; ecore_thread_main_loop_begin(); - switch (ev->type) { + switch (ev->type) + { case libvlc_MediaPlayerTimeChanged: _send_time_changed(app, ev); - break; + break; case libvlc_MediaPlayerPositionChanged: - _position_changed(app); - break; + _position_changed(app); + break; case libvlc_MediaPlayerLengthChanged: - _send_length_changed(app, ev); - break; + _send_length_changed(app, ev); + break; case libvlc_MediaPlayerSeekableChanged: - _send_seekable_changed(app, ev); - break; + _send_seekable_changed(app, ev); + break; case libvlc_MediaPlayerPlaying: - _send_resize(app, app->w, app->h); - _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); - break; + _send_resize(app, app->w, app->h); + _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); + break; case libvlc_MediaPlayerStopped: - _send_file_set(app); - break; + _send_file_set(app); + break; case libvlc_MediaPlayerEndReached: app->playing = 0; - _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); - break; + _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); + break; } ecore_thread_main_loop_end(); } @@ -331,15 +332,15 @@ _file_set(App *app) app->m = libvlc_media_new_path(app->libvlc, app->filename); if (!app->m) { - ERR("could not open path: \"%s\"", app->filename); - return; + ERR("could not open path: \"%s\"", app->filename); + return; } app->mp = libvlc_media_player_new_from_media(app->m); if (!app->mp) { - ERR("could not create new player from media."); - return; + ERR("could not create new player from media."); + return; } app->opening = 1; @@ -347,9 +348,9 @@ _file_set(App *app) libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app); app->event_mgr = libvlc_media_player_event_manager(app->mp); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, - _event_cb, app); + _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, - _event_cb, app); + _event_cb, app); app->mevent_mgr = libvlc_media_event_manager(app->m); @@ -403,15 +404,15 @@ _file_set_done(App *app) r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); if (!r) { - free(app->filename); + free(app->filename); libvlc_media_release(app->m); libvlc_media_player_release(app->mp); - app->filename = NULL; - app->m = NULL; - app->mp = NULL; + app->filename = NULL; + app->m = NULL; + app->mp = NULL; _send_cmd(app, EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(app, r); + SEND_CMD_PARAM(app, r); } app->w = app->vs->width; app->h = app->vs->height; @@ -420,13 +421,13 @@ _file_set_done(App *app) libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, - _event_cb, app); + _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, - _event_cb, app); + _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, - _event_cb, app); + _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, - _event_cb, app); + _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, _event_cb, app); @@ -445,8 +446,8 @@ _file_close(App *app) if (libvlc_media_player_get_state(app->mp) != libvlc_Playing) { - _send_file_closed(app); - return; + _send_file_closed(app); + return; } app->closing = 1; @@ -459,7 +460,7 @@ release_resources: { libvlc_media_release(app->m); libvlc_media_player_release(app->mp); - free(app->tmpbuffer); + free(app->tmpbuffer); } } @@ -478,18 +479,18 @@ _play(App *app, float pos) if (app->playing) { - libvlc_media_player_set_pause(app->mp, 0); + libvlc_media_player_set_pause(app->mp, 0); } else { - libvlc_time_t new_time = pos * 1000; - libvlc_media_player_set_time(app->mp, new_time); + libvlc_time_t new_time = pos * 1000; + libvlc_media_player_set_time(app->mp, new_time); libvlc_media_player_play(app->mp); if (app->subtitle_path) libvlc_video_set_subtitle_file(app->mp, app->subtitle_path); - app->playing = 1; + app->playing = 1; } } From 8a2f5258d76031b7dfabe8b0b658b55ae70b4442 Mon Sep 17 00:00:00 2001 From: Doug Newgard Date: Sat, 22 Jun 2013 12:35:06 +0900 Subject: [PATCH 044/141] Emotion_generic_player: PKGBUILD cleanup pkgname is just a variable instead of an array when it's not a split package Don't need empty makedepends array Add 'efl' to depends Remove deps that are already supplied by other deps Doesn't need to provide itself or the obsolete -svn version Doesn't need to confict with the obsolete -svn version, if someone still has this, they're so far out of date it's not very likely they're paying any attention at all Removed 'strip' and 'zipman' options, they're already default, no need to override if Removed '!libtool' option, none are generated Removed -O2 and -g build flags for the same reason Removed buildflags and specified them in the CFLAGS and CXXFLAGS variables Removed LDFLAGS declariation, why were we clearing this? Removed --disable-static, no static libs are built (I checked this time) No need to rm -rf $pkgdir/usr Double quote all paths with variables --- .../pkgbuild/PKGBUILD.in | 31 ++++++++----------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in b/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in index 6082a1778e..b7aa2bb4c1 100644 --- a/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in +++ b/legacy/emotion_generic_players/pkgbuild/PKGBUILD.in @@ -1,24 +1,20 @@ # Maintainer: Enlightenment Developers -pkgname=('emotion_generic_players') +pkgname=emotion_generic_players pkgver=@VERSION@ pkgrel=1 pkgdesc="Emotion external binary executable players - GIT development snapshot" arch=('i686' 'x86_64' 'arm') url="http://www.enlightenment.org" license=('BSD') -makedepends=() -depends=('vlc' 'libdvdcss' 'libbluray' 'flac' 'vcdimager' 'libcdio' - 'ttf-freefont' 'ttf-dejavu' 'opus' 'libssh2') -provides=("emotion_generic_players=$pkgver" 'emotion_generic_players-svn') -conflicts=('emotion_generic_players-svn') -options=('strip' 'zipman' '!libtool' 'debug') -buildflags="-O2 -g -fvisibility=hidden -fomit-frame-pointer" +depends=('efl' 'vlc' 'libdvdcss' 'vcdimager' 'libcdio' + 'ttf-freefont' 'ttf-dejavu' 'libssh2') +options=('debug') build() { - export LDFLAGS="" cd "../.." + export CFLAGS="$CFLAGS -fvisibility=hidden -fomit-frame-pointer" + export CXXFLAGS="$CXXFLAGS -fvisibility=hidden -fomit-frame-pointer" make clean distclean - ./configure --prefix=/usr \ - --disable-static + ./configure --prefix=/usr make } @@ -29,12 +25,11 @@ build() { package() { cd "../.." - rm -rf $pkgdir/usr make -j1 DESTDIR="$pkgdir/" install - install -Dm644 README $pkgdir/usr/share/$pkgname/README - install -Dm644 NEWS $pkgdir/usr/share/$pkgname/NEWS - install -Dm644 ChangeLog $pkgdir/usr/share/$pkgname/ChangeLog - install -Dm644 AUTHORS $pkgdir/usr/share/$pkgname/AUTHORS - install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING - ln -s ../licenses/$pkgname/COPYING $pkgdir/usr/share/$pkgname/COPYING + install -Dm644 README "$pkgdir/usr/share/$pkgname/README" + install -Dm644 NEWS "$pkgdir/usr/share/$pkgname/NEWS" + install -Dm644 ChangeLog "$pkgdir/usr/share/$pkgname/ChangeLog" + install -Dm644 AUTHORS "$pkgdir/usr/share/$pkgname/AUTHORS" + install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING" + ln -s "../licenses/$pkgname/COPYING" "$pkgdir/usr/share/$pkgname/COPYING" } From 18d60e0ae5059f2f5d27b113f0c0fae2bf60e1c5 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Thu, 8 Aug 2013 09:46:21 +0900 Subject: [PATCH 045/141] vlc: this include seems useless now. --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index ae3f14f203..204f9337eb 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -14,7 +14,6 @@ #include #include -#include #include #include From 556704c11bed4a464e3083c7248cbc10eae51a0a Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 4 Nov 2013 18:32:55 +0900 Subject: [PATCH 046/141] alpha1 release autofoo/build tree work to pass distcheck and actually work --- legacy/emotion_generic_players/Makefile.am | 18 +++++++++++++++--- legacy/emotion_generic_players/configure.ac | 11 ++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/legacy/emotion_generic_players/Makefile.am b/legacy/emotion_generic_players/Makefile.am index 7c5e7c5c3f..97c53d5eab 100644 --- a/legacy/emotion_generic_players/Makefile.am +++ b/legacy/emotion_generic_players/Makefile.am @@ -13,7 +13,8 @@ EXTRA_DIST = \ README \ AUTHORS \ COPYING \ -m4/efl_compiler_flag.m4 +m4/efl_compiler.m4 \ +m4/emotion_generic_players.m4 MAINTAINERCLEANFILES = \ aclocal.m4 \ @@ -27,9 +28,20 @@ install-sh \ ltmain.sh \ Makefile.in \ missing \ -mkinstalldirs +mkinstalldirs \ +m4/libtool.m4 \ +m4/lt~obsolete.m4 \ +m4/ltoptions.m4 \ +m4/ltsugar.m4 \ +m4/ltversion.m4 + + +# this won't pass distcheck :( +#emotiongenericplayersdir = $(EMOTION_GENERIC_PLAYERS_DIR) + +emotiongenericplayersdir = \ +$(DESTDIR)$(libdir)/emotion/generic_players/$(MODULE_ARCH) -emotiongenericplayersdir = $(EMOTION_GENERIC_PLAYERS_DIR) emotiongenericplayers_PROGRAMS = if HAVE_VLC diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index f97a392c48..cda4f8e224 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [7]) -m4_define([v_mic], [99]) -m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) +m4_define([v_min], [8]) +m4_define([v_mic], [0]) +dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -dnl m4_define([relname], [ver-pre-svn-05]) +dnl m4_define([relname], [alpha1]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) @@ -107,6 +107,7 @@ EMOTION_GENERIC_PLAYERS_DIR="${EMOTION_GENERIC_PLAYERS_DIR}/${MODULE_ARCH}" AC_MSG_CHECKING([where to install generic players]) AC_MSG_RESULT([${EMOTION_GENERIC_PLAYERS_DIR}]) AC_SUBST(EMOTION_GENERIC_PLAYERS_DIR) +AC_SUBST(MODULE_ARCH) #### Players EMOTION_GENERIC_PLAYER([VLC], [yes], [libvlc >= 0.9 eina >= 1.1.99 ecore >= 1.7.99]) From aa9b639b346a51f94f9820bae7e3a6f58a4a49c7 Mon Sep 17 00:00:00 2001 From: Jerome Pinot Date: Tue, 5 Nov 2013 23:33:47 +0900 Subject: [PATCH 047/141] Remove extraneous $(DESTDIR) in Makefile.am. --- legacy/emotion_generic_players/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/Makefile.am b/legacy/emotion_generic_players/Makefile.am index 97c53d5eab..03550265d1 100644 --- a/legacy/emotion_generic_players/Makefile.am +++ b/legacy/emotion_generic_players/Makefile.am @@ -40,7 +40,7 @@ m4/ltversion.m4 #emotiongenericplayersdir = $(EMOTION_GENERIC_PLAYERS_DIR) emotiongenericplayersdir = \ -$(DESTDIR)$(libdir)/emotion/generic_players/$(MODULE_ARCH) +$(libdir)/emotion/generic_players/$(MODULE_ARCH) emotiongenericplayers_PROGRAMS = From 5aa5aee8716fbb11a33bd046713b5852dac7d74e Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 7 Nov 2013 17:26:54 +0900 Subject: [PATCH 048/141] readme has standard 1.8.0 header now --- legacy/emotion_generic_players/README | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/legacy/emotion_generic_players/README b/legacy/emotion_generic_players/README index 711f36cfca..759cf9f90b 100644 --- a/legacy/emotion_generic_players/README +++ b/legacy/emotion_generic_players/README @@ -1,3 +1,12 @@ +Emotion Generic Players 1.8.0. + +****************************************************************************** + + FOR ANY ISSUES PLEASE EMAIL: + enlightenment-devel@lists.sourceforge.net + +****************************************************************************** + Players for Emotion using "generic" module. EMOTION GENERIC PLAYERS From 7e0bbecf92a667c38b5d6d9fbd487860fc06ed2a Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 19 Nov 2013 17:20:22 +0900 Subject: [PATCH 049/141] 1.8.0-alpha2 --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index cda4f8e224..09457c71a7 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -7,7 +7,7 @@ dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || ech ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -dnl m4_define([relname], [alpha1]) +dnl m4_define([relname], [alpha2]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From f820ef2bfd3048d9a7c0ff4105cebae3e7e698dc Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 25 Nov 2013 14:52:12 +0900 Subject: [PATCH 050/141] 1.8.0-beta1 --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 09457c71a7..dc6e5a77de 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -7,7 +7,7 @@ dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || ech ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -dnl m4_define([relname], [alpha2]) +dnl m4_define([relname], [beta1]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 4d2c68e86e657d98fcda7782fa2ed5532e59a2f6 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Fri, 29 Nov 2013 17:52:14 +0900 Subject: [PATCH 051/141] vlc: properly detect frame format size and send information back to emotion. This should fix T582. There is more to do as on some system mute is not working and we get a double sound along with the slow startup. --- .../src/vlc/emotion_generic_vlc.c | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 204f9337eb..48581e5f34 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -325,6 +325,31 @@ _tmp_display(void *data EINA_UNUSED, void *id EINA_UNUSED) { } +static unsigned +_tmp_format(void **opaque, char *chroma, + unsigned *width, unsigned *height, + unsigned *pitches, unsigned *lines) +{ + App *app = *opaque; + + app->tmpbuffer = realloc(app->tmpbuffer, + *width * *height * 4 * sizeof (char)); + strcpy(chroma, "RV32"); + pitches[0] = pitches[1] = pitches[2] = *width * 4; + lines[0] = lines[1] = lines[2] = *height; + + _send_resize(app, *width, *height); + + return 1; +} + +static void +_tmp_play(void *data EINA_UNUSED, + const void *samples EINA_UNUSED, unsigned count EINA_UNUSED, + int64_t pts EINA_UNUSED) +{ +} + static void _file_set(App *app) { @@ -345,6 +370,13 @@ _file_set(App *app) app->opening = 1; libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app); + libvlc_video_set_format_callbacks(app->mp, _tmp_format, NULL); + /* On my system the mute below is not working and I can't find a way + to make it work, so the following set should help, but then it has + other side effect... + */ + /* libvlc_audio_set_callbacks(app->mp, _tmp_play, NULL, NULL, NULL, NULL, app); */ + app->event_mgr = libvlc_media_player_event_manager(app->mp); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, _event_cb, app); @@ -418,7 +450,6 @@ _file_set_done(App *app) libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, @@ -561,7 +592,6 @@ _remote_command(void *data, void *buffer, unsigned int nbyte) if (nbyte == 0) { - fprintf(stderr, "death is comming\n"); ecore_main_loop_quit(); return ; } From af4b4fb554baae47a2ebfa48bd6083115568b153 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 29 Nov 2013 19:08:33 +0900 Subject: [PATCH 052/141] readme - update readme for efl 1.8 lots of extra documentation and information now in the README --- legacy/emotion_generic_players/README | 56 +++++++++++++++++++++------ 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/legacy/emotion_generic_players/README b/legacy/emotion_generic_players/README index 759cf9f90b..5d6fceca64 100644 --- a/legacy/emotion_generic_players/README +++ b/legacy/emotion_generic_players/README @@ -1,33 +1,65 @@ -Emotion Generic Players 1.8.0. +Emotion Generic Players 1.8.0 +============================= ****************************************************************************** - FOR ANY ISSUES PLEASE EMAIL: enlightenment-devel@lists.sourceforge.net - ****************************************************************************** -Players for Emotion using "generic" module. +These are binary players for Emotion using the "generic" module. -EMOTION GENERIC PLAYERS -======================= - -Emotion support multiple modules provided as shared-objects under -${prefix}/lib/emotion/modules, making it extensible. However these +Emotion supports multiple modules provided as shared-objects under +PREFIX/lib/emotion/modules, making it extensible. However these live in the same process as the application, thus problems handling the media may crash or halt the application. Unfortunately media handling is very error prone due multiple sources, sinks, decoders et al, each with their own level of stability. -To solve this emotion ships with a "generic" module that will be a +To solve this, Emotion ships with a "generic" module that is a layer to talk to another process, the "player", using pipes and shared memory (shm). If this external process dies, the main application remains working (without any media, of course). Thus it is safer and -have some nice qualities as avoiding bringing in many libraries to +has some nice side effects such as avoiding bringing in many libraries to decode media, saving memory in the application process, etc. A secondary benefit is that the generic player is a separate process and does not link with the user application code or EFL, avoiding -license conflicts. Many decoding libraries or elements exist in +license conflicts. Many decoding libraries or elements exist with conflicting licenses with GPL, LGPL or even proprietary code. + +REQUIREMENTS +------------ + + vlc (library) + + +COMPONENTS +---------- + +**VLC Generic Player:** + +//GPL v2 license// + +This is a binary that uses the VLC library (libvlc) to play videos +inot shared memory. + +COMPILING AND INSTALLING +------------------------ + + ./configure + make + sudo make install + + +COMPILER FLAGS +-------------- + +You may want to change the install prefix for EFL with: + + --prefix=/path/to/prefix + +**NOTE:** + +You should put generic players in the same prefix as EFL or they will +not be found by EFL at runtime. From 5f7297a979d9c0e054abe349428b4ec4130f6694 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 29 Nov 2013 19:37:20 +0900 Subject: [PATCH 053/141] v1.8.0-beta2 --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index dc6e5a77de..5d4688a65b 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -7,7 +7,7 @@ dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || ech ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -dnl m4_define([relname], [beta1]) +dnl m4_define([relname], [beta2]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From fa115a5052143bfcab45abe76d61648c6bf012de Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sun, 1 Dec 2013 14:54:18 +0900 Subject: [PATCH 054/141] readme - make requirements list a bullet list --- legacy/emotion_generic_players/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/README b/legacy/emotion_generic_players/README index 5d6fceca64..0fbc6a8d57 100644 --- a/legacy/emotion_generic_players/README +++ b/legacy/emotion_generic_players/README @@ -31,7 +31,7 @@ conflicting licenses with GPL, LGPL or even proprietary code. REQUIREMENTS ------------ - vlc (library) + * vlc (libvlc) COMPONENTS From 89349cd9bbd75f07a06082993114960d3090f915 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sun, 1 Dec 2013 19:02:39 +0900 Subject: [PATCH 055/141] v1.8.0 --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 5d4688a65b..a5c561cc93 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -7,7 +7,7 @@ dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || ech ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -dnl m4_define([relname], [beta2]) +dnl m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 7575e6249c0c2e1e194bd0634905cf11788d5084 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 19 Dec 2013 15:43:27 +0900 Subject: [PATCH 056/141] bump to 1.8.99 for dev --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index a5c561cc93..44a68c6b7b 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,7 +2,7 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [8]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) From 4e2cad04cab0c292499280870da77828044ea1de Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 9 Jan 2014 09:46:36 +0900 Subject: [PATCH 057/141] check for libvlc >= 2.0 as a minimum as we use 2.x funcs --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 44a68c6b7b..096f694534 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,6 +1,6 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -m4_define([v_maj], [1]) +m4_define(v_maj], [1]) m4_define([v_min], [8]) m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) @@ -110,7 +110,7 @@ AC_SUBST(EMOTION_GENERIC_PLAYERS_DIR) AC_SUBST(MODULE_ARCH) #### Players -EMOTION_GENERIC_PLAYER([VLC], [yes], [libvlc >= 0.9 eina >= 1.1.99 ecore >= 1.7.99]) +EMOTION_GENERIC_PLAYER([VLC], [yes], [libvlc >= 2.0 eina >= 1.1.99 ecore >= 1.7.99]) AC_CONFIG_FILES([ From 5588f5fc3c5c86dedcbca6657322a1a4fa67a1ee Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 9 Jan 2014 14:17:35 +0900 Subject: [PATCH 058/141] configure: fix typos. --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 096f694534..e2f6f62064 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,6 +1,6 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -m4_define(v_maj], [1]) +m4_define([v_maj], [1]) m4_define([v_min], [8]) m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) From 58fd81e407418431e0da3c952aaf923fcc1496ab Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Sat, 18 Jan 2014 19:23:59 +0900 Subject: [PATCH 059/141] emotion_generic_players - commented out unused func. --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 48581e5f34..145833f1c0 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -343,12 +343,14 @@ _tmp_format(void **opaque, char *chroma, return 1; } +/* static void _tmp_play(void *data EINA_UNUSED, const void *samples EINA_UNUSED, unsigned count EINA_UNUSED, int64_t pts EINA_UNUSED) { } +*/ static void _file_set(App *app) From 95f50d79c33270974be8dddce6352a6c3504c2f9 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 11 Feb 2014 16:21:30 -0500 Subject: [PATCH 060/141] 1.9.0 alpha1 --- legacy/emotion_generic_players/configure.ac | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index e2f6f62064..97ebee1288 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [8]) -m4_define([v_mic], [99]) +m4_define([v_min], [9]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -dnl m4_define([relname], [dev]) +m4_define([relname], [alpha1]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 47ca3994c52d9e2c2c120612990bed09b24a939f Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 12 Feb 2014 15:59:47 +0900 Subject: [PATCH 061/141] simplify player version dir fallback to match efl 1.9 simplification changes --- legacy/emotion_generic_players/configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 97ebee1288..9a572f180d 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -87,13 +87,13 @@ PKG_CHECK_MODULES([EMOTION], [emotion >= v_maj.v_min]) MODULE_ARCH=`pkg-config --variable=module_arch emotion` if test -z "${MODULE_ARCH}"; then - EMOTION_VERSION=`pkg-config --modversion emotion | cut -d. -f1-3` + EMOTION_VERSION=`pkg-config --modversion emotion | cut -d. -f1-2` case "$host_os" in mingw32ce*) - MODULE_ARCH="$host_os-$host_cpu" + MODULE_ARCH="v" ;; *) - MODULE_ARCH="$host_os-$host_cpu-${EMOTION_VERSION}" + MODULE_ARCH="v-${EMOTION_VERSION}" ;; esac fi From b0366fc0c397a61dd128e39d2147530caae93984 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 12 Feb 2014 16:02:04 +0900 Subject: [PATCH 062/141] update README version --- legacy/emotion_generic_players/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/README b/legacy/emotion_generic_players/README index 0fbc6a8d57..698ec51e25 100644 --- a/legacy/emotion_generic_players/README +++ b/legacy/emotion_generic_players/README @@ -1,4 +1,4 @@ -Emotion Generic Players 1.8.0 +Emotion Generic Players 1.9.0 ============================= ****************************************************************************** From 091e7a2bf1b9f478d9149bf76ab7a1834d63b612 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Wed, 12 Feb 2014 16:02:43 +0900 Subject: [PATCH 063/141] update copying dates --- legacy/emotion_generic_players/COPYING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/COPYING b/legacy/emotion_generic_players/COPYING index aab836272d..94cdd8072a 100644 --- a/legacy/emotion_generic_players/COPYING +++ b/legacy/emotion_generic_players/COPYING @@ -1,6 +1,6 @@ Copyright notice for Emotion: -Copyright (C) 2004-2011 Carsten Haitzler and various contributors (see AUTHORS) +Copyright (C) 2004-2014 Carsten Haitzler and various contributors (see AUTHORS) All rights reserved. From 752200ce495ac1eb945cf846077225f7e893803c Mon Sep 17 00:00:00 2001 From: davemds Date: Sun, 16 Feb 2014 13:50:20 +0100 Subject: [PATCH 064/141] Emotion VLC backend: fix pause/stop to work again. The EM_CMD_STOP command do not have any parameter so it must be handled in the first call of the pipe. --- .../emotion_generic_players/src/vlc/emotion_generic_vlc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 145833f1c0..8c4e04990e 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -636,6 +636,10 @@ _remote_command(void *data, void *buffer, unsigned int nbyte) _file_close(app); app->last_order = EM_CMD_LAST; break; + case EM_CMD_STOP: + _stop(app); + app->last_order = EM_CMD_LAST; + break; } } else @@ -657,9 +661,6 @@ _remote_command(void *data, void *buffer, unsigned int nbyte) case EM_CMD_PLAY: _play(app, *(float*) buffer); break; - case EM_CMD_STOP: - _stop(app); - break; case EM_CMD_POSITION_SET: _position_set(app, *(float*) buffer); break; From ad23b1e40350c447567ac69558eccfae3bd1b960 Mon Sep 17 00:00:00 2001 From: davemds Date: Sun, 16 Feb 2014 21:38:34 +0100 Subject: [PATCH 065/141] Emotion VLC: cleanup: only changed function order in file. --- .../src/vlc/emotion_generic_vlc.c | 162 +++++++++--------- 1 file changed, 84 insertions(+), 78 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 8c4e04990e..19078cea18 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -65,16 +65,11 @@ struct _App { Eina_Bool inited; }; -Eina_Bool -exit_func(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *ev EINA_UNUSED) -{ - ecore_main_loop_quit(); - return EINA_TRUE; -} -#define SEND_CMD_PARAM(app, i) \ - if ((app)->fd_write) \ - if (!ecore_pipe_write((app)->fd_write, &(i), sizeof((i)))) \ +/* Commands sent to the emotion pipe */ +#define SEND_CMD_PARAM(app, i) \ + if ((app)->fd_write) \ + if (!ecore_pipe_write((app)->fd_write, &(i), sizeof((i)))) \ ecore_main_loop_quit(); static void @@ -200,6 +195,37 @@ _send_all_meta_info(struct _App *app) _send_cmd_str(app, meta); } +static void +_send_length_changed(struct _App *app, const struct libvlc_event_t *ev) +{ + float length = ev->u.media_player_length_changed.new_length; + length /= 1000; + + _send_cmd(app, EM_RESULT_LENGTH_CHANGED); + SEND_CMD_PARAM(app, length); +} + +static void +_send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev) +{ + int seekable = ev->u.media_player_seekable_changed.new_seekable; + + _send_cmd(app, EM_RESULT_SEEKABLE_CHANGED); + SEND_CMD_PARAM(app, seekable); +} + +static void +_send_file_set(struct _App *app) +{ + if (app->opening) + _send_cmd(app, EM_RESULT_FILE_SET); + + if (app->closing) + _send_file_closed(app); +} + + +/* libvlc */ static Eina_Bool _loaded_idler(void *data) { @@ -243,35 +269,6 @@ _position_changed(App *app) ecore_idler_add(_loaded_idler, app); } -static void -_send_length_changed(struct _App *app, const struct libvlc_event_t *ev) -{ - float length = ev->u.media_player_length_changed.new_length; - length /= 1000; - - _send_cmd(app, EM_RESULT_LENGTH_CHANGED); - SEND_CMD_PARAM(app, length); -} - -static void -_send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev) -{ - int seekable = ev->u.media_player_seekable_changed.new_seekable; - - _send_cmd(app, EM_RESULT_SEEKABLE_CHANGED); - SEND_CMD_PARAM(app, seekable); -} - -static void -_send_file_set(struct _App *app) -{ - if (app->opening) - _send_cmd(app, EM_RESULT_FILE_SET); - - if (app->closing) - _send_file_closed(app); -} - static void _event_cb(const struct libvlc_event_t *ev, void *data) { @@ -352,9 +349,47 @@ _tmp_play(void *data EINA_UNUSED, } */ +static void * +_lock(void *data, void **pixels) +{ + App *app = data; + + if (app->playing) + *pixels = app->vf.frames[app->vs->frame.player]; + else + *pixels = NULL; + + return NULL; // picture identifier, not needed here +} + +static void +_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) +{ +} + +static void +_display(void *data, void *id EINA_UNUSED) +{ + App *app = data; + + if (!app->playing) + return; + + eina_semaphore_lock(&app->vs->lock); + app->vs->frame.last = app->vs->frame.player; + app->vs->frame.player = app->vs->frame.next; + app->vs->frame.next = app->vs->frame.last; + if (!app->vs->frame_drop++) + _send_cmd(app, EM_RESULT_FRAME_NEW); + eina_semaphore_release(&app->vs->lock, 1); +} + + +/* Commands received from the emotion pipe */ static void _file_set(App *app) { + DBG("Path: %s", app->filename); app->m = libvlc_media_new_path(app->libvlc, app->filename); if (!app->m) { @@ -392,41 +427,6 @@ _file_set(App *app) libvlc_media_player_play(app->mp); } -static void * -_lock(void *data, void **pixels) -{ - App *app = data; - - if (app->playing) - *pixels = app->vf.frames[app->vs->frame.player]; - else - *pixels = NULL; - - return NULL; // picture identifier, not needed here -} - -static void -_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) -{ -} - -static void -_display(void *data, void *id EINA_UNUSED) -{ - App *app = data; - - if (!app->playing) - return; - - eina_semaphore_lock(&app->vs->lock); - app->vs->frame.last = app->vs->frame.player; - app->vs->frame.player = app->vs->frame.next; - app->vs->frame.next = app->vs->frame.last; - if (!app->vs->frame_drop++) - _send_cmd(app, EM_RESULT_FRAME_NEW); - eina_semaphore_release(&app->vs->lock, 1); -} - static void _file_set_done(App *app) { @@ -687,11 +687,19 @@ _remote_command(void *data, void *buffer, unsigned int nbyte) } } -void +static void _dummy(void *data EINA_UNUSED, void *buffer EINA_UNUSED, unsigned int nbyte EINA_UNUSED) { - /* This function is useless for the pipe we use to send message back to emotion, - but still needed */ + /* This function is useless for the pipe we use to send message back + to emotion, but still needed */ +} + +/* Main */ +Eina_Bool +exit_func(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *ev EINA_UNUSED) +{ + ecore_main_loop_quit(); + return EINA_TRUE; } int @@ -763,12 +771,10 @@ main(int argc, const char *argv[]) ecore_main_loop_begin(); libvlc_release(app.libvlc); - ecore_event_handler_del(hld); ecore_shutdown(); eina_shutdown(); - return 0; error: From 8bc5616f004220cea11f390d4be91d888011c869 Mon Sep 17 00:00:00 2001 From: davemds Date: Sun, 16 Feb 2014 22:40:36 +0100 Subject: [PATCH 066/141] Emotion VLC player: debug++ --- .../src/vlc/emotion_generic_vlc.c | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 19078cea18..d0bc23e631 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -50,11 +50,8 @@ struct _App { char *shmname; void *tmpbuffer; int w, h; - // Use Ecore infra for that instead - Ecore_Pipe *fd_read; // read commands from theads here - Ecore_Pipe *fd_write; // write commands from threads here - /* int em_read; // read commands from emotion here */ - /* int em_write; // write commands to emotion here */ + Ecore_Pipe *fd_read; // read commands from emotion here + Ecore_Pipe *fd_write; // write commands for emotion here int size_sent; int opening; int closing; @@ -278,25 +275,32 @@ _event_cb(const struct libvlc_event_t *ev, void *data) switch (ev->type) { case libvlc_MediaPlayerTimeChanged: + DBG("libvlc_MediaPlayerTimeChanged"); _send_time_changed(app, ev); break; case libvlc_MediaPlayerPositionChanged: + DBG("libvlc_MediaPlayerPositionChanged"); _position_changed(app); break; case libvlc_MediaPlayerLengthChanged: + DBG("libvlc_MediaPlayerLengthChanged"); _send_length_changed(app, ev); break; case libvlc_MediaPlayerSeekableChanged: + DBG("libvlc_MediaPlayerSeekableChanged"); _send_seekable_changed(app, ev); break; case libvlc_MediaPlayerPlaying: + DBG("libvlc_MediaPlayerPlaying"); _send_resize(app, app->w, app->h); _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; case libvlc_MediaPlayerStopped: + DBG("libvlc_MediaPlayerStopped"); _send_file_set(app); break; case libvlc_MediaPlayerEndReached: + DBG("libvlc_MediaPlayerEndReached"); app->playing = 0; _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); break; @@ -336,6 +340,7 @@ _tmp_format(void **opaque, char *chroma, lines[0] = lines[1] = lines[2] = *height; _send_resize(app, *width, *height); + DBG("%d %d", *width, *height); return 1; } @@ -405,9 +410,10 @@ _file_set(App *app) } app->opening = 1; - libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); + libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); // needed?? libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app); libvlc_video_set_format_callbacks(app->mp, _tmp_format, NULL); + /* On my system the mute below is not working and I can't find a way to make it work, so the following set should help, but then it has other side effect... @@ -420,7 +426,7 @@ _file_set(App *app) libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, _event_cb, app); - app->mevent_mgr = libvlc_media_event_manager(app->m); + app->mevent_mgr = libvlc_media_event_manager(app->m); // needed?? app->tmpbuffer = malloc(sizeof(char) * DEFAULTWIDTH * DEFAULTHEIGHT * 4); libvlc_audio_set_mute(app->mp, 1); @@ -432,6 +438,7 @@ _file_set_done(App *app) { int r; + DBG("Path: %s", app->filename); app->opening = 0; r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); @@ -472,6 +479,7 @@ _file_set_done(App *app) static void _file_close(App *app) { + DBG("Path: %s", app->filename); app->playing = 0; if (app->opening) goto release_resources; @@ -499,6 +507,7 @@ release_resources: static void _stop(App *app) { + DBG("Stop"); if (app->mp) libvlc_media_player_set_pause(app->mp, 1); } @@ -506,6 +515,7 @@ _stop(App *app) static void _play(App *app, float pos) { + DBG("Play at %.3f", pos); if (!app->mp) return; @@ -531,6 +541,7 @@ _position_set(struct _App *app, float position) { libvlc_time_t new_time; + DBG("Posistion set %.3f", position); if (!app->mp) return; @@ -541,6 +552,7 @@ _position_set(struct _App *app, float position) static void _speed_set(App *app, float rate) { + DBG("Speed set %.3f", rate); if (!app->mp) return; @@ -550,6 +562,7 @@ _speed_set(App *app, float rate) static void _mute_set(App *app, int mute) { + DBG("Mute %d", mute); if (!app->mp) return; @@ -561,6 +574,7 @@ _volume_set(App *app, float volume) { int vol; + DBG("Volume set %.2f", volume); if (!app->mp) return; @@ -572,18 +586,21 @@ _volume_set(App *app, float volume) static void _spu_track_set(App *app, int track) { + DBG("SPU track %d", track); libvlc_video_set_spu(app->mp, track); } static void _audio_track_set(App *app, int track) { + DBG("Audio track %d", track); libvlc_audio_set_track(app->mp, track); } static void _video_track_set(App *app, int track) { + DBG("Video Track %d", track); libvlc_video_set_track(app->mp, track); } @@ -698,6 +715,7 @@ _dummy(void *data EINA_UNUSED, void *buffer EINA_UNUSED, unsigned int nbyte EINA Eina_Bool exit_func(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *ev EINA_UNUSED) { + DBG("Quit signal received !"); ecore_main_loop_quit(); return EINA_TRUE; } From 56b8834c2044d1106c2921dc8aab0304056ecfb7 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 18 Feb 2014 15:39:21 +0100 Subject: [PATCH 067/141] release: Bump version to 1.9.0-beta1 Prepare tarballs for a first beta release. --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 9a572f180d..20fb15f54f 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -7,7 +7,7 @@ dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || ech ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [alpha1]) +m4_define([relname], [beta1]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 083a6ebb6f894a97550c24e1a6a1f6bb6fa4e027 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Wed, 19 Feb 2014 14:08:41 +0100 Subject: [PATCH 068/141] release: Update NEWS file and add out of date notice to ChangeLog Might not be the final NEWS file but a start which includes all noteworthy changes since 1.8.0. Adding a note to the ChangeLog so people know it will no longer get updated. Also clarify README that libvlc >= 2.0 is needed. --- legacy/emotion_generic_players/ChangeLog | 7 +++++++ legacy/emotion_generic_players/NEWS | 18 ++++++++++++++++++ legacy/emotion_generic_players/README | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/ChangeLog b/legacy/emotion_generic_players/ChangeLog index 2d381b5fd9..b1c5ebd34e 100644 --- a/legacy/emotion_generic_players/ChangeLog +++ b/legacy/emotion_generic_players/ChangeLog @@ -3,3 +3,10 @@ * Created the project based on previous emotion/src/generic_players, as it was removed when Emotion was merged into EFL single-tree. + + +OUT OF DATE NOTICE: +------------------- +With the start of the 1.9.x release cycle we now longer update the ChangeLog and rely on git log for +this functionality. We keep however a NEWS files for a high level overview of changes in a new +release which will be filled at the end of the release cycle. diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index e69de29bb2..d6812d2633 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -0,0 +1,18 @@ +Emotion Generic Players 1.9.0 + +Changes since Emotion Generic Players 1.8.0: +-------------------------------------------- + +Improvements: + + * Emotion VLC player: debug++ + * Emotion VLC: cleanup: only changed function order in file. + * Simplify player version dir fallback to match efl 1.9 simplification changes + * Emotion_generic_players - commented out unused func. + +Fixes: + + * Emotion VLC backend: fix pause/stop to work again. + The EM_CMD_STOP command do not have any parameter so it must be + handled in the first call of the pipe. + * Check for libvlc >= 2.0 as a minimum as we use 2.x funcs diff --git a/legacy/emotion_generic_players/README b/legacy/emotion_generic_players/README index 698ec51e25..783fe37d53 100644 --- a/legacy/emotion_generic_players/README +++ b/legacy/emotion_generic_players/README @@ -31,7 +31,7 @@ conflicting licenses with GPL, LGPL or even proprietary code. REQUIREMENTS ------------ - * vlc (libvlc) + * vlc (libvlc >= 2.0) COMPONENTS From de53992f066c261a6a8c8a60f884c3e76bdbbf8f Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Thu, 20 Feb 2014 12:12:32 +0100 Subject: [PATCH 069/141] AUTHORS: Fill in authors from git log --- legacy/emotion_generic_players/AUTHORS | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/AUTHORS b/legacy/emotion_generic_players/AUTHORS index 3270ec5387..e64ccfdaad 100644 --- a/legacy/emotion_generic_players/AUTHORS +++ b/legacy/emotion_generic_players/AUTHORS @@ -6,4 +6,15 @@ Leandro Dorileo Pierre Le Magourou Rafael Antognolli Sohyun Kim - +Carsten Haitzler (Rasterman) +davemds +Gustavo Sverzut Barbieri +Stefan Schmidt +Bruno Dilly +ChunEon Park +Daniel Juyung Seo +Doug Newgard +Jerome Pinot +Mike Blumenkrantz +Sebastian Dransfeld +Vincent Torri From 341565b0d9591578d7a3033fd261d5b11aace8dc Mon Sep 17 00:00:00 2001 From: davemds Date: Thu, 20 Feb 2014 22:45:16 +0100 Subject: [PATCH 070/141] Emotion VLC: remove quite all the old hacks. This commit remove all the hacks that was there on the loading stage. Instead of using the tmp format callback system now simply connect to the MediaPlayerPlaying event on first startup and pause the video as soon as it start. No more need for the tmp buffer allocation and the delayed stop using idler. All this fix the first outstanding bug: audio was audible on start (before the real play command from emotion) --- .../src/vlc/emotion_generic_vlc.c | 249 ++++++------------ 1 file changed, 76 insertions(+), 173 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index d0bc23e631..b9a0aabc82 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -29,32 +29,24 @@ static int _em_vlc_log_dom = -1; #define WRN(...) EINA_LOG_DOM_WARN(_em_vlc_log_dom, __VA_ARGS__) #define CRIT(...) EINA_LOG_DOM_CRIT(_em_vlc_log_dom, __VA_ARGS__) -enum _Thread_Events { - EM_THREAD_POSITION_CHANGED, - EM_THREAD_PLAYBACK_STARTED, - EM_THREAD_PLAYBACK_STOPPED, - EM_THREAD_LAST -}; typedef struct _App App; struct _App { Emotion_Generic_Video_Shared *vs; Emotion_Generic_Video_Frame vf; + libvlc_instance_t *libvlc; libvlc_media_t *m; libvlc_media_player_t *mp; libvlc_event_manager_t *event_mgr; - libvlc_event_manager_t *mevent_mgr; + char *filename; char *subtitle_path; char *shmname; - void *tmpbuffer; - int w, h; + unsigned w, h; Ecore_Pipe *fd_read; // read commands from emotion here Ecore_Pipe *fd_write; // write commands for emotion here - int size_sent; int opening; - int closing; int playing; int last_order; @@ -94,8 +86,6 @@ _send_cmd_str(App *app, const char *str) static void _send_file_closed(App *app) { - app->closing = 0; - emotion_generic_shm_free(app->vs); _send_cmd(app, EM_RESULT_FILE_CLOSE); } @@ -193,11 +183,11 @@ _send_all_meta_info(struct _App *app) } static void -_send_length_changed(struct _App *app, const struct libvlc_event_t *ev) +_send_length_changed(struct _App *app) { - float length = ev->u.media_player_length_changed.new_length; - length /= 1000; + float length = libvlc_media_player_get_length(app->mp); + length /= 1000; _send_cmd(app, EM_RESULT_LENGTH_CHANGED); SEND_CMD_PARAM(app, length); } @@ -211,61 +201,6 @@ _send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev) SEND_CMD_PARAM(app, seekable); } -static void -_send_file_set(struct _App *app) -{ - if (app->opening) - _send_cmd(app, EM_RESULT_FILE_SET); - - if (app->closing) - _send_file_closed(app); -} - - -/* libvlc */ -static Eina_Bool -_loaded_idler(void *data) -{ - App *app = data; - - if (app->mp) - libvlc_media_player_stop(app->mp); - - return EINA_FALSE; -} - -static void -_position_changed(App *app) -{ - int r; - unsigned int w, h; - - if (!app->opening) - return; - - /* sending size info only once */ - r = libvlc_video_get_size(app->mp, 0, &w, &h); - if (r < 0) - { - w = 1; - h = 1; - } - - if (w > 0 || h > 0) - { - _send_resize(app, w, h); - app->size_sent = 1; - } - - /* sending audio track info */ - _send_all_track_info(app); - - /* sending meta info */ - _send_all_meta_info(app); - - ecore_idler_add(_loaded_idler, app); -} - static void _event_cb(const struct libvlc_event_t *ev, void *data) { @@ -278,13 +213,9 @@ _event_cb(const struct libvlc_event_t *ev, void *data) DBG("libvlc_MediaPlayerTimeChanged"); _send_time_changed(app, ev); break; - case libvlc_MediaPlayerPositionChanged: - DBG("libvlc_MediaPlayerPositionChanged"); - _position_changed(app); - break; case libvlc_MediaPlayerLengthChanged: DBG("libvlc_MediaPlayerLengthChanged"); - _send_length_changed(app, ev); + _send_length_changed(app); break; case libvlc_MediaPlayerSeekableChanged: DBG("libvlc_MediaPlayerSeekableChanged"); @@ -292,12 +223,12 @@ _event_cb(const struct libvlc_event_t *ev, void *data) break; case libvlc_MediaPlayerPlaying: DBG("libvlc_MediaPlayerPlaying"); - _send_resize(app, app->w, app->h); + _send_resize(app, app->w, app->h); // THIS IS WRONG BUT NEEDED...check in emotion why! _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; case libvlc_MediaPlayerStopped: DBG("libvlc_MediaPlayerStopped"); - _send_file_set(app); + _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); break; case libvlc_MediaPlayerEndReached: DBG("libvlc_MediaPlayerEndReached"); @@ -308,51 +239,39 @@ _event_cb(const struct libvlc_event_t *ev, void *data) ecore_thread_main_loop_end(); } -static void * -_tmp_lock(void *data, void **pixels) + +static void +_tmp_playing_event_cb(const struct libvlc_event_t *ev, void *data) { App *app = data; - *pixels = app->tmpbuffer; - return NULL; + + if (ev->type != libvlc_MediaPlayerPlaying) + return; + + /* pause and stop listening the temporary event */ + libvlc_event_detach(app->event_mgr,libvlc_MediaPlayerPlaying, + _tmp_playing_event_cb, app); + libvlc_media_player_set_pause(app->mp, 1); + + /* sending size info */ + libvlc_video_get_size(app->mp, 0, &app->w, &app->h); + _send_resize(app, app->w, app->h); + + /* sending total lenght */ + _send_length_changed(app); + + /* sending audio track info */ + _send_all_track_info(app); + + /* sending meta info */ + _send_all_meta_info(app); + + /* ok, we are done! Now let emotion create the shmem for us */ + _send_cmd(app, EM_RESULT_FILE_SET); + + ERR("libvlc_MediaPlayerPlaying %d %d", app->w, app->h); } -static void -_tmp_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) -{ -} - -static void -_tmp_display(void *data EINA_UNUSED, void *id EINA_UNUSED) -{ -} - -static unsigned -_tmp_format(void **opaque, char *chroma, - unsigned *width, unsigned *height, - unsigned *pitches, unsigned *lines) -{ - App *app = *opaque; - - app->tmpbuffer = realloc(app->tmpbuffer, - *width * *height * 4 * sizeof (char)); - strcpy(chroma, "RV32"); - pitches[0] = pitches[1] = pitches[2] = *width * 4; - lines[0] = lines[1] = lines[2] = *height; - - _send_resize(app, *width, *height); - DBG("%d %d", *width, *height); - - return 1; -} - -/* -static void -_tmp_play(void *data EINA_UNUSED, - const void *samples EINA_UNUSED, unsigned count EINA_UNUSED, - int64_t pts EINA_UNUSED) -{ -} -*/ static void * _lock(void *data, void **pixels) @@ -410,26 +329,14 @@ _file_set(App *app) } app->opening = 1; - libvlc_video_set_format(app->mp, "RV32", DEFAULTWIDTH, DEFAULTHEIGHT, DEFAULTWIDTH * 4); // needed?? - libvlc_video_set_callbacks(app->mp, _tmp_lock, _tmp_unlock, _tmp_display, app); - libvlc_video_set_format_callbacks(app->mp, _tmp_format, NULL); - - /* On my system the mute below is not working and I can't find a way - to make it work, so the following set should help, but then it has - other side effect... - */ - /* libvlc_audio_set_callbacks(app->mp, _tmp_play, NULL, NULL, NULL, NULL, app); */ + /* Here we start playing and connect a temporary callback to know when + * the file is parsed and ready to be played for real. + */ app->event_mgr = libvlc_media_player_event_manager(app->mp); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, - _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, + _tmp_playing_event_cb, app); - app->mevent_mgr = libvlc_media_event_manager(app->m); // needed?? - - app->tmpbuffer = malloc(sizeof(char) * DEFAULTWIDTH * DEFAULTHEIGHT * 4); - libvlc_audio_set_mute(app->mp, 1); libvlc_media_player_play(app->mp); } @@ -450,27 +357,27 @@ _file_set_done(App *app) app->filename = NULL; app->m = NULL; app->mp = NULL; - - _send_cmd(app, EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(app, r); } - app->w = app->vs->width; - app->h = app->vs->height; - libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); - libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); + else + { + libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); + libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, - _event_cb, app); - - libvlc_audio_set_mute(app->mp, 0); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, + _event_cb, app); + } _send_cmd(app, EM_RESULT_FILE_SET_DONE); SEND_CMD_PARAM(app, r); @@ -479,29 +386,24 @@ _file_set_done(App *app) static void _file_close(App *app) { - DBG("Path: %s", app->filename); + DBG("closing file"); + + if (!app->mp) + return; + app->playing = 0; - if (app->opening) - goto release_resources; - - if (libvlc_media_player_get_state(app->mp) != libvlc_Playing) - { - _send_file_closed(app); - return; - } - - app->closing = 1; - -release_resources: libvlc_media_player_stop(app->mp); - if (app->filename) - free(app->filename); + + free(app->filename); + free(app->subtitle_path); if (app->mp) { libvlc_media_release(app->m); libvlc_media_player_release(app->mp); - free(app->tmpbuffer); } + emotion_generic_shm_free(app->vs); + + _send_file_closed(app); } static void @@ -516,6 +418,7 @@ static void _play(App *app, float pos) { DBG("Play at %.3f", pos); + if (!app->mp) return; @@ -779,16 +682,16 @@ main(int argc, const char *argv[]) app.subtitle_path = NULL; app.w = 0; app.h = 0; - app.size_sent = 0; app.opening = 0; app.playing = 0; - app.closing = 0; app.last_order = EM_CMD_LAST; app.inited = EINA_FALSE; ecore_main_loop_begin(); libvlc_release(app.libvlc); + ecore_pipe_del(app.fd_read); + ecore_pipe_del(app.fd_write); ecore_event_handler_del(hld); ecore_shutdown(); From d9bc6b6ad0a6c9ca1459f27a826c1526ee67b460 Mon Sep 17 00:00:00 2001 From: davemds Date: Thu, 20 Feb 2014 23:00:20 +0100 Subject: [PATCH 071/141] Emotion VLC: no more need to send the size twice. --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index b9a0aabc82..069d04bb19 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -223,7 +223,6 @@ _event_cb(const struct libvlc_event_t *ev, void *data) break; case libvlc_MediaPlayerPlaying: DBG("libvlc_MediaPlayerPlaying"); - _send_resize(app, app->w, app->h); // THIS IS WRONG BUT NEEDED...check in emotion why! _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; case libvlc_MediaPlayerStopped: @@ -268,8 +267,6 @@ _tmp_playing_event_cb(const struct libvlc_event_t *ev, void *data) /* ok, we are done! Now let emotion create the shmem for us */ _send_cmd(app, EM_RESULT_FILE_SET); - - ERR("libvlc_MediaPlayerPlaying %d %d", app->w, app->h); } From 0affdc76302bb3126b5dc435f10af2ed538f1ea7 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Fri, 21 Feb 2014 14:45:44 +0100 Subject: [PATCH 072/141] release: Bump version to 1.9.0-beta2 Second and most likely last beta release before the 1.9 final. Give it a good testing over the weekend. --- legacy/emotion_generic_players/NEWS | 3 +++ legacy/emotion_generic_players/configure.ac | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index d6812d2633..d66fd760b6 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -9,6 +9,7 @@ Improvements: * Emotion VLC: cleanup: only changed function order in file. * Simplify player version dir fallback to match efl 1.9 simplification changes * Emotion_generic_players - commented out unused func. + * Emotion VLC: no more need to send the size twice. Fixes: @@ -16,3 +17,5 @@ Fixes: The EM_CMD_STOP command do not have any parameter so it must be handled in the first call of the pipe. * Check for libvlc >= 2.0 as a minimum as we use 2.x funcs + * Emotion VLC: remove quite all the old hacks from loading stage which fixes the problem that + audio was audible on start diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 20fb15f54f..cc603e0b92 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -7,7 +7,7 @@ dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || ech ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [beta1]) +m4_define([relname], [beta2]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 59a9ddb93a006a9c564a40dbe802c152fce89119 Mon Sep 17 00:00:00 2001 From: davemds Date: Fri, 21 Feb 2014 20:54:08 +0100 Subject: [PATCH 073/141] Emotion VLC: fix the volume/mute bug. Set again the volume and the mute state every time the video start to play, this fix the setting of the volume/mute before the complete loading of the file. --- .../src/vlc/emotion_generic_vlc.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 069d04bb19..fbc8bb301b 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -48,6 +48,8 @@ struct _App { Ecore_Pipe *fd_write; // write commands for emotion here int opening; int playing; + int volume; + Eina_Bool audio_muted; int last_order; @@ -223,6 +225,8 @@ _event_cb(const struct libvlc_event_t *ev, void *data) break; case libvlc_MediaPlayerPlaying: DBG("libvlc_MediaPlayerPlaying"); + libvlc_audio_set_volume(app->mp, app->volume); + libvlc_audio_set_mute(app->mp, app->audio_muted); _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); break; case libvlc_MediaPlayerStopped: @@ -466,21 +470,19 @@ _mute_set(App *app, int mute) if (!app->mp) return; + app->audio_muted = mute; libvlc_audio_set_mute(app->mp, mute); } static void _volume_set(App *app, float volume) { - int vol; - DBG("Volume set %.2f", volume); if (!app->mp) return; - vol = volume * 100; - - libvlc_audio_set_volume(app->mp, vol); + app->volume = volume * 100; + libvlc_audio_set_volume(app->mp, app->volume); } static void From fb46a014f0c0ab4a807f8349eafb9b29e7d9cf6c Mon Sep 17 00:00:00 2001 From: davemds Date: Sat, 22 Feb 2014 11:26:40 +0100 Subject: [PATCH 074/141] Emotion VLC: recreate the player when end reached. Fix the restart-play-when-end-reached bug. --- .../src/vlc/emotion_generic_vlc.c | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index fbc8bb301b..177f9f728e 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -56,6 +56,7 @@ struct _App { Eina_Bool inited; }; +static void _player_setup(App *app); /* Commands sent to the emotion pipe */ #define SEND_CMD_PARAM(app, i) \ @@ -212,7 +213,7 @@ _event_cb(const struct libvlc_event_t *ev, void *data) switch (ev->type) { case libvlc_MediaPlayerTimeChanged: - DBG("libvlc_MediaPlayerTimeChanged"); + // DBG("libvlc_MediaPlayerTimeChanged"); _send_time_changed(app, ev); break; case libvlc_MediaPlayerLengthChanged: @@ -236,13 +237,15 @@ _event_cb(const struct libvlc_event_t *ev, void *data) case libvlc_MediaPlayerEndReached: DBG("libvlc_MediaPlayerEndReached"); app->playing = 0; + /* vlc had released the media_playere here, we create a new one */ + app->mp = libvlc_media_player_new_from_media(app->m); + _player_setup(app); _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); break; } ecore_thread_main_loop_end(); } - static void _tmp_playing_event_cb(const struct libvlc_event_t *ev, void *data) { @@ -309,6 +312,29 @@ _display(void *data, void *id EINA_UNUSED) eina_semaphore_release(&app->vs->lock, 1); } +static void +_player_setup(App *app) +{ + + libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); + libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); + + app->event_mgr = libvlc_media_player_event_manager(app->mp); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, + _event_cb, app); + libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, + _event_cb, app); +} /* Commands received from the emotion pipe */ static void @@ -361,23 +387,7 @@ _file_set_done(App *app) } else { - libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); - libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); - - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, - _event_cb, app); + _player_setup(app); } _send_cmd(app, EM_RESULT_FILE_SET_DONE); From 2e0fd02ec56af61383146a6f043bc8597fceb70d Mon Sep 17 00:00:00 2001 From: davemds Date: Sat, 22 Feb 2014 11:48:58 +0100 Subject: [PATCH 075/141] Emotion VLC: we have a typedef for 'struct _App'. Use it. --- .../src/vlc/emotion_generic_vlc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 177f9f728e..f15d718843 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -93,7 +93,7 @@ _send_file_closed(App *app) } static void -_send_time_changed(struct _App *app, const struct libvlc_event_t *ev) +_send_time_changed(App *app, const struct libvlc_event_t *ev) { float new_time = ev->u.media_player_time_changed.new_time; @@ -105,7 +105,7 @@ _send_time_changed(struct _App *app, const struct libvlc_event_t *ev) } static void -_send_resize(struct _App *app, int width, int height) +_send_resize(App *app, int width, int height) { _send_cmd(app, EM_RESULT_FRAME_SIZE); SEND_CMD_PARAM(app, width); @@ -113,7 +113,7 @@ _send_resize(struct _App *app, int width, int height) } static void -_send_track_info(struct _App *app, int cmd, int current, int count, libvlc_track_description_t *desc) +_send_track_info(App *app, int cmd, int current, int count, libvlc_track_description_t *desc) { _send_cmd(app, cmd); SEND_CMD_PARAM(app, current); @@ -129,7 +129,7 @@ _send_track_info(struct _App *app, int cmd, int current, int count, libvlc_track } static void -_send_all_track_info(struct _App *app) +_send_all_track_info(App *app) { int track_count, current; libvlc_track_description_t *desc; @@ -157,7 +157,7 @@ _send_all_track_info(struct _App *app) } static void -_send_all_meta_info(struct _App *app) +_send_all_meta_info(App *app) { const char *meta; @@ -186,7 +186,7 @@ _send_all_meta_info(struct _App *app) } static void -_send_length_changed(struct _App *app) +_send_length_changed(App *app) { float length = libvlc_media_player_get_length(app->mp); @@ -196,7 +196,7 @@ _send_length_changed(struct _App *app) } static void -_send_seekable_changed(struct _App *app, const struct libvlc_event_t *ev) +_send_seekable_changed(App *app, const struct libvlc_event_t *ev) { int seekable = ev->u.media_player_seekable_changed.new_seekable; @@ -451,7 +451,7 @@ _play(App *app, float pos) } static void -_position_set(struct _App *app, float position) +_position_set(App *app, float position) { libvlc_time_t new_time; From d9b0d0c146729539413d8e79f7e081c1ca813cd9 Mon Sep 17 00:00:00 2001 From: davemds Date: Sat, 22 Feb 2014 12:12:12 +0100 Subject: [PATCH 076/141] Emotion VLC: defer the resource free until the video is actually stopped. Fix vlc complainig on shutdown. --- .../src/vlc/emotion_generic_vlc.c | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index f15d718843..70a8255b94 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -47,6 +47,7 @@ struct _App { Ecore_Pipe *fd_read; // read commands from emotion here Ecore_Pipe *fd_write; // write commands for emotion here int opening; + int closing; int playing; int volume; Eina_Bool audio_muted; @@ -233,6 +234,21 @@ _event_cb(const struct libvlc_event_t *ev, void *data) case libvlc_MediaPlayerStopped: DBG("libvlc_MediaPlayerStopped"); _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); + if (app->closing) + { + free(app->filename); + app->filename = NULL; + free(app->subtitle_path); + app->subtitle_path = NULL; + libvlc_media_release(app->m); + app->m = NULL; + libvlc_media_player_release(app->mp); + app->mp = NULL; + emotion_generic_shm_free(app->vs); + app->playing = 0; + app->closing = 0; + _send_file_closed(app); + } break; case libvlc_MediaPlayerEndReached: DBG("libvlc_MediaPlayerEndReached"); @@ -402,19 +418,8 @@ _file_close(App *app) if (!app->mp) return; - app->playing = 0; + app->closing = 1; libvlc_media_player_stop(app->mp); - - free(app->filename); - free(app->subtitle_path); - if (app->mp) - { - libvlc_media_release(app->m); - libvlc_media_player_release(app->mp); - } - emotion_generic_shm_free(app->vs); - - _send_file_closed(app); } static void From e20f0a2418ffcb5d2694ad2eefe7f6991167bf5c Mon Sep 17 00:00:00 2001 From: davemds Date: Sat, 22 Feb 2014 12:19:34 +0100 Subject: [PATCH 077/141] Emotion VLC: use Eina_Bool instead of int for bools. And reorder members in the App struct. --- .../src/vlc/emotion_generic_vlc.c | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 70a8255b94..fb0d0cac5d 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -40,20 +40,20 @@ struct _App { libvlc_media_player_t *mp; libvlc_event_manager_t *event_mgr; + Ecore_Pipe *fd_read; // read commands from emotion here + Ecore_Pipe *fd_write; // write commands for emotion here + int last_order; // current command received from emotion + char *filename; char *subtitle_path; char *shmname; unsigned w, h; - Ecore_Pipe *fd_read; // read commands from emotion here - Ecore_Pipe *fd_write; // write commands for emotion here - int opening; - int closing; - int playing; int volume; Eina_Bool audio_muted; - int last_order; - + Eina_Bool opening; + Eina_Bool closing; + Eina_Bool playing; Eina_Bool inited; }; @@ -245,14 +245,14 @@ _event_cb(const struct libvlc_event_t *ev, void *data) libvlc_media_player_release(app->mp); app->mp = NULL; emotion_generic_shm_free(app->vs); - app->playing = 0; - app->closing = 0; + app->playing = EINA_FALSE; + app->closing = EINA_FALSE; _send_file_closed(app); } break; case libvlc_MediaPlayerEndReached: DBG("libvlc_MediaPlayerEndReached"); - app->playing = 0; + app->playing = EINA_FALSE; /* vlc had released the media_playere here, we create a new one */ app->mp = libvlc_media_player_new_from_media(app->m); _player_setup(app); @@ -371,7 +371,7 @@ _file_set(App *app) return; } - app->opening = 1; + app->opening = EINA_TRUE; /* Here we start playing and connect a temporary callback to know when * the file is parsed and ready to be played for real. @@ -389,7 +389,7 @@ _file_set_done(App *app) int r; DBG("Path: %s", app->filename); - app->opening = 0; + app->opening = EINA_FALSE; r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); if (!r) @@ -418,7 +418,7 @@ _file_close(App *app) if (!app->mp) return; - app->closing = 1; + app->closing = EINA_TRUE; libvlc_media_player_stop(app->mp); } @@ -451,7 +451,7 @@ _play(App *app, float pos) if (app->subtitle_path) libvlc_video_set_subtitle_file(app->mp, app->subtitle_path); - app->playing = 1; + app->playing = EINA_TRUE; } } @@ -559,7 +559,7 @@ _remote_command(void *data, void *buffer, unsigned int nbyte) libvlc_media_release(app->m); libvlc_media_player_release(app->mp); free(app->filename); - app->opening = 0; + app->opening = EINA_FALSE; } break; case EM_CMD_FILE_SET_DONE: @@ -696,10 +696,10 @@ main(int argc, const char *argv[]) app.subtitle_path = NULL; app.w = 0; app.h = 0; - app.opening = 0; - app.playing = 0; - app.last_order = EM_CMD_LAST; + app.opening = EINA_FALSE; + app.playing = EINA_FALSE; app.inited = EINA_FALSE; + app.last_order = EM_CMD_LAST; ecore_main_loop_begin(); From 3539f5c882b5ed64d541cbd5b09bb8fce38c6d1c Mon Sep 17 00:00:00 2001 From: davemds Date: Sat, 22 Feb 2014 13:03:52 +0100 Subject: [PATCH 078/141] Emotion VLC: fix send position_change while paused. VLC does not emit the TimeChanged event while the video is paused, so if the user change position while paused emotion is not aware of the change. This commit force the event to emotion if the video is paused --- .../src/vlc/emotion_generic_vlc.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index fb0d0cac5d..02d25ec42a 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -94,13 +94,15 @@ _send_file_closed(App *app) } static void -_send_time_changed(App *app, const struct libvlc_event_t *ev) +_send_time_changed(App *app) { - float new_time = ev->u.media_player_time_changed.new_time; + float new_time; - new_time /= 1000; if (app->vs->frame_drop > 1) return; + + new_time = libvlc_media_player_get_time(app->mp); + new_time /= 1000; _send_cmd(app, EM_RESULT_POSITION_CHANGED); SEND_CMD_PARAM(app, new_time); } @@ -215,7 +217,7 @@ _event_cb(const struct libvlc_event_t *ev, void *data) { case libvlc_MediaPlayerTimeChanged: // DBG("libvlc_MediaPlayerTimeChanged"); - _send_time_changed(app, ev); + _send_time_changed(app); break; case libvlc_MediaPlayerLengthChanged: DBG("libvlc_MediaPlayerLengthChanged"); @@ -460,12 +462,15 @@ _position_set(App *app, float position) { libvlc_time_t new_time; - DBG("Posistion set %.3f", position); + DBG("Position set %.3f", position); if (!app->mp) return; new_time = position * 1000; libvlc_media_player_set_time(app->mp, new_time); + + if (libvlc_media_player_get_state(app->mp) == libvlc_Paused) + _send_time_changed(app); } static void From 4286857217bd510da99d5104ec5a3633018443dc Mon Sep 17 00:00:00 2001 From: davemds Date: Sat, 22 Feb 2014 15:46:06 +0100 Subject: [PATCH 079/141] unify the usage of my name --- legacy/emotion_generic_players/AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/AUTHORS b/legacy/emotion_generic_players/AUTHORS index e64ccfdaad..e7965e98cb 100644 --- a/legacy/emotion_generic_players/AUTHORS +++ b/legacy/emotion_generic_players/AUTHORS @@ -7,7 +7,7 @@ Pierre Le Magourou Rafael Antognolli Sohyun Kim Carsten Haitzler (Rasterman) -davemds +Davide Andreoli Gustavo Sverzut Barbieri Stefan Schmidt Bruno Dilly From fd729745626615fc68d8d2dc6a95b66e1e67253a Mon Sep 17 00:00:00 2001 From: davemds Date: Sun, 23 Feb 2014 11:49:42 +0100 Subject: [PATCH 080/141] Emotion VLC: fix the random-player-stop bug !! Bug explanation: VLC has 2 different async mechanism that we use, one is the event callback system that report player status changes and one is the display func that is called at every frame. They run independently and can occur "at the same time". We use ecore_pipe_write() in both and the result is that occasionally we send to the pipe 2 commands mixed togheter (the FRAME_NEW and the LENGTH_CHANGED). So emotion (on the other side of the pipe) receive a wrong command and stop the player. The fix: Use a mutex (Eina_Lock) while sending commands to the pipe so that we can send 2 commands "at the same time". The SPANK credits: BIG BIG SPANK goes to cedric (of course) that removed the command lock mechanism in revision 10ebda80419 --- .../src/vlc/emotion_generic_vlc.c | 91 ++++++++++++++++--- 1 file changed, 76 insertions(+), 15 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 02d25ec42a..3f90bd7b22 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -42,6 +42,7 @@ struct _App { Ecore_Pipe *fd_read; // read commands from emotion here Ecore_Pipe *fd_write; // write commands for emotion here + Eina_Lock cmd_mutex;// lock used to send just one command at a time int last_order; // current command received from emotion char *filename; @@ -59,7 +60,8 @@ struct _App { static void _player_setup(App *app); -/* Commands sent to the emotion pipe */ + +/* Utilities to send commands back to emotion */ #define SEND_CMD_PARAM(app, i) \ if ((app)->fd_write) \ if (!ecore_pipe_write((app)->fd_write, &(i), sizeof((i)))) \ @@ -68,9 +70,13 @@ static void _player_setup(App *app); static void _send_cmd(App *app, int cmd) { - if (app->fd_write) - if (!ecore_pipe_write(app->fd_write, &cmd, sizeof(cmd))) - ecore_main_loop_quit(); + if (!app->fd_write) + return; + + eina_lock_take(&app->cmd_mutex); /* LOCK HERE */ + + if (!ecore_pipe_write(app->fd_write, &cmd, sizeof(cmd))) + ecore_main_loop_quit(); } static void @@ -87,10 +93,18 @@ _send_cmd_str(App *app, const char *str) ecore_main_loop_quit(); } +static void +_send_cmd_finish(App *app) +{ + eina_lock_release(&app->cmd_mutex); /* UNLOCK HERE */ +} + +/* Commands sent to the emotion pipe */ static void _send_file_closed(App *app) { _send_cmd(app, EM_RESULT_FILE_CLOSE); + _send_cmd_finish(app); } static void @@ -105,6 +119,7 @@ _send_time_changed(App *app) new_time /= 1000; _send_cmd(app, EM_RESULT_POSITION_CHANGED); SEND_CMD_PARAM(app, new_time); + _send_cmd_finish(app); } static void @@ -113,6 +128,7 @@ _send_resize(App *app, int width, int height) _send_cmd(app, EM_RESULT_FRAME_SIZE); SEND_CMD_PARAM(app, width); SEND_CMD_PARAM(app, height); + _send_cmd_finish(app); } static void @@ -129,6 +145,7 @@ _send_track_info(App *app, int cmd, int current, int count, libvlc_track_descrip _send_cmd_str(app, name); desc = desc->p_next; } + _send_cmd_finish(app); } static void @@ -186,6 +203,8 @@ _send_all_meta_info(App *app) _send_cmd_str(app, meta); meta = libvlc_media_get_meta(app->m, libvlc_meta_TrackNumber); _send_cmd_str(app, meta); + + _send_cmd_finish(app); } static void @@ -196,6 +215,7 @@ _send_length_changed(App *app) length /= 1000; _send_cmd(app, EM_RESULT_LENGTH_CHANGED); SEND_CMD_PARAM(app, length); + _send_cmd_finish(app); } static void @@ -205,8 +225,47 @@ _send_seekable_changed(App *app, const struct libvlc_event_t *ev) _send_cmd(app, EM_RESULT_SEEKABLE_CHANGED); SEND_CMD_PARAM(app, seekable); + _send_cmd_finish(app); } +static void +_send_playback_started(App *app) +{ + _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); + _send_cmd_finish(app); +} + +static void +_send_playback_stopped(App *app) +{ + _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); + _send_cmd_finish(app); +} + +static void +_send_init(App *app) +{ + _send_cmd(app, EM_RESULT_INIT); + _send_cmd_finish(app); +} + +static void +_send_file_set(App *app) +{ + _send_cmd(app, EM_RESULT_FILE_SET); + _send_cmd_finish(app); +} + +static void +_send_file_set_done(App *app, int success) +{ + _send_cmd(app, EM_RESULT_FILE_SET_DONE); + SEND_CMD_PARAM(app, success); + _send_cmd_finish(app); +} + + +/* VLC events and callbacks */ static void _event_cb(const struct libvlc_event_t *ev, void *data) { @@ -231,11 +290,11 @@ _event_cb(const struct libvlc_event_t *ev, void *data) DBG("libvlc_MediaPlayerPlaying"); libvlc_audio_set_volume(app->mp, app->volume); libvlc_audio_set_mute(app->mp, app->audio_muted); - _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); + _send_playback_started(app); break; case libvlc_MediaPlayerStopped: DBG("libvlc_MediaPlayerStopped"); - _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); + _send_playback_stopped(app); if (app->closing) { free(app->filename); @@ -258,7 +317,7 @@ _event_cb(const struct libvlc_event_t *ev, void *data) /* vlc had released the media_playere here, we create a new one */ app->mp = libvlc_media_player_new_from_media(app->m); _player_setup(app); - _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); + _send_playback_stopped(app); break; } ecore_thread_main_loop_end(); @@ -291,10 +350,9 @@ _tmp_playing_event_cb(const struct libvlc_event_t *ev, void *data) _send_all_meta_info(app); /* ok, we are done! Now let emotion create the shmem for us */ - _send_cmd(app, EM_RESULT_FILE_SET); + _send_file_set(app); } - static void * _lock(void *data, void **pixels) { @@ -326,7 +384,10 @@ _display(void *data, void *id EINA_UNUSED) app->vs->frame.player = app->vs->frame.next; app->vs->frame.next = app->vs->frame.last; if (!app->vs->frame_drop++) - _send_cmd(app, EM_RESULT_FRAME_NEW); + { + _send_cmd(app, EM_RESULT_FRAME_NEW); + _send_cmd_finish(app); + } eina_semaphore_release(&app->vs->lock, 1); } @@ -348,8 +409,6 @@ _player_setup(App *app) _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPositionChanged, - _event_cb, app); libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, _event_cb, app); } @@ -408,8 +467,7 @@ _file_set_done(App *app) _player_setup(app); } - _send_cmd(app, EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(app, r); + _send_file_set_done(app, r); } static void @@ -588,7 +646,7 @@ _remote_command(void *data, void *buffer, unsigned int nbyte) case EM_CMD_INIT: app->shmname = strdup(buffer); app->inited = EINA_TRUE; - _send_cmd(app, EM_RESULT_INIT); + _send_init(app); break; case EM_CMD_FILE_SET: app->filename = strdup(buffer); @@ -688,6 +746,8 @@ main(int argc, const char *argv[]) ecore_init(); + eina_lock_new(&app.cmd_mutex); + app.fd_read = ecore_pipe_full_add(_remote_command, &app, atoi(argv[1]), -1, EINA_FALSE, EINA_FALSE); app.fd_write = ecore_pipe_full_add(_dummy, NULL, @@ -712,6 +772,7 @@ main(int argc, const char *argv[]) ecore_pipe_del(app.fd_read); ecore_pipe_del(app.fd_write); ecore_event_handler_del(hld); + eina_lock_free(&app.cmd_mutex); ecore_shutdown(); eina_shutdown(); From 79ccf66a5cc55d57a4718084d50545968e6aee4c Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 24 Feb 2014 17:04:06 +0100 Subject: [PATCH 081/141] Release version 1.9.0 --- legacy/emotion_generic_players/NEWS | 6 ++++++ legacy/emotion_generic_players/configure.ac | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index d66fd760b6..bdebc48bf9 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -10,6 +10,8 @@ Improvements: * Simplify player version dir fallback to match efl 1.9 simplification changes * Emotion_generic_players - commented out unused func. * Emotion VLC: no more need to send the size twice. + * Emotion VLC: use Eina_Bool instead of int for bools. + * Emotion VLC: defer the resource free until the video is actually stopped. Fixes: @@ -19,3 +21,7 @@ Fixes: * Check for libvlc >= 2.0 as a minimum as we use 2.x funcs * Emotion VLC: remove quite all the old hacks from loading stage which fixes the problem that audio was audible on start + * Emotion VLC: fix the random-player-stop bug !! + * Emotion VLC: fix send position_change while paused. + * Emotion VLC: recreate the player when end reached. + * Emotion VLC: fix the volume/mute bug. diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index cc603e0b92..a079f33c78 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -7,7 +7,7 @@ dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || ech ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [beta2]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From f44914a730a4e981e3f164f45919ac97bf9a3f16 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Wed, 26 Feb 2014 09:34:38 +0100 Subject: [PATCH 082/141] configure: Bump version to 1.9.99 to indicate development cycle 1.9 is released and the master branch is now in development mode again. Make sure the version indicates that. --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index a079f33c78..4bb4d157e5 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,7 +2,7 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [9]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) From bbf50133a36738e5e408964db00c431e64e70b0e Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 28 Apr 2014 12:56:05 +0200 Subject: [PATCH 083/141] release: v1.10.0 alpha1 --- legacy/emotion_generic_players/NEWS | 7 ++++++- legacy/emotion_generic_players/configure.ac | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index bdebc48bf9..03c6966a9a 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,4 +1,9 @@ -Emotion Generic Players 1.9.0 +Emotion Generic Players 1.10.0 + +Changes since Emotion Generic Players 1.9.0: +-------------------------------------------- + +No changes since version 1.9.0 Changes since Emotion Generic Players 1.8.0: -------------------------------------------- diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 4bb4d157e5..3cc805ef3f 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [9]) -m4_define([v_mic], [99]) +m4_define([v_min], [10]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) +m4_define([relname], [release]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From 9f478993a577b87b37aa459bd4a9359449e28cd1 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 28 Apr 2014 13:24:08 +0200 Subject: [PATCH 084/141] release: Fix alpha release tarball name --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 3cc805ef3f..9996c01077 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 3310d81a8267ce587a6021f3a2867fa4bb8435ad Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 5 May 2014 16:19:07 +0200 Subject: [PATCH 085/141] release: v1.10.0 beta1 --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 9996c01077..1fb705e7dc 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From c4f8ae2ad9eddc14f4c4222652cff747d502e6b4 Mon Sep 17 00:00:00 2001 From: Cedric Bail Date: Fri, 9 May 2014 12:02:15 +0200 Subject: [PATCH 086/141] vlc: fix ogv support in emotion_generic. T1192 Thanks for the help from Luca Barbato. --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 3f90bd7b22..11343bbbe9 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -717,6 +717,8 @@ main(int argc, const char *argv[]) "--no-stats", /* no stats */ "--no-inhibit", /* we don't want interfaces */ "--no-disable-screensaver", /* we don't want interfaces */ + "--codec", "avcodec", + "--demux", "avformat" }; vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); From 809c21404de6a61d427eeebbdefa2c42b5b7d046 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 12 May 2014 14:59:02 +0200 Subject: [PATCH 087/141] release: v1.10.0 beta2 --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 1fb705e7dc..e12577eb65 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 4ef0e660bc5b5150d9461c76272e1f2060e0bc5c Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 19 May 2014 11:11:26 +0200 Subject: [PATCH 088/141] release: v1.10.0 beta3 --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index e12577eb65..63079da121 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From cced1d059686aca965311c9a8cc546ffa2f54af3 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 26 May 2014 10:09:44 +0200 Subject: [PATCH 089/141] autotools: Add xz as additional tarball format If this turns out well we will remove bz2 in 1.12 --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 63079da121..bc76e47f35 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -28,7 +28,7 @@ AC_CONFIG_HEADERS([config.h]) AC_USE_SYSTEM_EXTENSIONS AC_CANONICAL_HOST -AM_INIT_AUTOMAKE([1.6 dist-bzip2]) +AM_INIT_AUTOMAKE([1.6 dist-bzip2 dist-xz]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_LANG([C]) From 5dbf9adb3bb86ed00727e032b4a74f557c1b7823 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 26 May 2014 10:12:24 +0200 Subject: [PATCH 090/141] release: v1.10.0 --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index bc76e47f35..dded4820f9 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From d4ad352a2081d0b30ccddd6d9a5ef9c59bca7d5c Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 26 May 2014 12:17:41 +0200 Subject: [PATCH 091/141] release: Switch back to development mode Open for 1.11 changes now. --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index dded4820f9..0a6c2730d3 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,12 +2,12 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [10]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [release]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From 3e7d29339cb9b906d0f111acc3871eb7db9b201b Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Wed, 28 May 2014 21:13:34 +0200 Subject: [PATCH 092/141] build: Add fake doc target Needed to have it run on the nightly jenkins builds. --- legacy/emotion_generic_players/Makefile.am | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/legacy/emotion_generic_players/Makefile.am b/legacy/emotion_generic_players/Makefile.am index 03550265d1..ec4045b682 100644 --- a/legacy/emotion_generic_players/Makefile.am +++ b/legacy/emotion_generic_players/Makefile.am @@ -50,3 +50,8 @@ src_vlc_vlc_SOURCES = src/vlc/emotion_generic_vlc.c src_vlc_vlc_CPPFLAGS = @VLC_CFLAGS@ src_vlc_vlc_LDADD = @VLC_LIBS@ endif + +.PHONY: doc + +doc: + @echo "Empty doc target until we have real documentation." From 3eb6976f3964a99bcf6fe4e3973eff653586c219 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 5 Jun 2014 17:19:12 +0100 Subject: [PATCH 093/141] Add autogen.sh to EXTRA_DIST. Thanks to Jef91 for pointing this out. @fix --- legacy/emotion_generic_players/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/legacy/emotion_generic_players/Makefile.am b/legacy/emotion_generic_players/Makefile.am index ec4045b682..8c5907bfe6 100644 --- a/legacy/emotion_generic_players/Makefile.am +++ b/legacy/emotion_generic_players/Makefile.am @@ -13,6 +13,7 @@ EXTRA_DIST = \ README \ AUTHORS \ COPYING \ +autogen.sh \ m4/efl_compiler.m4 \ m4/emotion_generic_players.m4 From 42ea8644f617d4905ac12c2d92fda9dba68464c0 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 5 Jun 2014 17:28:52 +0100 Subject: [PATCH 094/141] Revert "Add autogen.sh to EXTRA_DIST." This reverts commit d500d92653b9ec0de2ae111d454f86747930d3fb. --- legacy/emotion_generic_players/Makefile.am | 1 - 1 file changed, 1 deletion(-) diff --git a/legacy/emotion_generic_players/Makefile.am b/legacy/emotion_generic_players/Makefile.am index 8c5907bfe6..ec4045b682 100644 --- a/legacy/emotion_generic_players/Makefile.am +++ b/legacy/emotion_generic_players/Makefile.am @@ -13,7 +13,6 @@ EXTRA_DIST = \ README \ AUTHORS \ COPYING \ -autogen.sh \ m4/efl_compiler.m4 \ m4/emotion_generic_players.m4 From 1a0cee13233270bfc42807bc479201c687cb72e7 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Fri, 1 Aug 2014 10:51:34 +0200 Subject: [PATCH 095/141] release: Update NEWS and bump version for 1.11.0-alpha1 release --- legacy/emotion_generic_players/NEWS | 14 +++++++++++++- legacy/emotion_generic_players/configure.ac | 8 ++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index 03c6966a9a..cfaf38e60f 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,4 +1,9 @@ -Emotion Generic Players 1.10.0 +Emotion Generic Players 1.11.0 + +Changes since Emotion Generic Players 1.10.0: +--------------------------------------------- + +No changes since version 1.10.0 Changes since Emotion Generic Players 1.9.0: -------------------------------------------- @@ -30,3 +35,10 @@ Fixes: * Emotion VLC: fix send position_change while paused. * Emotion VLC: recreate the player when end reached. * Emotion VLC: fix the volume/mute bug. +Changes since 1.10.0: +--------------------- +Features: + +Fixes: + + * Add autogen.sh to EXTRA_DIST. diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 0a6c2730d3..5424d9c10f 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [10]) -m4_define([v_mic], [99]) +m4_define([v_min], [11]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) +m4_define([relname], [release]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 272365fb6f2472666501626bec24fd451aaaa462 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Fri, 1 Aug 2014 11:00:45 +0200 Subject: [PATCH 096/141] NEWS: Remove wrong entry for 1.11 changes --- legacy/emotion_generic_players/NEWS | 7 ------- 1 file changed, 7 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index cfaf38e60f..66cc03be1b 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -35,10 +35,3 @@ Fixes: * Emotion VLC: fix send position_change while paused. * Emotion VLC: recreate the player when end reached. * Emotion VLC: fix the volume/mute bug. -Changes since 1.10.0: ---------------------- -Features: - -Fixes: - - * Add autogen.sh to EXTRA_DIST. From d3a5d79229b92c50f00462d1c8a8e719e4fea6a6 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 4 Aug 2014 19:52:31 +0200 Subject: [PATCH 097/141] release: Update NEWS and bump version for 1.11.0-beta1 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 5424d9c10f..70dd98e9e1 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From a34bc904b7c364285a0ad91a26ea6a2553a088cb Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 11 Aug 2014 12:53:27 +0200 Subject: [PATCH 098/141] release: Update NEWS and bump version for 1.11.0-beta2 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 70dd98e9e1..a1e5ea7000 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 849cb1190aba455c16e22cd46cbcd90d7752603c Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 15 Aug 2014 00:26:05 +0900 Subject: [PATCH 099/141] emotion generic players - work around vlc bug that segvs this should fix T1530 --- .../emotion_generic_players/src/vlc/emotion_generic_vlc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 11343bbbe9..0e328ca356 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -717,11 +717,14 @@ main(int argc, const char *argv[]) "--no-stats", /* no stats */ "--no-inhibit", /* we don't want interfaces */ "--no-disable-screensaver", /* we don't want interfaces */ - "--codec", "avcodec", - "--demux", "avformat" +// XXX: causes newer vlcs to segv! +// "--codec", "avcodec", +// XXX: disable this just in case +// "--demux", "avformat" }; vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); + memset(&app, 0, sizeof(app)); if (!eina_init()) { EINA_LOG_CRIT("Can't initialize generic vlc player, eina failed."); From 41c00ffd8669de9c46aceb06b4897d643e3654f2 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Fri, 15 Aug 2014 11:39:03 +0200 Subject: [PATCH 100/141] README: Update version for upcoming 1.11 release --- legacy/emotion_generic_players/README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/README b/legacy/emotion_generic_players/README index 783fe37d53..1681ae2b1d 100644 --- a/legacy/emotion_generic_players/README +++ b/legacy/emotion_generic_players/README @@ -1,5 +1,5 @@ -Emotion Generic Players 1.9.0 -============================= +Emotion Generic Players 1.11.0 +============================== ****************************************************************************** FOR ANY ISSUES PLEASE EMAIL: From 8c5db73b9c6fb16d85b65570e11583c69f49505b Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Fri, 15 Aug 2014 11:41:05 +0200 Subject: [PATCH 101/141] NEWS: Manually add fix for T1530 Not tagged with @fix so our tooling would not pick it up. As this is the only relevant change here in 1.11 add it by hand. --- legacy/emotion_generic_players/NEWS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index 66cc03be1b..b9271dc49a 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -3,7 +3,8 @@ Emotion Generic Players 1.11.0 Changes since Emotion Generic Players 1.10.0: --------------------------------------------- -No changes since version 1.10.0 +Fixes: + * emotion generic players - work around vlc bug that segvs (T1530) Changes since Emotion Generic Players 1.9.0: -------------------------------------------- From ebfa3db4cd27d31146d3cf23bea6350a7f95ceab Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Wed, 20 Aug 2014 17:38:19 +0200 Subject: [PATCH 102/141] release: Update NEWS and bump version for 1.11.0 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index a1e5ea7000..fe62e3d391 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 93378011c8d9753033c99f4bced24fe5b929ed3e Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Wed, 20 Aug 2014 18:01:08 +0200 Subject: [PATCH 103/141] configure: Switch to dev mode again and set version to .99 Merge window for 1.12 is open. --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index fe62e3d391..6847a7224a 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,12 +2,12 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [11]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [release]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From 7a09113ac0ec99a13cd67ccac55e23454132e3c7 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 21 Oct 2014 17:03:49 +0200 Subject: [PATCH 104/141] release: Update NEWS and bump version for 1.12.0-alpha1 release --- legacy/emotion_generic_players/NEWS | 7 ++++++- legacy/emotion_generic_players/configure.ac | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index b9271dc49a..e286650d98 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,4 +1,9 @@ -Emotion Generic Players 1.11.0 +Emotion Generic Players 1.12.0 + +Changes since 1.11.0: +--------------------- + +No significant changes in this release. Changes since Emotion Generic Players 1.10.0: --------------------------------------------- diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 6847a7224a..168da968b6 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [11]) -m4_define([v_mic], [99]) +m4_define([v_min], [12]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) +m4_define([relname], [release]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 686e71423f5669db54588db8343be7d579e2e655 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 27 Oct 2014 13:20:24 +0100 Subject: [PATCH 105/141] release: Update NEWS and bump version for 1.12.0-beta1 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 168da968b6..7ea34fbf42 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 23d56d0d9f2cc251755c65d4f00d995a55ecb56d Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 3 Nov 2014 13:00:32 +0100 Subject: [PATCH 106/141] release: Update NEWS and bump version for 1.12.0-beta2 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 7ea34fbf42..3ee15a3896 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 57b0d1d75d23e284e41efdef1092140984f0462f Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 10 Nov 2014 12:27:59 +0100 Subject: [PATCH 107/141] release: Update NEWS and bump version for 1.12.0 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 3ee15a3896..2fe21c5393 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 8f461252801c9fcd2aa13ee1082242b3a220f9ad Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 10 Nov 2014 14:03:35 +0100 Subject: [PATCH 108/141] configure: Switch to dev mode again. Merge window for 1.13 is open now. --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 2fe21c5393..ccabd5ef23 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,12 +2,12 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [12]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [release]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From d609ed1ecc149f69df8471f0bb819955e960069a Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 11 Nov 2014 10:26:36 +0100 Subject: [PATCH 109/141] build: Remove bzip2 tarballs from distcheck When adding xz as third compression format in May 2014 I mentioned that I'm going to remove bzip2 in favor of xz in 1.12. I heard no complains but I left it in for 1.12. With 1.13 starting its time to remove it. From now on it will be only gz and xz compressed tarballs. --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index ccabd5ef23..37177f41b9 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -28,7 +28,7 @@ AC_CONFIG_HEADERS([config.h]) AC_USE_SYSTEM_EXTENSIONS AC_CANONICAL_HOST -AM_INIT_AUTOMAKE([1.6 dist-bzip2 dist-xz]) +AM_INIT_AUTOMAKE([1.6 dist-xz]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_LANG([C]) From b2acbad301f1c132d248625c2766f340d627360a Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 12 Jan 2015 14:10:20 +0100 Subject: [PATCH 110/141] release: Update NEWS and bump version for 1.13.0-alpha1 release --- legacy/emotion_generic_players/NEWS | 7 ++++++- legacy/emotion_generic_players/configure.ac | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index e286650d98..26600f3688 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,4 +1,9 @@ -Emotion Generic Players 1.12.0 +Emotion Generic Players 1.13.0 + +Changes since 1.12.0: +--------------------- + +No significant changes in this release. Changes since 1.11.0: --------------------- diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 37177f41b9..c3f86937a4 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [12]) -m4_define([v_mic], [99]) +m4_define([v_min], [13]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) +m4_define([relname], [release]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From bad00245f76b2d53bd7276956328c64b55c5be20 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 19 Jan 2015 15:10:33 +0100 Subject: [PATCH 111/141] release: Update NEWS and bump version for 1.13.0-beta1 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index c3f86937a4..a535aa5028 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 0298af3f9291f621482d902014de8096891680b8 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 26 Jan 2015 13:27:54 +0100 Subject: [PATCH 112/141] release: Update NEWS and bump version for 1.13.0-beta2 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index a535aa5028..171a3d2450 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 4d5cfe2d24e510730e9defc9ef1098669c33aefb Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 3 Feb 2015 10:17:21 +0100 Subject: [PATCH 113/141] release: Update NEWS and bump version for 1.13.0-beta3 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 171a3d2450..be3c5d5b98 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 0a12c7c3e42644e111e758e48ce9d9f9827beea6 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 9 Feb 2015 13:34:35 +0100 Subject: [PATCH 114/141] release: Update NEWS and bump version for 1.13.0 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index be3c5d5b98..9f00d54e0f 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 52932e89cdba93b757656fe0b07bcea700403d57 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 9 Feb 2015 14:10:55 +0100 Subject: [PATCH 115/141] configure: Switch to dev mode again. Merge window for 1.14 is open now. --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 9f00d54e0f..d588a8fb8c 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,12 +2,12 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [13]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [release]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From ed95e46ee6efaaa904737827a47c480de6509ae7 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 7 Apr 2015 14:26:54 +0200 Subject: [PATCH 116/141] release: Update NEWS and bump version for 1.14.0-alpha1 release --- legacy/emotion_generic_players/NEWS | 9 ++++++++- legacy/emotion_generic_players/configure.ac | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index 26600f3688..94d3cdec7d 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,4 +1,11 @@ -Emotion Generic Players 1.13.0 +============================== +Emotion Generic Players 1.14.0 +============================== + +Changes since 1.13.0: +--------------------- + +No significant changes in this release. Changes since 1.12.0: --------------------- diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index d588a8fb8c..becefb53d8 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [13]) -m4_define([v_mic], [99]) +m4_define([v_min], [14]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) +m4_define([relname], [release]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 34aa385d5742bfddc1845f14226b4264e5e6f1c7 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 13 Apr 2015 16:11:45 +0200 Subject: [PATCH 117/141] release: Update NEWS and bump version for 1.14.0-beta1 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index becefb53d8..fe83562f22 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 8f39dba4c80d37e9b5d9bdf71fe22e52bde2d20a Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 20 Apr 2015 12:37:25 +0200 Subject: [PATCH 118/141] release: Update NEWS and bump version for 1.14.0-beta2 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index fe83562f22..008e709ffe 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From af35f43ab4d79990d0c0507f6cf2803dda313081 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 27 Apr 2015 14:48:05 +0200 Subject: [PATCH 119/141] release: Update NEWS and bump version for 1.14.0-beta3 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 008e709ffe..04f01f4ac3 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 4173b271cea9363941f2bc819f801642608c3d38 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Wed, 6 May 2015 15:29:03 +0200 Subject: [PATCH 120/141] release: Update NEWS and bump version for 1.14.0 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 04f01f4ac3..882f29634b 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From b9c18a968917ecf1e519e55b022a12b5e8b9118a Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Wed, 6 May 2015 16:01:28 +0200 Subject: [PATCH 121/141] configure: Switch to dev mode again. Merge window for 1.15 is open now. --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 882f29634b..38ed771380 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,12 +2,12 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [14]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [release]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From 8087933c2200a9c52efe0d862dd143567d4e835a Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Thu, 9 Jul 2015 04:28:30 +0900 Subject: [PATCH 122/141] release: Update NEWS and bump version for 1.15.0-alpha1 release --- legacy/emotion_generic_players/NEWS | 7 ++++++- legacy/emotion_generic_players/configure.ac | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index 94d3cdec7d..ed7e089d81 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,7 +1,12 @@ ============================== -Emotion Generic Players 1.14.0 +Emotion Generic Players 1.15.0 ============================== +Changes since 1.14.0: +--------------------- + +No significant changes in this release. + Changes since 1.13.0: --------------------- diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 38ed771380..0aa5048f5f 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [14]) -m4_define([v_mic], [99]) +m4_define([v_min], [15]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) +m4_define([relname], [release]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 89727d8718eddfd6edebd31059ce2e691a546a55 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Tue, 14 Jul 2015 00:13:36 +0900 Subject: [PATCH 123/141] release: Update NEWS and bump version for 1.15.0-beta1 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 0aa5048f5f..4fc3a1bdac 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 7680d73d6ab917c56a0acd2375935fdf605b8c56 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Tue, 21 Jul 2015 08:35:45 +0900 Subject: [PATCH 124/141] release: Update NEWS and bump version for 1.15.0-beta2 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 4fc3a1bdac..bf600c5e58 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 13c18707ef0f5d993e909a3a28940db942349963 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Tue, 28 Jul 2015 01:42:34 +0900 Subject: [PATCH 125/141] release: Update NEWS and bump version for 1.15.0-beta3 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index bf600c5e58..1d9d1b54fa 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 37380956078c1e82370fc87970d2d026ac9d4ec6 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 4 Aug 2015 11:19:16 +0200 Subject: [PATCH 126/141] release: Update NEWS and bump version for 1.15.0 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 1d9d1b54fa..e3a7b1a992 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 1908d08a7df272d8a35f57737ad70094f3dafd5b Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 4 Aug 2015 11:44:46 +0200 Subject: [PATCH 127/141] configure: Switch to dev mode again. Merge window for 1.16 is open now --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index e3a7b1a992..c1995f8071 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,12 +2,12 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [15]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [release]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From 841283eade019406f145aab3891c927eb8413280 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 5 Oct 2015 16:41:41 +0200 Subject: [PATCH 128/141] release: Update NEWS and bump version for 1.16.0-alpha1 release --- legacy/emotion_generic_players/NEWS | 7 ++++++- legacy/emotion_generic_players/configure.ac | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index ed7e089d81..a29c62193f 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,7 +1,12 @@ ============================== -Emotion Generic Players 1.15.0 +Emotion Generic Players 1.16.0 ============================== +Changes since 1.15.0: +--------------------- + +No significant changes in this release. + Changes since 1.14.0: --------------------- diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index c1995f8071..207aa5f2ec 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,13 +1,13 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) -m4_define([v_min], [15]) -m4_define([v_mic], [99]) +m4_define([v_min], [16]) +m4_define([v_mic], [0]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) +m4_define([relname], [release]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 83f08f410da12926a6d981401ac47473b31bd02f Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 12 Oct 2015 12:08:53 +0200 Subject: [PATCH 129/141] release: Update NEWS and bump version for 1.16.0-beta1 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 207aa5f2ec..293afaf030 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From d656c30ebdd8587278d4e0d13f17b6b6c436445b Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 19 Oct 2015 13:54:35 +0200 Subject: [PATCH 130/141] release: Update NEWS and bump version for 1.16.0-beta2 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 293afaf030..31895a2d80 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 624e67ec5f04f63eae76c61c3d99deb27e700ea6 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 26 Oct 2015 03:58:15 +0100 Subject: [PATCH 131/141] release: Update NEWS and bump version for 1.16.0-beta3 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 31895a2d80..963d0d8df2 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From fd5c45e9fd73aa66b0a9677bd6c88812bcf121ca Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 9 Nov 2015 11:07:31 +0100 Subject: [PATCH 132/141] release: Update NEWS and bump version for 1.16.0 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 963d0d8df2..c75d488f9e 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([emotion_generic_players], [v_ver-beta3], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 53fab398d035ffa311e9aa7d31cb4add813b9b92 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 9 Nov 2015 11:47:13 +0100 Subject: [PATCH 133/141] configure: Switch to dev mode again. Merge window for 1.17 is open now --- legacy/emotion_generic_players/configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index c75d488f9e..a526807fb1 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -2,12 +2,12 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [16]) -m4_define([v_mic], [0]) +m4_define([v_mic], [99]) dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) ##-- When released, remove the dnl on the below line dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [release]) +m4_define([relname], [dev]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], From ce482412495c24ded0448e788799f6949ec805ac Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 9 Nov 2015 16:10:23 +0100 Subject: [PATCH 134/141] build: use the same version handling macros as efl and elementary Instead of having our slightly different set of macros here for version handling switch to the efl.m4 file we are already using. This annoyed me since I took over the release handling 2 years back. --- legacy/emotion_generic_players/configure.ac | 23 +- legacy/emotion_generic_players/m4/efl.m4 | 449 ++++++++++++++++++++ 2 files changed, 451 insertions(+), 21 deletions(-) create mode 100644 legacy/emotion_generic_players/m4/efl.m4 diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index a526807fb1..cfd9156b55 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,24 +1,5 @@ -##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -m4_define([v_maj], [1]) -m4_define([v_min], [16]) -m4_define([v_mic], [99]) -dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n'])) -##-- When released, remove the dnl on the below line -dnl m4_undefine([v_rev]) -##-- When doing snapshots - change soname. remove dnl on below line -m4_define([relname], [dev]) -dnl m4_define([v_rel], [-release relname]) -##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], -[m4_define([v_ver], [v_maj.v_min.v_mic])]) -m4_define([lt_cur], m4_eval(v_maj + v_min)) -m4_define([lt_rev], v_mic) -m4_define([lt_age], v_min) -##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## - -AC_INIT([emotion_generic_players], [v_ver], [enlightenment-devel@lists.sourceforge.net]) +EFL_VERSION([1], [16], [99], [dev]) +AC_INIT([emotion_generic_players], [efl_version], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/legacy/emotion_generic_players/m4/efl.m4 b/legacy/emotion_generic_players/m4/efl.m4 new file mode 100644 index 0000000000..3598ce78fe --- /dev/null +++ b/legacy/emotion_generic_players/m4/efl.m4 @@ -0,0 +1,449 @@ +dnl file to manage modules in efl + +dnl EFL_VERSION(major, minor, micro, release) +dnl This setup EFL version information and should be called BEFORE AC_INIT(). +dnl +dnl release parameter is 'dev' to use from SVN or libtool -release field. +dnl It may be empty if not dev (svn/live build) and no -release is to be used. +dnl +dnl Examples: +dnl EFL_VERSION(1, 7, 99, dev) +dnl EFL_VERSION(1, 7, 99, ver-1234) +dnl This will define couple of m4 symbols: +dnl v_maj = given major number (first parameter) +dnl v_min = given minor number (second parameter) +dnl v_mic = given micro number (third parameter) +dnl v_rev = if release, it's 0, otherwise it's dev_version. +dnl v_rel = if release, it's -release followed by fourth parameter, +dnl otherwise it's empty. (mostly for libtool) +dnl efl_version = if release, it's major.minor.micro, otherwise it's +dnl major.minor.micro.dev_version +dnl dev_version = development version (svn revision). +dnl def_build_profile = dev or release based on 'dev' release parameter. +AC_DEFUN([EFL_VERSION], +[dnl +m4_define([v_maj], [$1])dnl +m4_define([v_min], [$2])dnl +m4_define([v_mic], [$3])dnl +m4_define([dev_version], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl +m4_define([v_rev], m4_if($4, dev, [dev_version], [0]))dnl +m4_define([v_rel], [])dnl +m4_define([def_build_profile], m4_if($4, dev, [dev], [release]))dnl +m4_define([efl_version], m4_if($4, dev, [v_maj.v_min.v_mic.v_rev], [v_maj.v_min.v_mic]))dnl +dnl m4_define([efl_version], [v_maj.v_min.v_mic])dnl +]) + +dnl EFL_COLOR +dnl will check if terminal supports color and if color is wanted by user. +dnl +dnl Used Variables: +dnl WANT_COLOR: if no, forces no color output. +dnl TERM: used to check if color should be enabled. +dnl +dnl Defined Variables: +dnl COLOR_YES: to be used in positive/yes conditions +dnl COLOR_NO: to be used in negative/no conditions +dnl COLOR_OTHER: to be used to highlight some other condition +dnl COLOR_RESET: to reset color +dnl want_color: yes or no +AC_DEFUN([EFL_COLOR], +[dnl +case "$TERM" in + xterm|xterm-color|xterm-256color|Eterm|aterm|kterm|rxvt*|screen|gnome|interix) + want_color="${WANT_COLOR:-yes}" + ;; + *) + want_color="no" + ;; +esac + +### echo compatibility + +## the BSD echo does not have the -e option (it is the default behaviour) +echo_e= +if test "`echo -e x`" = "x"; then + echo_e=-e +fi +AC_SUBST([ECHO_E], [${echo_e}]) + +if test "${want_color}" = "yes"; then + COLOR_YES=`echo $echo_e "\033@<:@1;32m"` + COLOR_NO=`echo $echo_e "\033@<:@1;31m"` + COLOR_OTHER=`echo $echo_e "\033@<:@1;36m"` + COLOR_RESET=`echo $echo_e "\033@<:@0m"` +else + COLOR_YES="" + COLOR_NO="" + COLOR_OTHER="" + COLOR_RESET="" +fi +]) + +dnl EFL_INIT() +dnl Will AC_DEFINE() the following: +dnl VMAJ = v_maj +dnl VMIN = v_min +dnl VMIC = v_mic +dnl VREV = v_rev +dnl Will AC_SUBST() the following: +dnl VMAJ = v_maj +dnl VMIN = v_min +dnl VMIC = v_mic +dnl EFL_LTLIBRARY_FLAGS="-no-undefined -version-info ..." +dnl EFL_LTMODULE_FLAGS="-no-undefined -avoid-version" +dnl Will define the following m4: +dnl lt_cur = libtool 'current' field of libtool's -version-info +dnl lt_rev = libtool 'revision' field of libtool's -version-info +dnl lt_age = libtool 'age' field of libtool's -version-info +AC_DEFUN([EFL_INIT], +[dnl +AC_REQUIRE([EFL_COLOR])dnl +AC_DEFINE_UNQUOTED([VMAJ], [v_maj], [Major version])dnl +AC_DEFINE_UNQUOTED([VMIN], [v_min], [Minor version])dnl +AC_DEFINE_UNQUOTED([VMIC], [v_mic], [Micro version])dnl +AC_DEFINE_UNQUOTED([VREV], [v_rev], [Revison])dnl +VMAJ=v_maj +VMIN=v_min +VMIC=v_mic +AC_SUBST([VMAJ])dnl +AC_SUBST([VMIN])dnl +AC_SUBST([VMIC])dnl +dnl +dnl TODO: warning - lt_cur: +dnl the previous code assumed v_maj + v_min, but this will be a problem when +dnl we bump v_maj and reset v_min. 1 + 7 == 7 + 1, so if v_maj is bumped +dnl we multiply it by 100. +m4_define([lt_cur], m4_if(m4_cmp(v_maj, 1), 0, m4_eval(v_maj + v_min), m4_eval(v_maj * 100 + v_min)))dnl +m4_define([lt_rev], v_mic)dnl +m4_define([lt_age], v_min)dnl +dnl +EFL_LTLIBRARY_FLAGS="-no-undefined -version-info lt_cur:lt_rev:lt_age v_rel" +AC_SUBST(EFL_LTLIBRARY_FLAGS)dnl +EFL_LTMODULE_FLAGS="-no-undefined -avoid-version" +AC_SUBST([EFL_LTMODULE_FLAGS])dnl +AC_MSG_NOTICE([Initialized AC_PACKAGE_NAME (AC_PACKAGE_VERSION) development=dev_version v_rel]) +]) + +dnl EFL_EVAL_PKGS(EFL) +dnl does PKG_CHECK_MODULES() for given EFL +AC_DEFUN([EFL_EVAL_PKGS], +[dnl +m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl +if test "x${requirements_pc_deps_[]m4_defn([DOWNEFL])}" != "x"; then + PKG_CHECK_MODULES([$1], [${requirements_pc_deps_[]m4_defn([DOWNEFL])}]) +fi +m4_popdef([DOWNEFL])dnl +]) + +dnl EFL_INTERNAL_DEPEND_PKG(EFL, OTHEREFL) +dnl Adds a pkg-config dependency on another EFL. +AC_DEFUN([EFL_INTERNAL_DEPEND_PKG], +[dnl +m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([DOWNOTHER], m4_translit([$2], [-A-Z], [_a-z]))dnl +dnl TODO: we need to fix the package config names for 2.0 +dnl TODO: and make them uniform in scheme. +depname="$2" +libdirname="m4_defn([DOWNOTHER])" +libname="m4_defn([DOWNOTHER])" +case "m4_defn([DOWNOTHER])" in + ethumb_client) + depname="ethumb_client" + ;; +esac +requirements_pc_[]m4_defn([DOWNEFL])="${depname} >= ${PACKAGE_VERSION} ${requirements_pc_[][]m4_defn([DOWNEFL])}" +requirements_cflags_[]m4_defn([DOWNEFL])="-I\$(top_srcdir)/src/lib/${libdirname} -I\$(top_builddir)/src/lib/${libdirname} ${requirements_cflags_[][]m4_defn([DOWNEFL])}" +requirements_internal_libs_[]m4_defn([DOWNEFL])="lib/${libdirname}/lib${libname}.la ${requirements_internal_libs_[][]m4_defn([DOWNEFL])}" +requirements_internal_deps_libs_[]m4_defn([DOWNEFL])="${requirements_public_libs_[]m4_defn([DOWNOTHER])} ${requirements_internal_deps_libs_[][]m4_defn([DOWNEFL])}" +m4_popdef([DOWNOTHER])dnl +m4_popdef([DOWNEFL])dnl +]) + +dnl EFL_PLATFORM_DEPEND(EFL, PLATFORM) +dnl PLATFORM is one of: all, evil, escape, exotic +AC_DEFUN([EFL_PLATFORM_DEPEND], +[dnl +m4_pushdef([DOWNOTHER], m4_translit([$2], [-A-Z], [_a-z]))dnl +case "m4_defn([DOWNOTHER])" in + all) + if test "x${efl_lib_optional_evil}" = "xyes"; then + EFL_INTERNAL_DEPEND_PKG([$1], [evil]) + elif test "x${efl_lib_optional_escape}" = "xyes"; then + EFL_INTERNAL_DEPEND_PKG([$1], [escape]) + elif test "x${efl_lib_optional_exotic}" = "xyes"; then + EFL_INTERNAL_DEPEND_PKG([$1], [exotic]) + fi + ;; + *) + if test "x${efl_lib_optional_[]m4_defn([DOWNOTHER])}" = "xyes"; then + EFL_INTERNAL_DEPEND_PKG([$1], [$2]) + fi + ;; +esac +m4_popdef([DOWNOTHER])dnl +]) + +dnl EFL_CRYPTO_DEPEND(EFL) +dnl the given EFL will use/depend on system crypto settings +AC_DEFUN([EFL_CRYPTO_DEPEND], +[dnl +m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl +requirements_pc_[]m4_defn([DOWNEFL])="${requirements_pc_crypto} ${requirements_pc_[][]m4_defn([DOWNEFL])}" +requirements_pc_deps_[]m4_defn([DOWNEFL])="${requirements_pc_deps_crypto} ${requirements_pc_deps_[][]m4_defn([DOWNEFL])}" +requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_crypto} ${requirements_libs_[][]m4_defn([DOWNEFL])}" +requirements_cflags_[]m4_defn([DOWNEFL])="${requirements_cflags_crypto} ${requirements_cflags_[][]m4_defn([DOWNEFL])}" +m4_popdef([DOWNEFL])dnl +]) + +dnl EFL_DEPEND_PKG(EFL, NAME, PACKAGE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl Adds a pkg-config dependency to an efl, AC_DEFINE() HAVE_NAME, +dnl and inserts dependencies in proper variables +AC_DEFUN([EFL_DEPEND_PKG], +[dnl +m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl +m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([UPNAME], m4_translit([$2], [-a-z], [_A-Z]))dnl +m4_pushdef([DOWNNAME], m4_translit([$2], [-A-Z], [_a-z]))dnl + + have_[]m4_defn([DOWNNAME])="no" + + EFL_PKG_CHECK_STRICT([$3], [ + AC_DEFINE([HAVE_]m4_defn([UPNAME]), [1], [Have `]m4_defn([DOWNNAME])[' pkg-config installed.]) + requirements_pc_[]m4_defn([DOWNEFL])="$3 ${requirements_pc_[][]m4_defn([DOWNEFL])}" + requirements_pc_deps_[]m4_defn([DOWNEFL])="$3 ${requirements_pc_deps_[]m4_defn([DOWNEFL])}" + have_[]m4_defn([DOWNNAME])="yes" + + $4 + + ], [$5]) + +m4_popdef([DOWNNAME]) +m4_popdef([UPNAME]) +m4_popdef([DOWNEFL]) +m4_popdef([UPEFL]) +]) + +dnl EFL_OPTIONAL_DEPEND_PKG(EFL, VARIABLE, NAME, PACKAGE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +AC_DEFUN([EFL_OPTIONAL_DEPEND_PKG], +[dnl +m4_pushdef([DOWN], m4_translit([$3], [-A-Z], [_a-z]))dnl + + have_[]m4_defn([DOWN])="no" + if test "x$2" = "xyes"; then + EFL_DEPEND_PKG([$1], [$3], [$4], [$5], [$6]) + fi +m4_popdef([DOWN])dnl +]) + +dnl EFL_OPTIONAL_INTERNAL_DEPEND_PKG(EFL, VARIABLE, NAME) +AC_DEFUN([EFL_OPTIONAL_INTERNAL_DEPEND_PKG], +[dnl + if test "x$2" = "xyes"; then + EFL_INTERNAL_DEPEND_PKG([$1], [$3]) + fi +]) + +dnl EFL_ADD_LIBS(PKG, LIBS) +dnl Add libraries that the EFL library will depend on +dnl See EFL_DEPEND_PKG() for pkg-config version. +AC_DEFUN([EFL_ADD_LIBS], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +requirements_libs_[]m4_defn([DOWN])="${requirements_libs_[]m4_defn([DOWN])} $2" +m4_popdef([DOWN])dnl +]) + +dnl EFL_ADD_PUBLIC_LIBS(PKG, PUBLIC_LIBS) +dnl Add libraries that the EFL library will depend on when used. +dnl +dnl Unlike EFL_ADD_LIBS(), that is only used when generating PKG, +dnl this one is used when linking PKG to other libraries or applications. +dnl +dnl For instance if you use some other library in your header that user +dnl inclues. +AC_DEFUN([EFL_ADD_PUBLIC_LIBS], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +requirements_public_libs_[]m4_defn([DOWN])="${requirements_public_libs_[]m4_defn([DOWN])} $2" +m4_popdef([DOWN])dnl +]) + +dnl EFL_ADD_CFLAGS(PKG, CFLAGS) +dnl Add CFLAGS that the EFL library will use +dnl See EFL_DEPEND_PKG() for pkg-config version. +AC_DEFUN([EFL_ADD_CFLAGS], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +requirements_cflags_[]m4_defn([DOWN])="${requirements_cflags_[]m4_defn([DOWN])} $2" +m4_popdef([DOWN])dnl +]) + +dnl EFL_LIB_START(PKG) +dnl start the setup of an EFL library, defines variables and prints a notice +dnl +dnl Exports (AC_SUBST) +dnl PKG_CFLAGS: what to use for CFLAGS +dnl +dnl PKG_LDFLAGS: what to use for LDFLAGS +dnl +dnl PKG_LIBS: what to use in automake's _LIBADD or _LDADD. Includes +dnl everything else. +dnl +dnl PKG_INTERNAL_LIBS: all other EFL as lib/name/libname.la that this +dnl package depend. Used in automake's _DEPENDENCIES. +dnl +dnl USE_PKG_LIBS: what to use in automake's _LIBADD or _LDADD when using +dnl this PKG (PKG_LIBS + libpkg.la) +dnl +dnl USE_PKG_INTERNAL_LIBS: extends PKG_INTERNAL_LIBS with lib/pkg/libpkg.la +dnl +dnl requirements_pc_pkg: all pkg-config (pc) files used by this pkg, +dnl includes internal EFL (used in 'Requires.private' in pkg.pc) +dnl +dnl requirements_libs_pkg: external libraries this package needs when +dnl linking (used in 'Libs.private' in pkg.pc) +dnl +dnl requirements_public_libs_pkg: external libraries other packages need +dnl when using this (used in 'Libs' in pkg.pc) +dnl +dnl requirements_cflags_pkg: what to use for CFLAGS (same as PKG_CFLAGS). +dnl +dnl Variables: +dnl requirements_pc_deps_pkg: external pkg-config (pc) files used by this +dnl pkg (used in EFL_EVAL_PKGS()) +dnl +dnl requirements_internal_libs_pkg: all other EFL as lib/name/libname.la +dnl that this package depend. +dnl +dnl requirements_internal_deps_libs_pkg: external libraries that are public +dnl dependencies (due internal libs). +dnl +AC_DEFUN([EFL_LIB_START], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl + +requirements_internal_libs_[]m4_defn([DOWN])="" +requirements_internal_deps_libs_[]m4_defn([DOWN])="" +requirements_libs_[]m4_defn([DOWN])="" +requirements_public_libs_[]m4_defn([DOWN])="" +requirements_cflags_[]m4_defn([DOWN])="" +requirements_pc_[]m4_defn([DOWN])="" +requirements_pc_deps_[]m4_defn([DOWN])="" + +m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS}" +m4_defn([UP])_INTERNAL_LIBS="${m4_defn([UP])_INTERNAL_LIBS}" +USE_[]m4_defn([UP])_LIBS="${USE_[]m4_defn([UP])_LIBS}" +USE_[]m4_defn([UP])_INTERNAL_LIBS="${USE_[]m4_defn([UP])_INTERNAL_LIBS}" +m4_defn([UP])_LDFLAGS="${m4_defn([UP])_LDFLAGS}" +m4_defn([UP])_CFLAGS="${m4_defn([UP])_CFLAGS}" + +AC_SUBST([requirements_libs_]m4_defn([DOWN]))dnl +AC_SUBST([requirements_public_libs_]m4_defn([DOWN]))dnl +AC_SUBST([requirements_cflags_]m4_defn([DOWN]))dnl +AC_SUBST([requirements_pc_]m4_defn([DOWN]))dnl +AC_SUBST(m4_defn([UP])[_LIBS])dnl +AC_SUBST(m4_defn([UP])[_INTERNAL_LIBS])dnl +AC_SUBST([USE_]m4_defn([UP])[_LIBS])dnl +AC_SUBST([USE_]m4_defn([UP])[_INTERNAL_LIBS])dnl +AC_SUBST(m4_defn([UP])[_LDFLAGS])dnl +AC_SUBST(m4_defn([UP])[_CFLAGS])dnl +AC_MSG_NOTICE([Start $1 checks])dnl +m4_popdef([UP])dnl +m4_popdef([DOWN])dnl +]) + +dnl EFL_LIB_END(PKG) +dnl finishes the setup of an EFL library +AC_DEFUN([EFL_LIB_END], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl + +libdirname="m4_defn([DOWN])" +libname="m4_defn([DOWN])" + +m4_defn([UP])_LDFLAGS="${EFLALL_COV_LDFLAGS} ${EFLALL_LDFLAGS} ${m4_defn([UP])_LDFLAGS}" +m4_defn([UP])_LIBS=" ${m4_defn([UP])_LDFLAGS} ${EFLALL_COV_LIBS} ${EFLALL_LIBS} ${m4_defn([UP])_LIBS} ${requirements_internal_libs_[]m4_defn([DOWN])} ${requirements_internal_deps_libs_[]m4_defn([DOWN])} ${requirements_public_libs_[]m4_defn([DOWN])} ${requirements_libs_[]m4_defn([DOWN])} ${requirements_libs_eflall} " +m4_defn([UP])_INTERNAL_LIBS="${m4_defn([UP])_INTERNAL_LIBS} ${requirements_internal_libs_[]m4_defn([DOWN])}" +USE_[]m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS} lib/${libdirname}/lib${libname}.la" +USE_[]m4_defn([UP])_INTERNAL_LIBS="${m4_defn([UP])_INTERNAL_LIBS} lib/${libdirname}/lib${libname}.la" +m4_defn([UP])_CFLAGS="${EFLALL_COV_CFLAGS} ${EFLALL_CFLAGS} ${m4_defn([UP])_CFLAGS} -I\$(top_srcdir)/src/lib/${libdirname} -I\$(top_builddir)/src/lib/${libdirname} -I\$(top_srcdir)/src/bindings/${libdirname} -I\$(top_builddir)/src/bindings/${libdirname} ${requirements_cflags_[]m4_defn([DOWN])} ${requirements_cflags_eflall} -DEFL_[]m4_defn([UP])_BUILD=1" +requirements_pc_[]m4_defn([DOWN])="${requirements_pc_[]m4_defn([DOWN])} ${requirements_pc_eflall}" +requirements_pc_deps_[]m4_defn([DOWN])="${requirements_pc_deps_[]m4_defn([DOWN])} ${requirements_pc_deps_eflall}" + +AC_MSG_NOTICE([Finished $1 checks])dnl +m4_popdef([UP])dnl +m4_popdef([DOWN])dnl +]) + +dnl EFL_LIB_START_OPTIONAL(PKG, TEST) +dnl test if library should be build and then EFL_LIB_START() +dnl must call EFL_LIB_END_OPTIONAL() to close it. +AC_DEFUN([EFL_LIB_START_OPTIONAL], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl + +if $2; then + efl_lib_optional_[]m4_defn([DOWN])="yes" +else + efl_lib_optional_[]m4_defn([DOWN])="no" + AC_MSG_NOTICE([Skipping $1 checks (disabled)]) +fi + +if test "$efl_lib_optional_[]m4_defn([DOWN])" = "yes"; then + EFL_LIB_START([$1]) + AC_DEFINE([HAVE_]m4_defn([UP]), [1], [optional EFL $1 is enabled]) +dnl closed at EFL_LIB_END_OPTIONAL() +m4_popdef([UP])dnl +m4_popdef([DOWN])dnl +]) + +dnl EFL_LIB_END_OPTIONAL(PKG) +dnl closes block started by EFL_LIB_START_OPTIONAL() and then +dnl defines AM_CONDITIONAL([HAVE_PKG]) and AC_DEFINE([HAVE_PKG]) +AC_DEFUN([EFL_LIB_END_OPTIONAL], +[dnl +m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl + +dnl close if started at EFL_LIB_START_OPTIONAL() + EFL_LIB_END([$1]) +fi + +AM_CONDITIONAL([HAVE_]m4_defn([UP]), [test "$efl_lib_optional_[]m4_defn([DOWN])" = "yes"])dnl +m4_popdef([UP])dnl +m4_popdef([DOWN])dnl +]) + +dnl EFL_ADD_FEATURE(PKG, NAME, [VALUE]) +dnl if VALUE is not specified, will use ${have_name} instead. +dnl +dnl Defined Variables: +dnl features_pkg +AC_DEFUN([EFL_ADD_FEATURE], +[dnl +m4_pushdef([DOWNPKG], m4_translit([$1], [-A-Z], [_a-z]))dnl +m4_pushdef([DOWNNAME], m4_translit([$2], [-A-Z], [_a-z]))dnl + +value="m4_if($3, , [${have_]m4_defn([DOWNNAME])[:-${want_]m4_defn([DOWNNAME])[}}], [$3])" +case "${value}" in + yes) + tmp="${COLOR_YES}+$2${COLOR_RESET}" + ;; + no) + tmp="${COLOR_NO}-$2${COLOR_RESET}" + ;; + *) + tmp="${COLOR_OTHER}$2=${value}${COLOR_RESET}" + ;; +esac +if test -z "${features_[]m4_defn([DOWNPKG])}"; then + features_[]m4_defn([DOWNPKG])="${tmp}" +else + features_[]m4_defn([DOWNPKG])="${features_[]m4_defn([DOWNPKG])} ${tmp}" +fi +m4_popdef([DOWNNAME])dnl +m4_popdef([DOWNPKG])dnl +]) From d54cf32f8961be599a33ed3784b123747b6f803f Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 10 Nov 2015 14:32:04 +0100 Subject: [PATCH 135/141] emotions_generic: make exit_func() static as it is only used in this file --- legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c index 0e328ca356..456509e673 100644 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c @@ -692,7 +692,7 @@ _dummy(void *data EINA_UNUSED, void *buffer EINA_UNUSED, unsigned int nbyte EINA } /* Main */ -Eina_Bool +static Eina_Bool exit_func(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *ev EINA_UNUSED) { DBG("Quit signal received !"); From b0143c53a214e75b9d008df14115a1d57eef9733 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 5 Jan 2016 15:22:51 +0100 Subject: [PATCH 136/141] release: Update NEWS and bump version for 1.17.0-alpha1 release --- legacy/emotion_generic_players/NEWS | 7 ++++++- legacy/emotion_generic_players/configure.ac | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/legacy/emotion_generic_players/NEWS b/legacy/emotion_generic_players/NEWS index a29c62193f..46eaa3e68b 100644 --- a/legacy/emotion_generic_players/NEWS +++ b/legacy/emotion_generic_players/NEWS @@ -1,7 +1,12 @@ ============================== -Emotion Generic Players 1.16.0 +Emotion Generic Players 1.17.0 ============================== +Changes since 1.16.0: +--------------------- + +No significant changes in this release. + Changes since 1.15.0: --------------------- diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index cfd9156b55..2ebb1049c3 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,5 +1,5 @@ -EFL_VERSION([1], [16], [99], [dev]) -AC_INIT([emotion_generic_players], [efl_version], [enlightenment-devel@lists.sourceforge.net]) +EFL_VERSION([1], [17], [0], [release]) +AC_INIT([emotion_generic_players], [efl_version-alpha1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From aa10b6fee116cf3ffcc378ed1e4751e6a741b649 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 11 Jan 2016 12:57:28 +0100 Subject: [PATCH 137/141] release: Update NEWS and bump version for 1.17.0-beta1 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 2ebb1049c3..dd24655d45 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,5 +1,5 @@ EFL_VERSION([1], [17], [0], [release]) -AC_INIT([emotion_generic_players], [efl_version-alpha1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [efl_version-beta1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 1e509418d5f5b7f389358c3dd90ecc7f4728f280 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 18 Jan 2016 14:09:13 +0100 Subject: [PATCH 138/141] release: Update NEWS and bump version for 1.17.0-beta2 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index dd24655d45..84bd98a05b 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,5 +1,5 @@ EFL_VERSION([1], [17], [0], [release]) -AC_INIT([emotion_generic_players], [efl_version-beta1], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [efl_version-beta2], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 499e42b3fd5d5a259e73b75c4c08777ff5e019d7 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 25 Jan 2016 17:58:45 +0100 Subject: [PATCH 139/141] release: Update NEWS and bump version for 1.17.0-beta3 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 84bd98a05b..0f07bcd83e 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,5 +1,5 @@ EFL_VERSION([1], [17], [0], [release]) -AC_INIT([emotion_generic_players], [efl_version-beta2], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [efl_version-beta3], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From af72dcc6bd1347c2ad020e4bf1a89383a6319541 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 2 Feb 2016 10:46:50 +0100 Subject: [PATCH 140/141] release: Update NEWS and bump version for 1.17.0 release --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index 0f07bcd83e..d2c035e939 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,5 +1,5 @@ EFL_VERSION([1], [17], [0], [release]) -AC_INIT([emotion_generic_players], [efl_version-beta3], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([emotion_generic_players], [efl_version], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) From 2674c74e382eddbb7b1c193ac80717b6f5426c06 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 2 Feb 2016 11:21:21 +0100 Subject: [PATCH 141/141] configure: Switch to dev mode again. Merge window for 1.18 is now open. --- legacy/emotion_generic_players/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/emotion_generic_players/configure.ac b/legacy/emotion_generic_players/configure.ac index d2c035e939..5963ddffe5 100644 --- a/legacy/emotion_generic_players/configure.ac +++ b/legacy/emotion_generic_players/configure.ac @@ -1,4 +1,4 @@ -EFL_VERSION([1], [17], [0], [release]) +EFL_VERSION([1], [17], [99], [dev]) AC_INIT([emotion_generic_players], [efl_version], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac])