On Wed, 23 Mar 2011, Vincent Torri wrote:
> > > On Wed, 23 Mar 2011, Enlightenment SVN wrote: > >> Log: >> fix vlc module loading, disable slow vmem options, begin work on fast render >> output > > are you sure that the evas info is set before the module is loaded ? I mean, if the program is well written, yes. But you don't check id einfo is NULL or not Vincent > > Vincent > >> >> >> Author: discomfitor >> Date: 2011-03-23 15:54:45 -0700 (Wed, 23 Mar 2011) >> New Revision: 58049 >> Trac: http://trac.enlightenment.org/e/changeset/58049 >> >> Modified: >> trunk/emotion/src/modules/vlc/emotion_vlc.c >> >> Modified: trunk/emotion/src/modules/vlc/emotion_vlc.c >> =================================================================== >> --- trunk/emotion/src/modules/vlc/emotion_vlc.c 2011-03-23 22:48:26 UTC >> (rev 58048) >> +++ trunk/emotion/src/modules/vlc/emotion_vlc.c 2011-03-23 22:54:45 UTC >> (rev 58049) >> @@ -3,8 +3,18 @@ >> * c...@ife-sit.info >> */ >> >> +#ifdef HAVE_CONFIG_H >> +# include "config.h" >> +#endif >> #include <sys/types.h> >> #include <unistd.h> >> +#include <Evas.h> >> +#ifdef HAVE_EVAS_SOFWARE_X11 >> +# include <Evas_Engine_Software_X11.h> >> +#endif >> +#ifdef HAVE_EVAS_OPENGL_X11 >> +# include <Evas_Engine_GL_X11.h> >> +#endif >> >> #include "Emotion.h" >> #include "emotion_private.h" >> @@ -116,15 +126,7 @@ >> { >> "-q", >> //"-vvvvv", >> - "--ignore-config", >> - "--vout", "vmem", >> - "--vmem-width", ev->width, >> - "--vmem-height", ev->height, >> - "--vmem-pitch", ev->pitch, >> - "--vmem-chroma", "RV32", >> - "--vmem-lock", ev->clock, >> - "--vmem-unlock", ev->cunlock, >> - "--vmem-data", ev->cdata, >> + "--ignore-config" >> }; >> vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); >> sprintf(ev->clock, "%lld", (long long int)(intptr_t)_em_lock); >> @@ -187,8 +189,13 @@ >> static unsigned char em_file_open(const char *file, Evas_Object *obj, void >> *ef) >> { >> Emotion_Vlc_Video *ev; >> - int i; >> - >> + int i, method; >> + Evas *e; >> + Eina_List *methods, *l; >> + char *name; >> +#ifndef _WIN32 >> + uint32_t xid; >> +#endif >> ev = (Emotion_Vlc_Video *)ef; >> ASSERT_EV(ev) return 0; >> ASSERT_EV_VLC(ev) return 0; >> @@ -200,6 +207,39 @@ >> ev->vlc_m = NULL; >> ASSERT_EV_MP(ev) return 0; >> >> + e = evas_object_evas_get(obj); >> + method = evas_output_method_get(e); >> + methods = evas_render_method_list(); >> + EINA_LIST_FOREACH(methods, l, name) >> + if (evas_render_method_lookup(name) == method) break; >> + >> +#ifdef _WIN32 /* NOT IMPLEMENTED YET */ >> + libvlc_media_player_set_hwnd(ev->vlc_mp, (void*)xid); >> +#else >> +#ifdef HAVE_EVAS_SOFWARE_X11 >> + if (!strcmp(name, "software_x11")) >> + { >> + Evas_Engine_Info_Software_X11 *einfo; >> + einfo = (Evas_Engine_Info_Software_X11*)evas_engine_info_get(e); >> + xid = einfo->info.drawable; >> + } >> +#endif >> +#ifdef HAVE_EVAS_OPENGL_X11 >> + if (!strcmp(name, "gl_x11")) >> + { >> + Evas_Engine_Info_GL_X11 *einfo; >> + einfo = (Evas_Engine_Info_GL_X11*)evas_engine_info_get(e); >> + xid = einfo->info.drawable; >> + } >> +#endif >> + if (strcmp(name, "software_x11") && strcmp(name, "gl_x11")) /* FIXME */ >> + { >> + fprintf(stderr, "FATAL: engine unsupported!\n"); >> + exit(1); >> + } >> + libvlc_media_player_set_xwindow(ev->vlc_mp, xid); >> +#endif >> + >> ev->vlc_evtmngr = libvlc_media_player_event_manager (ev->vlc_mp); >> >> for(i = EVENT_BEG_ID; i<EVENT_BEG_ID+NB_EVENTS; i++) { >> @@ -214,7 +254,7 @@ >> >> /* set properties to video object */ >> ev->just_loaded = 1; >> - >> + evas_render_method_list_free(methods); >> return 1; >> } >> >> @@ -414,7 +454,7 @@ >> ASSERT_EV(ev) return 0; >> ASSERT_EV_MP(ev) return 0; >> if (ev->opening || (!ev->play_ok)) return 0; >> - ret = vlc_media_player_is_seekable(ev->vlc_mp); >> + ret = libvlc_media_player_is_seekable(ev->vlc_mp); >> return ret; >> } >> >> >> >> ------------------------------------------------------------------------------ >> Enable your software for Intel(R) Active Management Technology to meet the >> growing manageability and security demands of your customers. Businesses >> are taking advantage of Intel(R) vPro (TM) technology - will your software >> be a part of the solution? Download the Intel(R) Manageability Checker >> today! http://p.sf.net/sfu/intel-dev2devmar >> _______________________________________________ >> enlightenment-svn mailing list >> enlightenment-...@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn >> >> > > ------------------------------------------------------------------------------ > Enable your software for Intel(R) Active Management Technology to meet the > growing manageability and security demands of your customers. Businesses > are taking advantage of Intel(R) vPro (TM) technology - will your software > be a part of the solution? Download the Intel(R) Manageability Checker > today! http://p.sf.net/sfu/intel-dev2devmar > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ------------------------------------------------------------------------------ Enable your software for Intel(R) Active Management Technology to meet the growing manageability and security demands of your customers. Businesses are taking advantage of Intel(R) vPro (TM) technology - will your software be a part of the solution? Download the Intel(R) Manageability Checker today! http://p.sf.net/sfu/intel-dev2devmar _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel