On Thu, Sep 1, 2011 at 4:04 PM, Enlightenment SVN <[email protected]> wrote: > Log: > 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. > > Author: antognolli > Date: 2011-09-01 12:04:15 -0700 (Thu, 01 Sep 2011) > New Revision: 63062 > Trac: http://trac.enlightenment.org/e/changeset/63062
Hello list, I just added another backend to emotion, called it "generic" since it has some of the ideas of the evas generic loaders. For now I just implemented one player using libvlc. There's a small explanation of how it works in the README file that I put in its directory: http://trac.enlightenment.org/e/browser/trunk/emotion/src/modules/generic/README Any comments and critics are welcome! > > Added: > trunk/emotion/src/examples/emotion_generic_example.c > trunk/emotion/src/generic_players/ > trunk/emotion/src/generic_players/Makefile.am > trunk/emotion/src/generic_players/vlc/ > trunk/emotion/src/generic_players/vlc/Makefile.am > trunk/emotion/src/generic_players/vlc/emotion_generic_vlc.c > trunk/emotion/src/modules/generic/ > trunk/emotion/src/modules/generic/Emotion_Generic_Plugin.h > trunk/emotion/src/modules/generic/Makefile.am > trunk/emotion/src/modules/generic/README > trunk/emotion/src/modules/generic/emotion_generic.c > trunk/emotion/src/modules/generic/emotion_generic.h > Modified: > trunk/emotion/AUTHORS trunk/emotion/configure.ac > trunk/emotion/m4/emotion_check.m4 trunk/emotion/src/Makefile.am > trunk/emotion/src/examples/Makefile.am > trunk/emotion/src/lib/emotion_private.h trunk/emotion/src/lib/emotion_smart.c > trunk/emotion/src/modules/Makefile.am > > Modified: trunk/emotion/AUTHORS > =================================================================== > --- trunk/emotion/AUTHORS 2011-09-01 18:41:47 UTC (rev 63061) > +++ trunk/emotion/AUTHORS 2011-09-01 19:04:15 UTC (rev 63062) > @@ -3,4 +3,4 @@ > Nicolas Aguirre <[email protected]> > Sebastian Dransfeld <[email protected]> > Cedric Bail <[email protected]> > - > +Rafael Antognolli <[email protected]> > > Modified: trunk/emotion/configure.ac > =================================================================== > --- trunk/emotion/configure.ac 2011-09-01 18:41:47 UTC (rev 63061) > +++ trunk/emotion/configure.ac 2011-09-01 19:04:15 UTC (rev 63062) > @@ -54,6 +54,7 @@ > AC_SUBST(VMAJ) > > want_vlc="no" > +want_generic="yes" > case "$host_os" in > mingw* | cegcc*) > want_xine="no" > @@ -230,6 +231,7 @@ > EMOTION_CHECK_MODULE([Xine], [${want_xine}]) > EMOTION_CHECK_MODULE([Gstreamer], [${want_gstreamer}]) > EMOTION_CHECK_MODULE([VLC], [${want_vlc}]) > +EMOTION_CHECK_MODULE([generic], [${want_generic}]) > > #disabled vlc > #if test "x${enable_xine}" = "xno" && test "x${enable_gstreamer}" = "xno" && > test "x${enable_vlc}" = "xno" ; then > @@ -269,7 +271,10 @@ > src/modules/Makefile > src/modules/xine/Makefile > src/modules/gstreamer/Makefile > +src/modules/generic/Makefile > src/edje_external/Makefile > +src/generic_players/Makefile > +src/generic_players/vlc/Makefile > src/bin/Makefile > src/examples/Makefile > doc/Makefile > > Modified: trunk/emotion/m4/emotion_check.m4 > =================================================================== > --- trunk/emotion/m4/emotion_check.m4 2011-09-01 18:41:47 UTC (rev 63061) > +++ trunk/emotion/m4/emotion_check.m4 2011-09-01 19:04:15 UTC (rev 63062) > @@ -71,6 +71,28 @@ > > ]) > > +dnl use: EMOTION_CHECK_DEP_GENERIC(want_static[, ACTION-IF-FOUND[, > ACTION-IF-NOT-FOUND]]) > + > +AC_DEFUN([EMOTION_CHECK_DEP_GENERIC], > +[ > + > +requirement="" > + > +PKG_CHECK_MODULES([GENERIC], > + [evas >= 0.9.9], > + [ > + have_dep="yes" > + ], > + [have_dep="no"]) > + > +if test "x$1" = "xstatic" ; then > + requirement_emotion="${requirement} ${requirement_emotion}" > +fi > + > +AS_IF([test "x$have_dep" = "xyes"], [$2], [$3]) > + > +]) > + > dnl use: EMOTION_CHECK_MODULE(description, want_module[, ACTION-IF-FOUND[, > ACTION-IF-NOT-FOUND]]) > AC_DEFUN([EMOTION_CHECK_MODULE], > [ > > Modified: trunk/emotion/src/Makefile.am > =================================================================== > --- trunk/emotion/src/Makefile.am 2011-09-01 18:41:47 UTC (rev 63061) > +++ trunk/emotion/src/Makefile.am 2011-09-01 19:04:15 UTC (rev 63062) > @@ -6,3 +6,7 @@ > if ENABLE_EDJE_EXTERNAL > SUBDIRS += edje_external > endif > + > +if EMOTION_BUILD_GENERIC > +SUBDIRS += generic_players > +endif > > Modified: trunk/emotion/src/examples/Makefile.am > =================================================================== > --- trunk/emotion/src/examples/Makefile.am 2011-09-01 18:41:47 UTC (rev > 63061) > +++ trunk/emotion/src/examples/Makefile.am 2011-09-01 19:04:15 UTC (rev > 63062) > @@ -16,6 +16,7 @@ > > SRCS = \ > emotion_basic_example.c \ > + emotion_generic_example.c \ > emotion_signals_example.c > > EXTRA_DIST = $(SRCS) > @@ -30,6 +31,7 @@ > if EFL_BUILD_EXAMPLES > pkglib_PROGRAMS += \ > emotion_basic_example \ > + emotion_generic_example \ > emotion_signals_example > endif > > > Modified: trunk/emotion/src/lib/emotion_private.h > =================================================================== > --- trunk/emotion/src/lib/emotion_private.h 2011-09-01 18:41:47 UTC (rev > 63061) > +++ trunk/emotion/src/lib/emotion_private.h 2011-09-01 19:04:15 UTC (rev > 63062) > @@ -41,6 +41,7 @@ > > struct _Emotion_Module_Options > { > + const char *player; > Eina_Bool no_video : 1; > Eina_Bool no_audio : 1; > }; > > Modified: trunk/emotion/src/lib/emotion_smart.c > =================================================================== > --- trunk/emotion/src/lib/emotion_smart.c 2011-09-01 18:41:47 UTC (rev > 63061) > +++ trunk/emotion/src/lib/emotion_smart.c 2011-09-01 19:04:15 UTC (rev > 63062) > @@ -124,7 +124,8 @@ > static const char *_backend_priority[] = { > "gstreamer", > "xine", > - "vlc" > + "vlc", > + "generic" > }; > > static const char SIG_FRAME_DECODE[] = "frame_decode"; > @@ -312,6 +313,9 @@ > > E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME); > if ((!opt) || (!val)) return; > + > + if (!strcmp(opt, "player")) > + eina_stringshare_replace(&sd->module_options.player, val); > } > > EAPI Eina_Bool > > Modified: trunk/emotion/src/modules/Makefile.am > =================================================================== > --- trunk/emotion/src/modules/Makefile.am 2011-09-01 18:41:47 UTC (rev > 63061) > +++ trunk/emotion/src/modules/Makefile.am 2011-09-01 19:04:15 UTC (rev > 63062) > @@ -1,4 +1,4 @@ > > MAINTAINERCLEANFILES = Makefile.in > > -SUBDIRS = xine gstreamer > +SUBDIRS = xine gstreamer generic > > > ------------------------------------------------------------------------------ > Special Offer -- Download ArcSight Logger for FREE! > Finally, a world-class log management solution at an even better > price-free! And you'll get a free "Love Thy Logs" t-shirt when you > download Logger. Secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsisghtdev2dev > _______________________________________________ > enlightenment-svn mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > -- Rafael Antognolli ProFUSION embedded systems http://profusion.mobi ------------------------------------------------------------------------------ Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free "Love Thy Logs" t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
