<div>Hi Sherman,</div> <div> </div> <div>Yes I can do that. There is a set of java classes (JVLC.class, input.class, vlm.class, video.class, playlist.class) that I use. The main thing as was mentioned by Remi was not to try to reuse the same instance. What I do is the JVLC.class makes a call the the libvlc.dll through a wrapper class jvlc.dll to create an instance. when creating an instance the libvlc.dll can be passed a window handle to an existing window which is created for a canvas class. In return a instance handle (integer) is passed back to the jvlc.class for use in makeing calls by video, input, playlist audio, vlm classes.</div> <div> </div> <div>You can look at the class source to see how they in turn make calls to the dll(s) which will help. But the main thing is to never ever try to reuse the same instance for another video when you want two videos running at the same time. Also I discovered for java at least there are times when the window
tied to a canvas class get destroyed by the java runtime engine (jre) such as repainting when moving a window to the top of the zorder. When that happens you need to destroy the instance of vlc tied to the java canvas otherwise you get segment faults. The same thing also happens where the window gets destroyed when a window get turned into an icon.</div> <div>This required destroying of a window may even effect a C application because I discovered there was a windows call used by the jre to restack the windows during a zorder call which may also happen in C but the instance was destroyed by the jre. If I overode the method to destroy the window handle vlc crashed.</div> <div> </div> <div>There might be other things I ran into but the very interesting thing I discovered is you need to specify when doing an install the path to the vlc dlls because if you do not do that vlc may not find them in the default directory structure it hopes to find. There is an
option to do this which I have to use since the java deployment method (java web start) I use puts the jars containing the main method and the dlls are in a jar that can end up in any folder in the cache folder structure but may not end up in the same folder together. So I had to write code to get the dlls out of the jar and put them into a folder where I can pass to the vlc instance the folder location.</div> <div> </div> <div>I have been able to get the reading of video files on the disk to work but the streaming is intermittantly working on different PC's running Windows XP. I am hoping it is a dll issue or a config issue where the options need to be just so in order for me to use the dlls. The vlc.exe sets certain options by default and sometimes it is really important to understand them.</div> <div> </div> <div>A lot of effort but I believe I am the only one who has gotten this far with the java bindings. I still need to work with the registration for
event notification which is very new but resolves things like notification of a video finishing without the dreaded polling in a separate thread.</div> <div> </div> <div>I know this may not be the answer you are looking for but maybe it gives you a starting point at least.</div> <div> </div> <div>Regards,</div> <div>Tony Anecito</div> <div>Founder,</div> <div>MyUniPortal</div> <div><A href="http://www.myuniportal.com">http://www.myuniportal.com</A></div> <div><BR><BR><B><I>Herman Schultz <herman.schultz@gmail.com></I></B> wrote:</div> <BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">Can you please share how you run vlc using the vlc libraries? I can't see to get that to work.<BR><BR> <DIV><SPAN class=gmail_quote>On 6/12/07, <B class=gmail_sendername>Tony Anecito</B> <<A href="mailto:adanecito@yahoo.com"> adanecito@yahoo.com</A>> wrote:</SPAN> <BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"> <DIV>Actually I am trying to get multiple child windows running videos using the vlc libraries right now. I am using the latest builds and the jvlc bindings. I am trying to work through understanding how to get the right options setup like for streaming (I left and email for the vlc team today) but otherwise it appears to work fine but I need to get streaming working so I and my testers can get back to testing vlc. </DIV> <DIV> </DIV> <DIV>Regards,</DIV> <DIV>-Tony Anecito</DIV> <DIV>Founder,</DIV> <DIV>MyUniportal</DIV> <DIV><A onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.myuniportal.com/" target=_blank>http://www.myuniportal.com</A></DIV><SPAN class=q> <DIV><BR><BR><B><I>Rémi Denis-Courmont <<A onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:rem@videolan.org" target=_blank>rem@videolan.org</A> ></I></B>
wrote:</DIV></SPAN> <DIV><SPAN class=e id=q_1132211c6c9b576a_2> <BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(16,16,255) 2px solid">Hello,<BR><BR>Le mardi 12 juin 2007, Herman Schultz a écrit : <BR>> I am trying to embed&invoke VLC in my c application.<BR>><BR>> I invoke VLC like this:<BR>> // i_argc is an int<BR>> // ppsz_argv2 is char* ppsz_argv2[]<BR>><BR>> int i_ret = VLC_Create();<BR>> i_ret = VLC_Init( 0, i_argc, ppsz_argv2 );<BR>> i_ret = VLC_AddIntf( 0, NULL, VLC_TRUE, VLC_TRUE );<BR>> <BR>> It works the first time when I do this.<BR>> But when I do that the same i_argc, ppsz_arg2[] the second time, I<BR>> get an segmentation inside VLC_Init().<BR>><BR>> Can you please tell me why is there? Or if that is the right way to <BR>> embed/invoke VLC in my own application.<BR><BR>There are two reasons why they crashes:<BR>The bad reason is that VLC 0.8.6 is not quite multi-instance-safe yet;
<BR>we are trying to solve this in upcoming version 0.9.0 but we would need <BR>people to test this seriously.<BR><BR>The good reason is that the "VLC" API (as used in src/vlc.c) uses main <BR>VLC object number "0". Given object numbers are shared across a <BR>process, there cannot be two VLC instance using object number 0. In <BR>other word, without some changes, the "VLC" API cannot be used to spawn <BR>more than one instance at a time.<BR><BR>*However*, as Pierre pointed out, the newer LibVLC media control API <BR>should work fine.<BR><BR>-- <BR>Rémi Denis-Courmont<BR><A onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.remlab.net/" target=_blank>http://www.remlab.net/</A><BR></BLOCKQUOTE><BR></SPAN></DIV><SPAN class=ad> <div></div> <HR SIZE=1> Luggage? GPS? Comic books? <BR>Check out fitting <A onclick="return top.js.OpenExtLink(window,event,this)"
href="http://us.rd.yahoo.com/evt=48249/*http://search.yahoo.com/search?fr=oni_on_mail&p=graduation+gifts&cs=bz" target=_blank>gifts for grads </A>at Yahoo! Search. <div></div></SPAN></BLOCKQUOTE></DIV><BR></BLOCKQUOTE><BR><p>
<hr size=1>Yahoo! oneSearch: Finally, <a href="http://us.rd.yahoo.com/evt=48252/*http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC"> mobile search
that gives answers</a>, not web links.