On Thu, 24 Mar 2011, Vincent Torri wrote:
> > > 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 and use xid only in the X11 #ifdef Vincent > > 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 @@ >>> * [email protected] >>> */ >>> >>> +#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 >>> [email protected] >>> 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 >> [email protected] >> 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 [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
