Stream filter plug-in "cannot find plug-in entry point"

This forum is about all development around libVLC.
j_vlc
Blank Cone
Blank Cone
Posts: 16
Joined: 11 Mar 2013 13:03

Stream filter plug-in "cannot find plug-in entry point"

Postby j_vlc » 11 Mar 2013 13:16

Hi,

I'm writing a stream filter plug-in over Mac OS X 10.7. I'm building it out of the VLC source tree <http://wiki.videolan.org/OutOfTreeCompile> because I have a bunch of errors trying to compile the VLC source code.

Here is my empty source code:

Code: Select all

#include <vlc_common.h> #include <vlc_plugin.h> #include <vlc_stream.h> #define DOMAIN "stream_filter_test" #define _(str) dgettext(DOMAIN, str) #define N_(str) (str) #define MODULE_STRING "Prot_On_VLC_Plugin" static int Open (vlc_object_t *); static void Close(vlc_object_t *); vlc_module_begin() set_text_domain(DOMAIN) set_category(CAT_INPUT) set_subcategory(SUBCAT_INPUT_STREAM_FILTER) set_shortname("Prot-On") set_description(N_("Plugin to see protected files")) set_capability("stream_filter", 20) set_callbacks(Open, Close) vlc_module_end() static int Open(vlc_object_t *obj) { return VLC_EGENERIC; } static void Close(vlc_object_t *obj) { }
To build my library I'm using qmake to simplify the process:

Code: Select all

QT -= core gui TARGET = stream_filter_proton_plugin TEMPLATE = lib INCLUDEPATH += vlc_include LIBS += -L$$PWD/vlc_lib -lvlccore macx:CONFIG += x86 x86_64 HEADERS += SOURCES += VLCPlugin.cpp # OS X installation macx { system(install_name_tool -change @loader_path/lib/libvlccore.5.dylib @loader_path/../lib/libvlccore.5.dylib $$OUT_PWD/libstream_filter_proton_plugin.1.0.0.dylib) system(cp -f $$OUT_PWD/libstream_filter_proton_plugin.1.0.0.dylib /Applications/VLC.app/Contents/MacOS/plugins/libstream_filter_proton_plugin.dylib) system(ln -s /Applications/VLC.app/Contents/MacOS/plugins/libstream_filter_proton_plugin.dylib /Applications/VLC.app/Contents/MacOS/plugins/libstream_filter_proton_plugin.1.dylib) }
Any idea why this problem?

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Stream filter plug-in "cannot find plug-in entry point"

Postby Jean-Baptiste Kempf » 17 Mar 2013 07:42

And what are the logs problems?
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

j_vlc
Blank Cone
Blank Cone
Posts: 16
Joined: 11 Mar 2013 13:03

Re: Stream filter plug-in "cannot find plug-in entry point"

Postby j_vlc » 19 Mar 2013 11:37

Hi! Thank you very much for your help!
When my plugin os copied to the VLC plugins folder (/Applications/VLC.app/Contents/MacOS/plugins/libstream_filter_proton_plugin.dylib) I execute:

Code: Select all

$ ./vlc --reset-plugins-cache VLC media player 2.0.5 Twoflower (revision 2.0.5-0-g1661b7d) [0x1002924f0] main interface error: no suitable interface module [0x10020a600] main libvlc: Ejecutar vlc con la interfaz predeterminada. Use «cvlc» para usar vlc sin interfaz.
To refresh the plugins cache, and then:

Code: Select all

