Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

videoVLC is crashing Pd on Win7 / MSVC w32 build #64

Open
avilleret opened this issue Sep 14, 2014 · 6 comments

Comments

Projects
None yet
2 participants
@avilleret
Copy link
Contributor

commented Sep 14, 2014

I have a gem_videoVLC.dll, libvlc.dll and libvlccore.dll beside my Gem.dll
but when launching Pd it crashes and I got this error in terminal :
GemDylib throwing: DLLerror<0x7e>Le module spécifié est introuvable
which could be in English : The specified module can't be found
and I don't know how to debug this further...

libvlc.dll version is 2.1.0.0
and all other Gem's plugins are disable.

@umlaeute

This comment has been minimized.

Copy link
Owner

commented Sep 15, 2014

what happens if you set the VLC_PLUGIN_PATH environment-variable to point to your plugin's path (e.g. %ProgramFiles%\VideoLAN\VLC\plugins)?

iirc, i had to set the env-var via the Control Panel (did not work when setting it on the cmdline)

@umlaeute umlaeute modified the milestone: 0.94 Sep 15, 2014

@avilleret

This comment has been minimized.

Copy link
Contributor Author

commented Sep 15, 2014

with Msys terminal I have :

$ echo "$VLC_PLUGIN_PATH"
C:\Program Files (x86)\VideoLAN\VLC\plugins
$ ls -1 "$VLC_PLUGIN_PATH"
access
access_output
audio_filter
audio_mixer
audio_output
codec
control
demux
gui
lua
meta_engine
misc
mmx
mux
packetizer
plugins.dat
services_discovery
sse2
stream_filter
stream_out
text_renderer
video_chroma
video_filter
video_output
visualization

which means that the environment variable is correctly set but pd still crash.

but I managed to catch a backtrace of this crash :

$ gdb pd.exe
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from c:\Users\win7\pd\pd-0.46.0\bin\pd.exe...(no debugging symbols found)...done.
(gdb) run
Starting program: c:\Users\win7\pd\pd-0.46.0\bin\pd.exe
[New Thread 3848.0xedc]
[New Thread 3848.0x2f0]

Program received signal SIGSEGV, Segmentation fault.
0x00960015 in ?? ()
(gdb) bt
#0  0x00960015 in ?? ()
#1  0x006222c5 in gem_videoVLC!?setProperties@videoVLC@plugins@gem@@UAEXAAVProperties@3@@Z () from C:\Users\win7\pd\Gem\build\win-vce2010\gem_videoVLC.dll
#2  0x100a9a00 in Gem!?doGetInstance@?$PluginFactory@Vvideo@plugins@gem@@@gem@@AAEPAVvideo@plugins@2@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ()
   from C:\Users\win7\pd\Gem\build\win-vce2010\Gem.dll
#3  0x100ad03c in Gem!?getInstance@?$PluginFactory@Vvideo@plugins@gem@@@gem@@SAPAVvideo@plugins@2@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z ()
   from C:\Users\win7\pd\Gem\build\win-vce2010\Gem.dll
#4  0x100ad3a6 in Gem!?doGetIDs@?$PluginFactory@Vvideo@plugins@gem@@@gem@@AAE?AV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@XZ () from C:\Users\win7\pd\Gem\build\win-vce2010\Gem.dll
#5  0x100ad85c in Gem!?getIDs@?$PluginFactory@Vvideo@plugins@gem@@@gem@@SA?AV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@XZ () from C:\Users\win7\pd\Gem\build\win-vce2010\Gem.dll
#6  0x100ae502 in Gem!?getInstance@video@plugins@gem@@SAPAV123@XZ () from C:\Users\win7\pd\Gem\build\win-vce2010\Gem.dll
#7  0x100a883e in Gem!??0video@plugins@gem@@QAE@ABV012@@Z () from C:\Users\win7\pd\Gem\build\win-vce2010\Gem.dll
#8  0x01d7b048 in ?? ()
#9  0x1009a9eb in Gem!??0Properties@gem@@QAE@ABV01@@Z () from C:\Users\win7\pd\Gem\build\win-vce2010\Gem.dll
#10 0x69a38fa0 in ?? () from c:\Users\win7\pd\pd-0.46.0\bin\pd.dll
#11 0x69a39329 in ?? () from c:\Users\win7\pd\pd-0.46.0\bin\pd.dll
@avilleret

This comment has been minimized.

Copy link
Contributor Author

commented Sep 15, 2014

and I forgot to mention, I modified the videoVLC.cpp here is the diff :

@@ -51,12 +51,12 @@ videoVLC::videoVLC(void) :
   m_type(0),
   m_instance(NULL),
   m_mediaplayer(NULL)
 {
   const char * const vlc_args[] = {
-    //"--plugin-path=c:\\program files\\videolan\\vlc\\plugins",
-#if 0
+    // "--plugin-path=c:\\program files\\videolan\\vlc\\plugins",
+#if 1
     "-I", "dummy", /* Don't use any interface */
     "--ignore-config", /* Don't use VLC's config */
     "--quiet",
 #endif
     //    "--sout=#transcode{vcodec=RV24,acodec=s16l}:smem",

because MSVC doesn't allow to allocate array with a size of 0.

besides question : could this array be deleted and init vlc with libvlc_new(0,NULL) ?

@umlaeute

This comment has been minimized.

Copy link
Owner

commented Sep 15, 2014

On 2014-09-15 13:09, Antoine Villeret wrote:

and I forgot to mention, I modified the videoVLC.cpp here is the diff :

@@ -51,12 +51,12 @@ videoVLC::videoVLC(void) :
   m_type(0),
   m_instance(NULL),
   m_mediaplayer(NULL)
 {
   const char * const vlc_args[] = {
-    //"--plugin-path=c:\\program files\\videolan\\vlc\\plugins",
-#if 0
+    // "--plugin-path=c:\\program files\\videolan\\vlc\\plugins",
+#if 1
     "-I", "dummy", /* Don't use any interface */
     "--ignore-config", /* Don't use VLC's config */
     "--quiet",
 #endif
     //    "--sout=#transcode{vcodec=RV24,acodec=s16l}:smem",

because MSVC doesn't allow to allocate array with a size of 0.

besides question : could this array be deleted and init vlc with libvlc_new(0,NULL) ?

we should initialize without arguments, that is:
libvlc_new(0,NULL);

this is what the current code basically does anyhow.

in any case, i just pushed that change (eea2a2d)

fgasmdr
IOhannes

@avilleret

This comment has been minimized.

Copy link
Contributor Author

commented Sep 17, 2014

here is a more detailed backtrace (I think) : https://gist.github.com/avilleret/2caadc46c8c0e39e2b4f

@umlaeute

This comment has been minimized.

Copy link
Owner

commented Sep 19, 2014

would it be possible to share the (Gem.dll + suplementary runtime dlls; gem_videoVLC.dll)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.