0.9.* breaks java command line launching

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
mrchumley
New Cone
New Cone
Posts: 4
Joined: 15 Oct 2008 11:19
VLC version: 0.9.4
Operating System: Windows XP

0.9.* breaks java command line launching

Postby mrchumley » 15 Oct 2008 11:47

I have a java app that launches VLC using the following command line (I've removed all the parameters for clarity):

Code: Select all

Runtime.getRuntime().exec("C:\\Program Files\\VideoLAN\\VLC\\vlc.exe")
In versions pre 0.9.2 this worked fine. With versions 0.9.2 and 0.9.4 the launching has stopped working correctly. What happens is that VLC process is created (and appears in task manager) but the UI is not shown until the calling application is closed. I am using Java JRE 1.6.0_07 on Windows XP SP3 but have tried Vista with the same results.

Tried a few things but seems to be a problem with VLC only.
In the descriptions below "working" means displaying instantly rather than waiting until the app closes.
  • - launching using the same command from a DOS prompt DOES work
    - launching VLC.exe DOESNT work but launching iexplore.exe using the same technique DOES work
    - a simple main() with the simple launch command (ie no parameters) under Vista DOESNT work.
Anyone any clues as to what's different and how to fix it?

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: 0.9.* breaks java command line launching

Postby Jean-Baptiste Kempf » 15 Oct 2008 17:02

Yes, please give us the messages in -vvv.

You probably need to specify the plugin-path.
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.

mrchumley
New Cone
New Cone
Posts: 4
Joined: 15 Oct 2008 11:19
VLC version: 0.9.4
Operating System: Windows XP

Re: 0.9.* breaks java command line launching

Postby mrchumley » 16 Oct 2008 14:27

Below is the output listing after launching VLC.exe from within a standalone Java application using the command
"C:/Program Files/VideoLAN/VLC/vlc.exe" -vvv --extraintf=logger

In summary:
We launch our Java app (either via Eclipse IDE or JNLP) and click a button to exec() the VLC command. The vlc process is created and appears in the TaskManager but the UI doesnt appear until we close our application.
The listing below is identical (except for thread IDs and other numbers) to the output from the same command issued in a command prompt which does show the UI, so I'm not sure this will give you any clues.

This same behaviour is shown on three separate PCs, two WinXPs in the work environment and one home PC running Vista.

Code: Select all

-- logger module started -- main debug: CPU has capabilities 486 586 MMX MMXEXT SSE SSE2 FPU main debug: looking for memcpy module: 3 candidates main debug: using memcpy module "memcpymmxext" main debug: thread 5656 (Interaction control) created at priority 0 (interface/interaction.c:382) main debug: thread started main debug: Creating an input for 'Media Library' main debug: Input is a meta file: disabling unneeded options main debug: `file/xspf-open://C:\Documents and Settings\cimellim\Application Data\vlc\ml.xspf' gives access `file' demux `xspf-open' path `C:\Documents and Settings\cimellim\Application Data\vlc\ml.xspf' main debug: creating access 'file' path='C:\Documents and Settings\cimellim\Application Data\vlc\ml.xspf' main debug: looking for access module: 2 candidates access_file debug: opening file `C:\Documents and Settings\cimellim\Application Data\vlc\ml.xspf' main debug: using access module "access_file" main debug: TIMER module_Need() : 2.000 ms - Total 2.000 ms / 1 intvls (Avg 2.000 ms) main debug: Using AStream*Stream main debug: pre-buffering... main debug: received first data for our buffer main debug: creating demux: access='file' demux='xspf-open' path='C:\Documents and Settings\cimellim\Application Data\vlc\ml.xspf' main debug: looking for demux module: 1 candidate playlist debug: using XSPF playlist reader main debug: using demux module "playlist" main debug: TIMER module_Need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms) main debug: `file/xspf-open://C:\Documents and Settings\cimellim\Application Data\vlc\ml.xspf' successfully opened main debug: looking for xml module: 1 candidate main debug: using xml module "xtag" main debug: TIMER module_Need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms) playlist warning: invalid <playlist> attribute:"xmlns:vlc" playlist debug: parsed 0 tracks successfully main debug: removing module "xtag" main debug: EOF reached main debug: control type=1 main debug: removing module "playlist" main debug: removing module "access_file" main debug: TIMER input launching for 'Media Library' : 5.000 ms - Total 5.000 ms / 1 intvls (Avg 5.000 ms) main debug: waiting for thread initialization main debug: thread started main debug: thread 5580 (preparser) created at priority 0 (playlist/thread.c:79) main debug: waiting for thread initialization main debug: thread started main debug: thread 5568 (fetcher) created at priority 0 (playlist/thread.c:108) main debug: waiting for thread initialization main debug: thread started main debug: rebuilding array of current - root Playlist main debug: rebuild done - 0 items, index -1 main debug: thread 5572 (playlist) created at priority 0 (playlist/thread.c:117) main debug: looking for interface module: 1 candidate logger: VLC media player - version 0.9.4 Grishenko - (c) 1996-2008 the VideoLAN team logger: Warning: if you can't access the GUI anymore, open a command-line window, go to the directory where you installed VLC and run "vlc -I qt" logger: using logger... logger warning: no log filename provided, using `vlc-log.txt' logger debug: opening logfile `vlc-log.txt' main debug: using interface module "logger" main debug: TIMER module_Need() : 7.000 ms - Total 7.000 ms / 1 intvls (Avg 7.000 ms) main debug: thread 5012 (interface) created at priority 0 (interface/interface.c:168) main debug: looking for interface module: 1 candidate main debug: thread started main debug: using interface module "hotkeys" main debug: TIMER module_Need() : 4.000 ms - Total 4.000 ms / 1 intvls (Avg 4.000 ms) main debug: thread 5536 (interface) created at priority 0 (interface/interface.c:168) main debug: thread started main: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. main debug: looking for interface module: 3 candidates main debug: using interface module "qt4" main debug: TIMER module_Need() : 22.000 ms - Total 22.000 ms / 1 intvls (Avg 22.000 ms) main debug: thread 5404 (interface) created at priority 0 (interface/interface.c:168) main debug: thread started qt4 debug: Error while initializing qt-specific localization main debug: removing all interfaces qt4 debug: Quitting the Qt4 Interface qt4 debug: Destroying the main interface qt4 debug: Destroying the Dialog Provider main debug: thread ended main debug: thread times: real 0m3.040089s, kernel 0m0.093750s, user 0m0.031250s main debug: thread 5404 joined (interface/interface.c:188) main debug: removing module "qt4" main debug: thread ended main debug: thread times: real 0m3.071269s, kernel 0m0.000000s, user 0m0.000000s main debug: thread 5536 joined (interface/interface.c:188) main debug: removing module "hotkeys" main debug: thread ended main debug: thread times: real 0m3.102449s, kernel 0m0.000000s, user 0m0.000000s main debug: thread 5012 joined (interface/interface.c:188) -- logger module stopped --
I'd be interested if anyone else is seeing this? Here is a sample app that produces the effect. The app doesn't appear until the dialog is cleared and the program quits.

Code: Select all

public static void main(String[] args) { try { Runtime.getRuntime().exec("C:/Program Files/VideoLAN/VLC/vlc.exe"); JOptionPane.showConfirmDialog(null, "Quit Program", "Test", JOptionPane.OK_OPTION); } catch (IOException e){e.printStackTrace();} }

mrchumley
New Cone
New Cone
Posts: 4
Joined: 15 Oct 2008 11:19
VLC version: 0.9.4
Operating System: Windows XP

Re: 0.9.* breaks java command line launching

Postby mrchumley » 24 Oct 2008 13:33

Can anybody confirm that they have had the command line working from a java app as listed below and that its not just me?

anon23
New Cone
New Cone
Posts: 1
Joined: 28 Oct 2008 01:13

Re: 0.9.* breaks java command line launching

Postby anon23 » 28 Oct 2008 01:22

First post!

I'd just like to say, I'm having the exact same problem as mrchumley, and I'd be very interested in a solution.

Thanks

chrisaaaaa
New Cone
New Cone
Posts: 3
Joined: 12 Nov 2008 13:36

Re: 0.9.* breaks java command line launching

Postby chrisaaaaa » 12 Nov 2008 13:40

Another sufferer, for me it carries on up thru 0.9.6 and Java 1.6.0_10.

Would use JVLC, but I need streaming and the ability to leave VLC running after the app quits, ironic that it only works after the app quits now :)

Chris

VLC_help
Mega Cone Master
Mega Cone Master
Posts: 25661
Joined: 13 Sep 2006 14:16

Re: 0.9.* breaks java command line launching

Postby VLC_help » 13 Nov 2008 15:14

Does it help if you run it as

Code: Select all

start vlc

chrisaaaaa
New Cone
New Cone
Posts: 3
Joined: 12 Nov 2008 13:36

Re: 0.9.* breaks java command line launching

Postby chrisaaaaa » 14 Nov 2008 00:02

I got a sort of workaround going with something like that, a throwback to the days of DOS, something like
"cmd /c /k start "vlc" "c:\prog.....exe".

I got it to start, and can track when it is closed, but I lost the ability to close VLC from java.

Chris

Arite
Big Cone-huna
Big Cone-huna
Posts: 2478
Joined: 26 Jun 2007 20:40
VLC version: 3.0.20
Operating System: Debian Testing|Win10

Re: 0.9.* breaks java command line launching

Postby Arite » 14 Nov 2008 00:21

If you want VLC to exit on finishing use e.g.:

Code: Select all

vlc:quit
In the commandline (not quite the same as closing from Java though).

Arite.
Don't use PMs for support questions.

chrisaaaaa
New Cone
New Cone
Posts: 3
Joined: 12 Nov 2008 13:36

Re: 0.9.* breaks java command line launching

Postby chrisaaaaa » 14 Nov 2008 00:47

I tried grabbing std input and sending that to it via java but it did not work.

If it does not get fixed in VLC soon I supposed I will have to get VLC to open a http socket for remote control and close it that way, but it is all getting a bit messy.

Chris

0001001
New Cone
New Cone
Posts: 8
Joined: 14 Mar 2005 15:23

Re: 0.9.* breaks java command line launching

Postby 0001001 » 07 Mar 2009 19:44

I have the same problem. Has anyone found a solution yet?

0001001
New Cone
New Cone
Posts: 8
Joined: 14 Mar 2005 15:23

Re: 0.9.* breaks java command line launching

Postby 0001001 » 07 Mar 2009 23:37

Ok I got the solution!

The problem is that the new VLC 0.9.x produces "Output" that needs to be processed. (Do not know how to explain it).

So to get the VLC working you have to process the InputStream of the process you created.
StreamGobbler class is from here:
http://www.javaworld.com/javaworld/jw-1 ... tml?page=4

Example:

Code: Select all

Process vlcprocess = Runtime.getRuntime().exec(vlc); StreamGobbler errorGobbler = new StreamGobbler(vlcprocess.getErrorStream(), "ERROR"); StreamGobbler outputGobbler = new StreamGobbler(vlcprocess.getInputStream(), "OUTPUT"); errorGobbler.start(); outputGobbler.start(); class StreamGobbler extends Thread{ InputStream is; String type; StreamGobbler(InputStream is, String type){ this.is = is; this.type = type; } public void run(){ try{ InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line=null; while ( (line = br.readLine()) != null){ //System.out.println(type + ">" + line); } } catch (IOException ioe){ ioe.printStackTrace(); } } }
But my advice for the VLC team is to have no output (I don't know if this is called command line output) when starting vlc. I don't know if vlc 0.8.x had this output when starting but this version worked without processing the streams.


Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: No registered users and 46 guests