$ ./vlc -vvv --color --list VLC media player 2.0.5 Twoflower (revision 2.0.5-0-g1661b7d) [0x10020a640] main libvlc debug: VLC media player - 2.0.5 Twoflower [0x10020a640] main libvlc debug: Copyright © 1996-2012 VLC authors and VideoLAN [0x10020a640] main libvlc debug: revision 2.0.5-0-g1661b7d [0x10020a640] main libvlc debug: configured with ../extras/package/macosx/../../../configure '--prefix=/Users/fkuehne/Desktop/videolan/gits/vlc-2.0/release/vlc_install_dir' '--enable-macosx' '--enable-merge-ffmpeg' '--enable-growl' '--enable-faad' '--enable-flac' '--enable-theora' '--enable-shout' '--enable-ncurses' '--enable-twolame' '--enable-realrtsp' '--enable-libass' '--enable-macosx-audio' '--enable-macosx-eyetv' '--enable-macosx-qtkit' '--enable-macosx-vout' '--disable-caca' '--disable-skins2' '--disable-xcb' '--disable-sdl' '--disable-samplerate' '--disable-macosx-dialog-provider' '--with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk' '--build=x86_64-apple-darwin10' 'build_alias=x86_64-apple-darwin10' 'CC=xcrun clang' 'CXX=xcrun clang++' 'OBJC=xcrun clang' [0x10020a640] main libvlc debug: searching plug-in modules [0x10020a640] main libvlc debug: loading plugins cache file /Applications/VLC.app/Contents/MacOS/./plugins/plugins.dat [0x10020a640] main libvlc debug: recursively browsing `/Applications/VLC.app/Contents/MacOS/./plugins' [0x10020a640] main libvlc warning: cannot load module `/Applications/VLC.app/Contents/MacOS/./plugins/libi420_rgb_mmx_plugin.dylib' (dlopen(/Applications/VLC.app/Contents/MacOS/./plugins/libi420_rgb_mmx_plugin.dylib, 1): no suitable image found. Did find: /Applications/VLC.app/Contents/MacOS/./plugins/libi420_rgb_mmx_plugin.dylib: mach-o, but wrong architecture) [0x10020a640] main libvlc warning: cannot load module `/Applications/VLC.app/Contents/MacOS/./plugins/libi420_yuy2_mmx_plugin.dylib' (dlopen(/Applications/VLC.app/Contents/MacOS/./plugins/libi420_yuy2_mmx_plugin.dylib, 1): no suitable image found. Did find: /Applications/VLC.app/Contents/MacOS/./plugins/libi420_yuy2_mmx_plugin.dylib: mach-o, but wrong architecture) [0x10020a640] main libvlc warning: cannot load module `/Applications/VLC.app/Contents/MacOS/./plugins/libi422_yuy2_mmx_plugin.dylib' (dlopen(/Applications/VLC.app/Contents/MacOS/./plugins/libi422_yuy2_mmx_plugin.dylib, 1): no suitable image found. Did find: /Applications/VLC.app/Contents/MacOS/./plugins/libi422_yuy2_mmx_plugin.dylib: mach-o, but wrong architecture) [0x10020a640] main libvlc warning: cannot load module `/Applications/VLC.app/Contents/MacOS/./plugins/libmemcpy3dn_plugin.dylib' (dlopen(/Applications/VLC.app/Contents/MacOS/./plugins/libmemcpy3dn_plugin.dylib, 1): no suitable image found. Did find: /Applications/VLC.app/Contents/MacOS/./plugins/libmemcpy3dn_plugin.dylib: mach-o, but wrong architecture) [0x10020a640] main libvlc warning: cannot load module `/Applications/VLC.app/Contents/MacOS/./plugins/libmemcpymmx_plugin.dylib' (dlopen(/Applications/VLC.app/Contents/MacOS/./plugins/libmemcpymmx_plugin.dylib, 1): no suitable image found. Did find: /Applications/VLC.app/Contents/MacOS/./plugins/libmemcpymmx_plugin.dylib: mach-o, but wrong architecture) [0x10020a640] main libvlc warning: cannot load module `/Applications/VLC.app/Contents/MacOS/./plugins/libmemcpymmxext_plugin.dylib' (dlopen(/Applications/VLC.app/Contents/MacOS/./plugins/libmemcpymmxext_plugin.dylib, 1): no suitable image found. Did find: /Applications/VLC.app/Contents/MacOS/./plugins/libmemcpymmxext_plugin.dylib: mach-o, but wrong architecture) [0x10020a640] main libvlc warning: cannot find plug-in entry point in /Applications/VLC.app/Contents/MacOS/./plugins/libstream_filter_proton_plugin.dylib [0x10020a640] main libvlc debug: saving plugins cache /Applications/VLC.app/Contents/MacOS/./plugins/plugins.dat [0x10020a640] main libvlc debug: plug-ins loaded: 368 modules [0x10020a640] main libvlc debug: opening config file (/Users/jose/Library/Preferences/org.videolan.vlc/vlcrc) [0x10020a640] main libvlc debug: translation test: code is "es" zvbi Decodificador de VBI y teletexto zip Filtro de archivos Zip zip Acceso Zip yuy2_i422 Conversions from YUY2,YUNV,YVYU,UYVY,UYNV,Y422,cyuv to I422 yuy2_i420 Conversions from YUY2,YUNV,YVYU,UYVY,UYNV,Y422,cyuv to I420 yuvp Conversor YUVP yuv Salida de vídeo YUV xml Analizador XML (usando libxml2) xml Analizador XML (usando libxml2) xa Demuxor XA x264 Codificador H.264/MPEG4 AVC (x264) wave Filtro de vídeo de ola wav Demuxer WAV wall Filtro de vídeo de pared vout_macosx Salida de vídeo Mac OS X OpenGL (requiere drawable-nsobject) vorbis Decodificador de audio Vorbis vorbis Codificador de audio Vorbis vorbis Empaquetador de audio Vorbis vod_rtsp Servidor VoD RTSP voc Demuxor VOC vobsub Analizador de subtítulos Vobsub vmem Salida de memoria de vídeo visual Filtro de visualizador vdummy Salida de vídeo simulada vdummy Estadísticas de salida de vídeo vcd Entrada VCD vc1 Demuxor de vídeo VC1 upnp Plug'n'Play Universal upnp Plug'n'Play Universal ugly_resampler Nearest-neighbor audio resampler ty Demuxor de audio/vídeo emisión TY twolame Codificador de audio Libtwolame tta Demuxor TTA ts Demuxor de emisión de transporte MPEG trivial_channel_mixer Filtro de audio para mezcla de canal trivial transform Filtro de transformación de vídeo theora Decodificador de vídeo Theora theora Codificador de vídeo Theora theora Empaquetador de vídeo Theora telx Decodificador de subtítulos de teletexto tdummy Dummy font renderer taglib taglib taglib taglib t140 Codificador de texto T.140 swscale Filtro de escalado de vídeo svcdsub Decodificador Philips OGT (subtítulo SVCD) svcdsub Empaquetador Philips OGT (subtítulo SVCD) subtitle Analizador de subtítulos de texto subsusf Decodificador de subtítulos USF subsdelay Retraso de subtítulos subsdec Decodificador de subtítulos de texto stream_out_transcode Transcodificar salida de emisión stream_out_standard Salida de emisión estándar stream_out_smem Enviar salida a búfer de memoria stream_out_setid Cambiar el id de un flujo elemental stream_out_setid Cambiar el lenguaje de un flujo elemental stream_out_select Select individual es to enable or disable from stream stream_out_rtp Salida de emisión RTP stream_out_rtp Servidor VoD RTSP stream_out_record grabar emisión de salida stream_out_raop Emisión de salida del protocolo de salida de audio remoto stream_out_mosaic_bridge Salida de emisión puente de mosaico stream_out_langfromtelx Preferencias dinámicas de lenguaje desde teletexto stream_out_gather Obtener salida de emisión stream_out_es Salida de emisión elemental stream_out_duplicate Duplicar salida de emisión stream_out_dummy Salida de emisión simulada stream_out_display Mostrar salida de emisión stream_out_description Descripción de salida de emisión stream_out_delay Retrasar emisión stream_out_bridge Salida de emisión puente stream_out_bridge Salida de emisión puente stream_out_bridge Salida de emisión puente stream_out_autodel Añade y borrar automáticamente emisiones de entrada stream_filter_record Registro de emisión interna stream_filter_rar RAR sin comprimir stream_filter_httplive Http Live Streaming stream filter stream_filter_dash Dynamic Adaptive Streaming over HTTP stl EBU STL subtitles decoder stats Función estadísticas de codificador stats Función estadísticas de demuxor stats Función estadísticas de decodificador spudec Decodificador de subtítulos de DVD spudec Empaquetador de subtítulos de DVD speex_resampler Codificador speex speex Codificador de audio speex speex Codificador de audio speex speex Empaquetador de audio speex spatializer Espacializador de audio smf Demuxor SMF simple_channel_mixer Filtro de audio para mezcla simple de canal sid Demuxor de vídeo C64 sharpen Filtro de vídeo definido sepia Filtro de vídeo de sepia sdp Session Description Protocol screen Entrada de pantalla schroedinger Dirac video decoder using libschroedinger schroedinger Codificador de vídeo Dirac usando el codec libschroedinger scene Filtro de vídeo de escena scaletempo Escala de tempo de audio en sincronía con tasa de reproducción scale Filtro de escalado de vídeo sap Emisiones de red (SAP) sap Analizador de descripciones SDP sap Emisiones de red (SAP) rv32 Filtro de conversión RV32 rtp Entrada del protocolo en tiempo real (RTP) rss Visualización de suscripciones RSS y Atom rotate Rotar filtro de vídeo ripple Filtro de vídeo de onda remoteosd OSD remoto sobre VNC real Demuxor real rawvideo Decodificador de vídeo Pseudo raw rawvideo Empaquetador de vídeo Pseudo raw rawvid Demuxor de vídeo en bruto rawdv Demuxor DV (Vídeo digital) rawaud Demuxor de vídeo en bruto quartztext Generador de fuente CoreText qtsound.lo QuickTime Sound Capture qtcapture.lo Captura Quicktime pva Demuxor AU puzzle Filtro de vídeo de juego rompecabezas interactivo psychedelic Filtro de vídeo psicodélico ps Demuxor MPEG-PS ps Demuxor MPEG-PS postproc Filtro post-proceso de vídeo posterize Filtro de vídeo posterizar podcast Podcasts podcast Podcasts png Decodificador de vídeo PNG playlist Lista de reproducción playlist Importar lista de reproducción ZPL playlist Importar lista de reproducción WPL playlist Importador de biblioteca de música iTunes playlist Demuxor ifo simulado playlist Importador de lista de reproducción de Google Video playlist Importador de enlace multimedia QuickTime playlist Analizador Kasenna MediaBase playlist Importar lista de reproducción ASX playlist Importar nuevo shoutcast de winamp 5.2 playlist Importar lista de reproducción XSPF playlist Analizador podcast playlist Importar lista de reproducción DVB playlist Importar lista de reproducción B4S playlist Importar lista de reproducción PLS playlist Importardor de lista de reproducción RAM playlist Importar lista de reproducción M3U param_eq Ecualizador paramétrico packetizer_vc1 Empaquetador VC-1 packetizer_mpegvideo Empaquetador de vídeo MPEG-I/II packetizer_mpeg4video Empaquetador de vídeo MPEG4 packetizer_mpeg4audio Empaquetador de audio MPEG4 packetizer_mlp Procesador MLP/TrueHD packetizer_h264 Empaquetador de vídeo H.264 packetizer_flac Empaquetador de audio Flac packetizer_dirac Empaquetador Dirac packetizer_copy Copiar empaquetador osdmenu Menú mostrar en pantalla (On Screen Display) osd_parser osd_parser osd_parser Importador de configuración de OSD XML osd_parser Importador de configuración de OSD opus Opus audio decoder oldrc Interfaz de control remoto ogg Demuxor OGG nuv Demuxor Nuv nsv Demuxor Nullsoft nsc Metademux Windows Media NSC normvol Normalizador de volumen netsync Sincronización de red ncurses Interfaz ncurses mux_wav Demuxor WAV mux_ts Muxor TS (libdvbpsi) mux_ps Muxer PS mux_ogg Muxor Ogg/OGM mux_mpjpeg Muxor JPEG multiparte mux_mp4 Muxer MP4/MOV mux_dummy Muxer simulado/raw mux_avi Muxer AVI mux_asf Muxer ASF mpgv Demuxor de audio MPEG-I/II mpgatofixed32 Decodificador de audio MPEG mpeg_audio Decodificador de capa de audio MPEG I/II/III mpeg_audio Empaquetador de capa de audio MPEG I/II/III mpc Demuxor MusePack mp4 Demuxor MP4 de emisión motiondetect Filtro de vídeo para detección de movimiento motionblur Filtro de movimiento borroso motion Interfaz de control de movimiento mosaic Mosaic video sub source mono Filtro de audio para conversión de estéreo a mono mod Demuxor MOD (libmodplug) mkv Demuxor Matroska de emisión mjpeg Demuxor de cámara M-JPEG mirror Filtro de vídeo de espejo memcpy libc memcpy mediadirs Mis vídeos mediadirs Mis vídeos mediadirs Mis imágenes mediadirs Mi música marq Muestra de marquesina magnify Filtro de vídeo interactivo magnificar/ampliar macosx Interfaz Mac OS X macosx Mac OS X Video Output Provider lua Lua interpreter lua Lua interpreter lua TV francesa lua Freebox TV lua Módulo SD Lua lua Extensión Lua lua Obtener ilustración usando scripts lua lua Interfaz analizador de lista de reproducción Lua lua Leer metadatos usando secuencias de comandos lua lua Obtener metadatos usando secuencias de comandos lua lua Lua Telnet lua Interfaz de control remoto lua Lua HTTP lpcm Decodificador de audio PCM lineal lpcm Decodificador de audio PCM lineal lpcm Empaquetador de audio PCM lineal logo Logo sub source logo Filtro de vídeo para logo logger Archivo de registro live555 demuxor RTP/RTSP/SDP (usando Live555) live555 Acceso y demux RTSP/RTP libmpeg2 Decodificador de vídeo I/II (usando libmpeg2) libbluray Soporte de disco Blo-Ray (libbluray) libass Generadores de subtítulos usando libass kate Decodificador de vídeo falso karaoke Filtro simple de Karaoke invert Invertir filtro de vídeo image Demuxor de imagen idummy Entrada simulada i422_yuy2_sse2 SSE2 conversions from I422 to YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv i422_yuy2 Conversions from I422 to YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv,Y211 i422_i420 Conversions from I422,J422 to I420,IYUV,J420,YV12,YUVA i420_yuy2_sse2 SSE2 conversions from I420,IYUV,YV12 to YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv i420_yuy2 Conversions from I420,IYUV,YV12 to YUY2,YUNV,YVYU,UYVY,UYNV,Y422,IUYV,cyuv,Y211 i420_rgb_sse2 Conversiones SSE2 I420,IYUV,YV12 a RV15,RV16,RV24,RV32 i420_rgb Conversiones I420,IYUV,YV12 to RGB2,RV15,RV16,RV24,RV32 hqdn3d High Quality 3D Denoiser filter hotkeys Interfaz de gestión de atajos de teclado headphone_channel_mixer Efecto de espacialización virtual de auriculares h264 Demuxor de vídeo H264 growl Complemento de notificación Growl grey_yuv Conversions from GREY to I420,YUY2 grain Filtro de vídeo grano gradient Filtro de vídeo gradiente gradfun Gradfun video filter goom Efecto Goom gnutls Capa de transporte de seguridad GNU TLS gnutls Servidor GNU TLS gme Game Music Emu gestures Interfaz de control de gestos de ratón gaussianblur Filtro de vídeo borroso Gausiano freetype Generador de fuente Freetype2 folder Carpeta de metadatos fluidsynth Sintetizador FluidSynth MIDI float32_mixer Mezclador de audio Float32 flacsys Demuxer FLAC flac Decodificador de audio Flac flac Codificador de audio Flac fixed32_mixer Fixed-point audio mixer filesystem Entrada de archivo filesystem Entrada de archivo faad Decodificador de audio AAC (usando libfaad2) extract Extraer filtro de componente RGB de vídeo export export export Exportar a lista de reproducción HTML export Exportar lista de reproducción XSPF export Exportar a lista de reproducción M3U8 export Exportar a lista de reproducción M3U es Audio MPEG-I/II/4 / A52 / DTS / MLP es Vídeo MPEG-4 erase Filtro de borrado de vídeo equalizer Ecualizador con 10 bandas edummy Decodificador simulado dynamicoverlay Superposición de vídeo dinámica dvdread Entrada DVBRead (sin soporte de menús) dvdnav Entrada DVDnav dvbsub Decodificador de subtítulos DVB dvbsub Codificador de subtítulos DVB dummy Interfaz simulada dtstospdif Filtro de audio para encapsulación DTS->S/PDIF dtstofloat32 Decodificador de audio de acústicas coherentes DTS dts Analizador DTS dts Empaquetador de audio DTS dolby_surround_decoder Decodificador simple para emisiones codificadas en Dolby Surround dirac Decodificador de vídeo Dirac demuxdump Volcador de archivo demux_stl EBU STL subtitles parser demux_cdg Demuxor CDG deinterlace Filtro de vídeo para desentrelazar decomp Descompresión decomp Descompresión decomp Descompresión ddummy Decodificador simulado ddummy Decodificador de volcado cvdsub Decodificador de subtítulos CVD cvdsub Empaquetador de subtítulos VCD Chaoji croppadd Filtro de escalado de vídeo converter_fixed Conversiones de formato de audio en coma fija converter_fixed Conversiones de formato de audio en coma fija compressor Compresor de rango dinámico colorthres Filtro de umbral de color clone Filtro de vídeo para clonar chorus_flanger Retraso de sonido chain Filtrado de vídeo usando una cadena de módulos de filtro de vídeo cdg Decodificador de vídeo CDG cdda Entrada de CD de audio cc Decodificador de subtítulos canvas Filtro de vídeo canvas bluescreen Filtro de vídeo pantalla azul blendbench Filtro de mezclado punto de referencia blend Mezclado de imágenes de vídeo ball Filtro del vídeo de bola avi Demuxor AVI avcodec Decodificador de audio/vídeo FFmpeg avcodec Salida acceso libavformat avcodec Acceso FFmpeg avcodec Muxor Avformat avcodec Demuxor Avformat avcodec Filtro de desentrelazar vídeo FFmpeg avcodec Codificador de audio/vídeo FFmpeg auhal Salida AudioUnit HAL audioscrobbler Envío de canciones reproducidas a last.fm audiobargraph_v Audio Bar Graph Video sub source audiobargraph_v Audio Bar Graph Video sub source audiobargraph_a Parte de audio de la función BarGraph audio_format Filtro de audio para conversión de formato PCM au Demuxer AU asf Demuxor ASF/WMV araw Decodificador Raw/Log Audio araw Codificador de audio en bruto aout_file Archivo de salida de audio antiflicker antiflicker video filter amem Salida de memoria de audio alphamask Filtro de vídeo máscara alfa aiff Demuxer AIFF aes3 Decodificador de audio AES3/SMPTE 302M aes3 Empaquetador de audio AES3/SMPTE 302M adummy Salida de audio simulado adpcm Decodificador de audio ADPCM adjust Filtro de propiedades de imagen access_vdr Grabaciones VDR access_udp Entrada UDP access_tcp Entrada TCP access_shm Memoria compartida framebuffer access_realrtsp RTSP Real access_rar RAR sin comprimir access_output_udp Salida de emisión UDP access_output_shout Salida de IceCAST access_output_livehttp Salida de emisión HTTP Live access_output_http Salida de emisión HTTP access_output_file Salida de emisión de archivo access_output_dummy Salida de emisión simulada access_mms Entrada Microsoft Media Server (MMS) access_imem Entrada de memoria access_imem Entrada de memoria access_http Entrada HTTP access_ftp Entrada FTP access_ftp Salida de subida FTP access_eyetv Entrada EyeTV access_bd Entrada de disco Blu-Ray access_attachment Entrada de adjunto a52tospdif Filtro de audio para encapsulación A/52->S/PDIF a52tofloat32 Decodificador de audio ATSC A/52 (AC-3) a52 Analizador A/52 a52 Empaquetador de audio A/52 main Programa principal
As you can see the error is:

Code: Select all

[0x10020a640] main libvlc warning: cannot find plug-in entry point in /Applications/VLC.app/Contents/MacOS/./plugins/libstream_filter_proton_plugin.dylib
If I check the VLC log (Window -> Messages) I haven't got any related error:

Code: Select all

main debug: using interface module "macosx" main debug: TIMER module_need() : 205.331 ms - Total 205.331 ms / 1 intvls (Avg 205.331 ms) main debug: playlist threads correctly activated main debug: rebuilding array of current - root Lista de reproducción main debug: rebuild done - 0 items, index -1 main debug: looking for services probe module: 5 candidates main debug: no services probe module matching "any" could be loaded main debug: TIMER module_need() : 3.757 ms - Total 3.757 ms / 1 intvls (Avg 3.757 ms) macosx debug: using future AR cookies main debug: looking for extension module: 1 candidate lua debug: Opening Lua Extension module lua debug: Trying Lua scripts in /Users/jose/Library/Application Support/org.videolan.vlc/lua/extensions lua debug: Trying Lua scripts in /Applications/VLC.app/Contents/MacOS/share/lua/extensions lua debug: Trying Lua scripts in /Applications/VLC.app/Contents/MacOS/share/share/lua/extensions main debug: using extension module "lua" main debug: TIMER module_need() : 0.269 ms - Total 0.269 ms / 1 intvls (Avg 0.269 ms) macosx debug: Found 1 capture devices macosx debug: no optical media found
No errors in Windows -> Errors and Warnings too.
Thanks again for your help!

j_vlc
Blank Cone
Blank Cone
Posts: 16
Joined: 11 Mar 2013 13:03

Re: Stream filter plug-in "cannot find plug-in entry point"

Postby j_vlc » 19 Mar 2013 19:54

I see that my module has this exported symbols:

Code: Select all

$ nm -g /Applications/VLC.app/Contents/MacOS/plugins/libstream_filter_proton_plugin.dylib U ___stdoutp U _fflush U _printf 0000000000000a20 T _vlc_entry__MODULE_NAME 0000000000000df0 T _vlc_entry_license__MODULE_NAME U dyld_stub_binder
I think that the problem is the "_vlc_entry__MODULE_NAME", because in other plugins looks like this:

Code: Select all

$ nm -g /Applications/VLC.app/Contents/MacOS/plugins/libstream_filter_record_plugin.dylib ... U _vlc_Log 00000000000021b0 T _vlc_entry__1_2_0l 0000000000002390 T _vlc_entry_copyright__1_2_0l 00000000000023a0 T _vlc_entry_license__1_2_0l U _vlc_fopen
Why my functions are *_MODULE_NAME?
Thanks for the help!!

Rémi Denis-Courmont
Developer
Developer
Posts: 15266
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Stream filter plug-in "cannot find plug-in entry point"

Postby Rémi Denis-Courmont » 20 Mar 2013 17:26

Because you did not compile correctly.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

j_vlc
Blank Cone
Blank Cone
Posts: 16
Joined: 11 Mar 2013 13:03

Re: Stream filter plug-in "cannot find plug-in entry point"

Postby j_vlc » 20 Mar 2013 17:33

Any clue of what I'm making bad please? Really I'm trying to compile correctly...
I'm following the wiki instructions step by step

Thank you very much for your help!

Rémi Denis-Courmont
Developer
Developer
Posts: 15266
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Stream filter plug-in "cannot find plug-in entry point"

Postby Rémi Denis-Courmont » 20 Mar 2013 17:46

I don't know what you are doing, but the presence of MODULE_NAME shows that you are not following the instructions.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded

j_vlc
Blank Cone
Blank Cone
Posts: 16
Joined: 11 Mar 2013 13:03

Re: Stream filter plug-in "cannot find plug-in entry point"

Postby j_vlc » 08 Apr 2013 17:47

Finally I have build a CMakeList.txt file to easy compile my plugin out of tree.

First, you must create a folder where compile VLC and create a script with this content: (configure-env-osx.sh in my case)

Code: Select all

#!/bin/sh function log () { echo $'\e[1;32m'$1$'\e[00m' ; } function errorLog () { echo $'\e[1;31m'$1$'\e[00m' ; } # MacPorts creates conflits when compile VLC, inform to the user if [ -d "/opt" ]; then errorLog 'It is not possible to compile VLC with MacPorts installed' errorLog 'Please, rename your "/opt" folder to "/_opt" and execute this script again' exit 1 fi # Clone the VLC source code log 'Cloning VLC source code' git clone git://git.videolan.org/vlc.git # Compile VLC <http://wiki.videolan.org/OSXCompile> log 'Compiling VLC. Consider take a cup of coffe...' export CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc export CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ export OBJC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc cd vlc mkdir build cd build ../extras/package/macosx/build.sh && \ make VLC-dev.app && \ log 'VLC devel environment correctly configured. Remember to restore your MacPorts folder if necessary'
This script clones and compiles the VLC source code in OS X Lion and Mountain Lion without problems.
Now create a "src" folder where you can put your source code, for testing you can try this:
viewtopic.php?f=32&t=109526#p371601

In the "src" folder create a "CMakeLists.txt" file with this content:

Code: Select all

project(TestPlugin) cmake_minimum_required(VERSION 2.6) SET(CMAKE_SYSTEM_NAME Darwin) SET(CMAKE_OSX_ARCHITECTURES x86_64) # To build as universal binary: SET(CMAKE_OSX_ARCHITECTURES i386;x86_64) # Target ADD_LIBRARY(stream_filter_proton_plugin SHARED VLCPlugin.cpp) # Add here your source code # Link with libvlccore using pkg-config SET(ENV{PKG_CONFIG_PATH} ${CMAKE_SOURCE_DIR}/../vlc/build/src) EXECUTE_PROCESS(COMMAND pkg-config --cflags vlc-plugin OUTPUT_VARIABLE VLC_PLUGIN_CFLAGS ERROR_VARIABLE VLC_PLUGIN_CFLAGS_STATUS) EXECUTE_PROCESS(COMMAND pkg-config --libs vlc-plugin OUTPUT_VARIABLE VLC_PLUGIN_LIBS ERROR_VARIABLE VLC_PLUGIN_LIBS_STATUS) IF(NOT ${VLC_PLUGIN_CFLAGS_STATUS} MATCHES 0) MESSAGE(FATAL_ERROR "pkg-config --cflags error: ${VLC_PLUGIN_CFLAGS_STATUS}") ENDIF(NOT ${VLC_PLUGIN_CFLAGS_STATUS} MATCHES 0) IF(NOT ${VLC_PLUGIN_LIBS_STATUS} MATCHES 0) MESSAGE(FATAL_ERROR "pkg-config --cflags error: ${VLC_PLUGIN_LIBS_STATUS}") ENDIF(NOT ${VLC_PLUGIN_LIBS_STATUS} MATCHES 0) STRING(REGEX REPLACE "\n" "" VLC_PLUGIN_CFLAGS "${VLC_PLUGIN_CFLAGS}") STRING(REGEX REPLACE "\n" "" VLC_PLUGIN_LIBS "${VLC_PLUGIN_LIBS}") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VLC_PLUGIN_CFLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${VLC_PLUGIN_CFLAGS}") SET(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS_INIT} ${VLC_PLUGIN_LIBS}) # Installation ADD_CUSTOM_COMMAND(TARGET stream_filter_proton_plugin COMMAND install_name_tool ARGS -change @loader_path/lib/libvlccore.5.dylib @loader_path/../lib/libvlccore.5.dylib libstream_filter_proton_plugin.dylib) INSTALL(TARGETS stream_filter_proton_plugin DESTINATION ${CMAKE_SOURCE_DIR}/../vlc/build/VLC.app/Contents/MacOS/plugins)
And now cd to src/build and execute:

Code: Select all

$ cmake .. && make && make install && ../../vlc/build/VLC.app/Contents/MacOS/VLC
To test your plugin. Thats all.


Return to “Development around libVLC”

Who is online

Users browsing this forum: No registered users and 24 guests