JMF, OutOfMemory... (Urgent)

Hello, friends...
Now, we are trying to develop media player using JMF.
Our MDI application does play a local media file and RTP play with data sources on the network, by using JIntenalFrame.
Then, out problem is that, "any player or any processor allocate its memory when it started, but it could not deallocate after play has done and its JInternalFrame has been disposed.".
I test if it retains any references, but I couldn't.
I give you some information.
- OS : Windows Advanced Server 2000.
- JMF 2.1.1
- Visual Components are based on Swing.
- Watch a performence chart on Window or your machine dependent agent.
- Tests using MDI solution from Sun.
Thanks, hope in advance...
Here is code.
1. MDI Panel and Frame Source. <code>
- excuse on removing comments about rights agreement.
import javax.media.*;
import com.sun.media.ui.*;
import javax.media.protocol.*;
import javax.media.protocol.DataSource;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.Vector;
import javax.swing.plaf.metal.*;
public class MDIApp extends JPanel implements ActionListener {
static void Fatal(String s) {
          MessageBox mb = new MessageBox("JMF Error", s);
* VARIABLES
JMFrame jmframe = null;
JDesktopPane desktop;
FileDialog fd = null;
// Player player = null;
// Player newPlayer = null;
String filename;
* METHODS
JFrame frame;
     public MDIApp( JFrame _owner ) {
          frame = _owner;
          frame.setTitle("Java Media Player");
          // Add the desktop pane
          setLayout( new BorderLayout() );
          desktop = new JDesktopPane();
          desktop.setDoubleBuffered(true);
          add(desktop, BorderLayout.CENTER);
          setSize(640, 480);
          setVisible(true);
          frame.addWindowListener( new WindowAdapter() {
               public void windowClosing(WindowEvent we) {
                    System.exit(0);
          Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, new Boolean(true));
     public void actionPerformed ( ActionEvent e ) {
          String command = e.getActionCommand();
          if (command.equals("Open")) {
               if (fd == null) {
                    fd = new FileDialog( frame, "Open File", FileDialog.LOAD);
                    fd.setDirectory("/movies");
               fd.show();
               if (fd.getFile() != null) {
                    String filename = fd.getDirectory() + fd.getFile();
                    openFile("file:" + filename);
          } else if (command.equals("Exit")) {
               System.exit(0);
* Open a media file.
public void openFile(String filename) {
          String mediaFile = filename;
          Player player = null;
          // URL for our media file
          URL url = null;
          try {
               // Create an url from the file name and the url to the
               // document containing this applet.
               if ((url = new URL(mediaFile)) == null) {
                    Fatal("Can't build URL for " + mediaFile);
                    return;
               // Create an instance of a player for this media
               try {
                    player = Manager.createPlayer(url);
               } catch (NoPlayerException e) {
                    Fatal("Error: " + e);
          } catch (MalformedURLException e) {
               Fatal("Error:" + e);
          } catch (IOException e) {
               Fatal("Error:" + e);
          if (player != null) {
               this.filename = filename;
               JMFrame jmframe = new JMFrame(player, filename);
               desktop.add(jmframe);
     * MAIN PROGRAM / STATIC METHODS
     public static void main(String args[]) {
          JFrame ff = new JFrame();
          MDIApp mdi = new MDIApp( ff );
          MenuItem item;
          MenuBar mb = new MenuBar();
          // File Menu
          Menu mnFile = new Menu("File");
          mnFile.add(item = new MenuItem("Open"));
          item.addActionListener( mdi );
          mnFile.add(item = new MenuItem("Exit"));
          item.addActionListener( mdi );
          // Options Menu     
          Menu mnOptions = new Menu("Options");
          CheckboxMenuItem cbAutoLoop = null;
          cbAutoLoop = new CheckboxMenuItem("Auto replay");
          cbAutoLoop.setState(true);
          mnOptions.add(cbAutoLoop);
          mb.add(mnFile);
          mb.add(mnOptions);
          ff.getContentPane().add( mdi );
          ff.setMenuBar( mb );
          ff.show();
2. JMFrame: JInternalFrame Source with Player. <code>
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.Vector;
import javax.media.*;
import javax.media.protocol.*;
import javax.media.protocol.DataSource;
import javax.swing.*;
import javax.swing.event.*;
import com.sun.media.ui.*;
public class JMFrame extends JInternalFrame implements ControllerListener {
     Player mplayer;
     Component visual = null;
     Component control = null;
     int videoWidth = 0;
     int videoHeight = 0;
     int controlHeight = 30;
     int insetWidth = 10;
     int insetHeight = 30;
     boolean firstTime = true;
     public JMFrame(Player player, String title) {
          super(title, true, true, true, true);
          getContentPane().setLayout( new BorderLayout() );
          setSize(320, 10);
          setLocation(50, 50);
          setVisible(true);
          mplayer = player;
          mplayer.addControllerListener((ControllerListener) this);
          mplayer.realize();
          addInternalFrameListener( new InternalFrameAdapter() {
               public void internalFrameClosing(InternalFrameEvent ife) {
                    mplayer.stop();
                    mplayer.deallocate();
                    mplayer.close();
//                    visual.dispose();
//                    control.dispose();
     public void controllerUpdate(ControllerEvent ce) {
          if (ce instanceof RealizeCompleteEvent) {
               mplayer.prefetch();
          } else if (ce instanceof PrefetchCompleteEvent) {
               if (visual != null) return;
               if ((visual = mplayer.getVisualComponent()) != null) {
                    Dimension size = visual.getPreferredSize();
                    videoWidth = size.width;
                    videoHeight = size.height;
                    getContentPane().add("Center", visual);
               } else videoWidth = 320;
               if ((control = mplayer.getControlPanelComponent()) != null) {
                    controlHeight = control.getPreferredSize().height;
                    getContentPane().add("South", control);
               setSize(videoWidth + insetWidth,
               videoHeight + controlHeight + insetHeight);
               validate();
               mplayer.start();
          } else if (ce instanceof EndOfMediaEvent) {
               mplayer.setMediaTime(new Time(0));
               mplayer.start();
}

"Additional Information : Tracking with calls, System.gc(), after every step"
%> java -mx128m -ms128m MDIApp
STEP 1 [READY]
TotalMemory(133,234KB) FreeMem(131,310Kb) MaxMem(201,326Kb)
STEP 2 [Request Realize]
TotalMemory(133,234KB) FreeMem(131,306Kb) MaxMem(201,326Kb)
STEP 3 [Realized]
TotalMemory(133,234KB) FreeMem(94,678Kb) MaxMem(201,326Kb)
STEP 4 [Request Prefetch]
TotalMemory(133,234KB) FreeMem(99,880Kb) MaxMem(201,326Kb)
STEP 5 [Prefetched]
TotalMemory(133,234KB) FreeMem(98,659Kb) MaxMem(201,326Kb)
STEP 6 [Visual Component was contructed]
TotalMemory(133,234KB) FreeMem(98,377Kb) MaxMem(201,326Kb)
STEP 7 [Player Started]
TotalMemory(133,234KB) FreeMem(98,376Kb) MaxMem(201,326Kb)
STEP 9 [Before Close]
TotalMemory(133,234KB) FreeMem(91,204Kb) MaxMem(201,326Kb)
[After Close]
TotalMemory(133,234KB) FreeMem(92,153Kb) MaxMem(201,326Kb)
// Play another movie with JMF
STEP 1 [READY]
TotalMemory(133,234KB) FreeMem(92,128Kb) MaxMem(201,326Kb)
STEP 2 [Request Realize]
TotalMemory(133,234KB) FreeMem(92,125Kb) MaxMem(201,326Kb)
STEP 3 [Realized]
TotalMemory(133,234KB) FreeMem(66,612Kb) MaxMem(201,326Kb)
STEP 4 [Request Prefetch]
TotalMemory(133,234KB) FreeMem(71,109Kb) MaxMem(201,326Kb)
STEP 5 [Prefetched]
TotalMemory(133,234KB) FreeMem(67,800Kb) MaxMem(201,326Kb)
STEP 6 [Visual Component was contructed]
TotalMemory(133,234KB) FreeMem(66,810Kb) MaxMem(201,326Kb)
STEP 7 [Player Started]
TotalMemory(133,234KB) FreeMem(66,809Kb) MaxMem(201,326Kb)
STEP 9 [Before Close]
TotalMemory(133,234KB) FreeMem(62,464Kb) MaxMem(201,326Kb)
STEP 10 [After Close]
TotalMemory(133,234KB) FreeMem(63,379Kb) MaxMem(201,326Kb)
// Goes to condition, "outofmemory"
STEP [Before Application Terminated]
TotalMemory(133,234KB) FreeMem(63,360Kb) MaxMem(201,326Kb)

Similar Messages

  • Urgent! Please help. JVM Perm size OutOfMemory with wls9.1

    Sorry for posting this here since I could not find a general weblogic JVM trouble shooting newsgroup. Basically we have an issue in production where OutOfMemory Error occurred in the Perm space after server has been up for half an hour. We recently upgraded from wls8.1+sun hotspot 1.4.2 to wls9.1 + Sun hotspot 1.5.0_06. Originally under wls8.1, the perm space usages was pretty stable at about 80MB (Perm space was set to 128MB). But now 128MB seemed being filled up very quickly. I found the increase size in weblogic.jar and rt.jar both from weblogic upgrade and sun jre upgrade. So last night the production server's perm space size was increased to 192MB. This morning everything looked fine, perm space usage was stable at about 120MB. However, at noon, suddendly 2 servers the perm space started being filled up quickly. Half an hour later, so was the other app server.
    Have anybody seen this issue before? Could it be an issue in some weblogic subsystem with jre 1.5.0_06 since there is no code change made to the application? Is 192MB too aggressive which could cause some issue?
    Thanks in advance. Any help will be greatly appreciated.
    Bing

    Bing Zou wrote:
    Sorry for posting this here since I could not find a general weblogic JVM trouble shooting newsgroup. Basically we have an issue in production where OutOfMemory Error occurred in the Perm space after server has been up for half an hour. We recently upgraded from wls8.1+sun hotspot 1.4.2 to wls9.1 + Sun hotspot 1.5.0_06. Originally under wls8.1, the perm space usages was pretty stable at about 80MB (Perm space was set to 128MB). But now 128MB seemed being filled up very quickly. I found the increase size i
    n weblogic.jar and rt.jar both from weblogic upgrade and sun jre upgrade. So last night the production server's perm space size was increased to 192MB. This morning everything looked fine, perm space usage was stable at about 120MB. However, at noon, suddendly 2 servers the perm space started being filled up quickly. Half an hour later, so was the other app server.
    Have anybody seen this issue before? Could it be an issue in some weblogic subsystem with jre 1.5.0_06 since there is no code change made to the application? Is 192MB too aggressive which could cause some issue?
    Thanks in advance. Any help will be greatly appreciated.
    BingHi Bing, I wich I could help you more directly but I suggest you contact BEA
    official support. They are the best for knowing or sifting through all
    possibly relevant changes and/or fixes for a given set of symptoms.
    Joe

  • URGENT - HANDLING SOUNDS IN JWS -JMF

    Hi
    I am done an application with runs fine in Java Web start. I have used some sound files in that which playing using JMF. I have jared all the sound files and which downloading properly in client machine.
    But i am getting the following Exception while reading the files :
    # JMF Version 2.1
    ## Platform: Windows 2000, x86, 5.1
    ## Java VM: Sun Microsystems Inc., 1.3.1_02
    XX Unable to create a playerjavax.media.NoPlayerException: Cannot find a Player for :jar:file:/d:/Program Files/Java Web Start/.javaws/cache/http/DEdward/P80/DMeconomy/DMsjar/RMsound.jar!/01C1a_01.wav
    XX Unable to create a playerjavax.media.NoPlayerException: Cannot find a Player for :jar:file:/d:/Program Files/Java Web Start/.javaws/cache/http/DEdward/P80/DMeconomy/DMsjar/RMsound.jar!/01C1a_01.wav
    Please, help us for furture proceedings.
    Thanks is advance
    Edward.I

    In order to enable JMF to play media from inside of a .jar file, take a look at Chris Admason's article: "self-playing media with Java media framework" at www.Onjava.com (10/09/02).

  • FSM with JMF 2.1.1(a) and one more problem. !! URGENT

    Good AfterNoon All...
    I am working on JMF 2.1.1 and I want to show a .avi file in fullScreenMode.
    How can i do so with jdk 1.4.
    I have gotten viewComponent and control comp.
    My application is running sucessfully. NO PROBLEM.
    But i want to show the movie in FSM . In order to do so, what i am doing is , I remove view
    Comp from my JFrame (in which whole of the process is going on.) .
    Add that viewComp in fullScreenWindow (which is initilized Window with parent frame.).
    But here some problem is there. According to me, it is painting problem.
    viewComp is removed successfully from frame but not added in window.
    Layout of window is border and i am adding viewComp in center of window.
    Running movie is not visible in Window. WHY ? what could be the possible reason.
    Is it possible or It can't happen. ?
    One thing more.... HUH...
    I have a menubar in frame with file and tool menus.
    when player initilized and movie starts running . You know what happens.
    Clicking on menu(s) doesnot cause menuitem(s) to visible or pull down. ?? Oh ! GOD.
    viewComp is at center and controlComp is at South.
    When i click on say fileMenu. file Menu pressed as always happens with swing's color but menuitems donot visible.
    WHY ?
    It seems that menuitems are visible ....hamam.ma...mmm I mean they are hided by viewComp.
    how to get ride of this problem. ?
    Any idea is highly appreciated.
    And it is nice working with JMF.

    Nobody .... ??
    I have found the answer of my 2nd question but still first is creating problem.
    Does anyone know it.. how to do it..
    Full Screen Mode in JFM.
    Thanks
    Sanjeev Dhiman

  • URGENT- problem in detecting audio device using  JMF in  WIndows7 - 64 bit

    Hi,
    I am trying to detect the audio device in windows 7 -64 bit OS, using JMF API with JRE 1.6.18.But it showing zero device found.below i have mentioned the source code that i have used.please suggest how to solve this , thanks in advance.
    import java.util.ArrayList;
    import java.util.Vector;
    import javax.media.CaptureDeviceInfo;
    import javax.media.CaptureDeviceManager;
    import javax.media.format.AudioFormat;
    import javax.media.format.VideoFormat;
    public class CaptureDeviceFinder {
    //possible audio formats available
    static String audioformats[] = {
    AudioFormat.LINEAR };
    static ArrayList available_audiolist= new ArrayList();
    public static void main(String[] args) {
    findAudioDevices();
    }//main
    public static void findAudioDevices() {
    / Audio capture devices /
    System.out.println("CAPTURE AUDIO FORMATS:");
    for (String format : audioformats) {
    System.out.println("format is :"format);
    Vector<CaptureDeviceInfo> devices = CaptureDeviceManager
    .getDeviceList(new AudioFormat(format));
    System.out.println("devices is"+devices);
    for (CaptureDeviceInfo device : devices) {
    if (!devices.isEmpty()) {
    System.out.println("\tFormat: " format);
    System.out.println("\t\t" device.getName());
    available_audiolist.add(format"|"+device.getName());
    System.out.println("list is :"+available_audiolist);
    Edited by: Saravana4u on Mar 17, 2010 10:39 AM

    almightywiz wrote:
    Well, I don't know if the JMF Studio works on a 64-bit system, but the base java libraries work just as well as on a 32-bit system. I currently use both Windows 7 64-bit and 32-bit version, and I am able to recognize all of my audio input devices.JMF wraps around and makes use of a bunch of native interfaces, all of which are precompiled for 32-bit systems. As such, anything relying upon those 32-bit libraries will not work, and that cuts the functionality down to, essentially, the cross-platform pack stuff.
    JMF's sound infastructure is mostly a wrapper around JavaSound, so as long as JavaSound is working on the JRE, you'll be able to utilize the audio functionality.
    As for device detection, I know at least some of that is native code. I'm not 100% sure, but I'd almost expect the Windows performance pack to never return any devices on a 64-bit system, but the cross-platform back to return audio devices. This is an assumption, but, that's what I would expect.
    In any case, if you're using the Windows performance pack, you'd most likely get better results by switching to the cross-platform pack.

  • Please help me- Urgent! JMF Player doesn't play correctly framerate

    Hi all!
    I've been installed JMF 2.1 on Ubuntu 9.04 and it's a Virtual Machine . It's seem successfull. I only have error "Can't open video card 0...." but i think it's not important
    I used jmstudio to open some file, and i've opened them, but they're played incorrectly.They're played very fast, both audio and video. Example : a file has 1min33s length played in approximate 20s.
    i tried some ways but it doesn't change
    i use JMStudio to open them.
    Please help me. I need to solve it now because my project is out of date.
    Edited by: hieunh87 on Jan 7, 2010 11:02 AM
    Edited by: hieunh87 on Jan 7, 2010 11:06 AM

    hieunh87 wrote:
    I've tried but it's doesn't change
    it's rate is 1.0 and although setRate((float)0.1);Then it sounds like an issue with using JMF in a virtual machine. Don't know that there's anything you can do...

  • Receiving Video RTP Stream (JMF) in JME ( MMAPI ) - URGENT !!!

    Hi Folks...
    I�m trying to develop an application that sends the images from a web cam connected to the computer, to the PDA that the images can be viewed by the user...
    My code for the JMF RTP Video Stream is as follows.
    Processor proc = null;
              javax.media.protocol.DataSource ds = null;
              TrackControl[] tc = null;
              int y;
              boolean encodingOk = false;
              Vector<javax.media.protocol.DataSource> datasources = new Vector<javax.media.protocol.DataSource>();
              for( int x = 0 ; x < camerasInfo.length ; x++ ){
                   try {
                        proc = Manager.createProcessor(camerasInfo[x].getLocator());
                   }catch (NoProcessorException e) { System.out.println("Erro ao int�nciar PROCESSOR: " + e);     }
                    catch (IOException e) { System.out.println("Erro ao int�nciar PROCESSOR: " + e); }
                   proc.configure();
                   try {
                        Thread.sleep(2000);
                   } catch (InterruptedException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                   proc.setContentDescriptor( new ContentDescriptor(ContentDescriptor.RAW_RTP) );
                   tc = proc.getTrackControls();
                   for( y = 0; y < tc.length ; y++ ){
                        if (!encodingOk && tc[y] instanceof FormatControl){
                             if( ( (FormatControl) tc[y] ).setFormat( new VideoFormat(VideoFormat.RGB) ) != null ){
                                  tc[y].setEnabled(true);                              
                             }else{
                                  encodingOk = true;
                        }else{
                             tc[y].setEnabled(false);
                   proc.realize();
                   try {
                        Thread.sleep(2000);
                   } catch (InterruptedException e1) {
                        e1.printStackTrace();
                   try{
                        ds = proc.getDataOutput();
                   }catch(NotRealizedError e){
                        System.out.println("ERRO ao realizar datasource: " + e);
                   }catch(ClassCastException e){
                        System.out.println("Erro ao realizar datasource: " + e);
                   datasources.add(ds);
                   System.out.println( ds.getLocator() );
                   encodingOk = false;
              MediaLocator ml = new MediaLocator("rtp://10.1.1.100:99/video");
              try {
                   DataSink datSink = Manager.createDataSink(ds , ml);
                   datSink.open();
                   datSink.start();
              } catch (NoDataSinkException e) {
                   System.out.println("Erro ao instanciar DataSink: " + e );
              } catch (SecurityException e) {
                   System.out.println("Erro ao iniciar DataSink: " + e);
              } catch (IOException e) {
                   System.out.println("Erro ao iniciar DataSink: " + e);
              }I�m not sure if this code is correctly... it is ?
    So... the next part of the systems runs on the PDA..
    The code that access this RTP Stream is as follows..
              VideoControl c = null;
              try {
                   player = Manager.createPlayer("rtp://10.1.1.100:99/video");
                   c = (VideoControl) player.getControl("VideoControl");
                   tela = (Item) c.initDisplayMode( GUIControl.USE_GUI_PRIMITIVE, null);
                   player.start();
                   append(tela);
              } catch (IOException e) {
                   str.setText(e.toString());
                   append( str );
              } catch (MediaException e) {
                   str.setText(e.toString());
                   append( str );
              }So when the APP try to create a player for "rtp://10.1.1.100:99/video" an MediaException is throwed..
    javax.microedition.media.MediaException: Unable to create Player for the locator: rtp://10.1.1.100:99/video
    So... I don�t know what happen =/
    The error is in the PDA module ? Or in the computer�s initialization off the RTP Video Streaming ?
    I need finish this job at next week... so any help is usefull..
    Waiting for answers
    Rodrigo Kerkhoff

    First of all: before going onto the j2me part, make sure the server works, before doing anything else! Apparently, it doesn't...
    The MediaLocator is generally used to specify a kind of URL depicting where the data put into the datasink should go to. In your case, This cannot be just some URL where you want it to act as a rtps server. You'll need to implement that server yourself I guess.

  • URGENT !!! ANY GOOD BOOK FOR JMF - RTP programming ????

    Can you propose some books about JMF and RTP/RTCP programming ??
    Thanks in advance !!!

    The only JMF books available are "Essential JMF - Java Media Framework" by Rob Gordon (ISBN 0130801046), "Core Java Media Framework" by Linden deCarmo (ISBN 0130115193) and "Programming with the Java Media Framework" by Sean C. Sullivan, et. al. (ISBN 0471251690). All of them are very out-of-date and only cover JMF 1.x (i.e. no audio / video capture and no RTP). All of them were not very good to begin with but "Essential JMF" is probably the better of the three.

  • OutOfMemory Exception on weblogic 8 SP5 (Urgent)

    Hi,
    I am running a web application (EJB) on weblogic 8 SP5. There is one scheduled job which through outofmemory exception. But this exception is only appearing on Sun HotSpot JVM, If I configure JRockit JVM it does not through any exception.
    Also it is working file on weblogic 8 SP3 and below version.
    Plese help me in this, Its very urgent

    Raise this issue with BEA. Do you think we have a crystal ball or something to see what's wrong in you'r server ? :-)

  • (urgent) new to JMF

    hai,
    i am new to JMF.. now iam trying to do voice chat in JMF over internet.. i have tried some example like AVTrasmitter and Reciver.. but i think those examples are not working in the internet.. so if any one have code to create voice chat which works in internet means please sent to my id.. or send me the link. my id is [email protected] or [email protected]
    regards
    subramanian

    Good luck getting help on this (I don't mean to be nasty). JMF is the worst API I've ever seen, and errors like this are common and often have no defined solution. I don't know much about MP3 but that looks like a highly non-standard coding. Does JMF play 'normal' 128 kbps MP3s for you? I've also heard of JMF having issues with samplerate conversion.
    Again, good luck.

  • (urgent) did audio chat in JMF will work in internet

    hai all,
    i have created a voic chat using JMF.. in that to connect the remote system iam asking for IP address and i will connect it. the main thing is that if i try to connect from a dial up connetion that is public IP to an network IP means do we get connected?? or not... suppose if iam not connected with it means what should i do..
    please help me.
    regards
    subramania

    Hi, prabal
    First, I want to clarify. Did you mean PRIVATE IP address (e.g. 192.168.0.1) when you said DUPLICATE?
    I am not sure if what you are asking is possible. There are number of issues:
    1. Dial-up bandwitdth might not be enough for your audio. Normally it says 56kbps, but in reality it is much less. The smallest bandwidth consumer is GSM codec. So, you should use it on the first place.
    2. Dial-up means, that your friend will probably get a private IP adddress. In this case, you can still have a chat (but it will be really difficult to manage!!!) if you send your audio to the public address of your friend's gateway. If you directly send stream to a private address, it will be dropped by the first router. Plus, you have to send your stream to the same port, which your friend uses to send his audio to you (this is called Symmetric RTP, take a look at definition here http://www.voip-info.org/wiki/index.php?page=RTP+Symmetric). But dont hope for it to work, when either of you use private addresses.
    3. On the other hand, if your friend gets a public address and you also have a public adderess, then you should not have many problems sending audio both ways, as long as his firewall allows you to.
    4. NATed networks (i.e. the one that uses private ip addresses for its hosts) can be different. There are number of ways to implement NAT, some NATs will easily allow you to send traffic, and some dont.
    5. I think there are some more smaller issues to address to, but cannot recall them at the moment.
    Anyway, if you want to implement chat and use IP addresses directly, I believe you will run into tons of problems, when you'll use it through Internet. However, this chat program will probably work very well on a local net (i.e. LAN).
    Best of luck.

  • Urgent: Considering API other than JMF

    I'm developing a videoconfering Java applet. I originally considered developing it with JMF, but am looking for another API mainly because of the limited number of webcams that work with JMF and the size of the JMF API itself that all users running the applet must install. I'm looking for a videoconferencing API written in c++ and thinking of using JNI with it to develop my Java applet. I'm wondering if anybody knows of any such API? and I'm also wondering what you think of JMF?
    Thanks in Advance,
    Ahmed

    Yes, you are correct the user doesn't have to download the whole JMF API. He/She only needs to load the JMF classes that the applet uses which I can control with the customizer (creating smaller jar files). However, I am concerned that the number of classes that the applet uses will be large. Remember, that it is a videoconferencing applet, so it needs to capture, transmit, receive and display both audio and video. I am really concerened about the size of the applet. I also emailed someone who has been using JMF for a long time. He said that he devloped a videoconferencing system using JMF and said that it is rather unstable.
    Regarding the compatible webcams, well if you look at
    http://java.sun.com/products/java-media/jmf/2.1.1/formats.html
    you can see all the capture devices (very few) that work with JMF. Also, I have win2K on my machine, and it been over 2 weeks now with me emailing people and the JMF interest list about what webcams work with Win2k, but have still not gotten any definite answers.
    Some suggested to me that I use Microsoft's Netmeeting API to develop my applet.
    Tell me what you think about any of the above points especially the Netmeeting API. I am VERY hesitant about whether to use JMF to write applet. I have a very short amount of time to complete my applet, so I have to begin fast. The thing that I like about JMF (and all other Java APIs) is that they are quite easy and straightforward to use, which means rapid application development.
    Ahmed

  • JMF Using HELP! HELP! URGENT!

    Hi, all....
    May i use JMF for my task...
    I need showing images on Swing JPanel...
    My program get some images (25 frame per second) and i need show its on screen very fast(live video).

    Ok, a lot of thanks
    Next trouble:
    I have raw data (byte array), how to draw this array to screen with JMF ?
    Thanks to advise...

  • Urgent help! usb capture card jmf compatible

    Does someone know a usb capture card that is working with jmf.
    (720x576 pal supported if possible)
    Tanks

    did you got any answers on that?
    I also have the same problem...
    i can't use my capture card in JMF since it is recognized as:
    Name = vfw:Microsoft WDM Image Capture (Win32):0
    Locator = vfw://0
    Output Formats---->
    0. com.sun.media.format.AviVideoFormat
    UYVY, 720x480, Length=691200 0 extra bytes

  • OutOfMemory?? URGENT, please

    Hello.
    while i was running my application, occurred a strange error...
    Exception occurred during event dispatching:
    java.lang.OutOfMemoryError
    <<no stack trace available>>
    does anybody knows this error?? how can i solve it??
    thanx

    java.lang.OutOfMemoryErrorYou get this error when you run out of memory.
    I don't believe it, I managed to say that totally poker faced. Amazing!
    The default memory allocation for a Java VM depends on all kinds of things - who wrote it, what OS you're on and, in particularly nasty cases, the cleanliness of your project mamagers underwear ;)
    However, you can manipulate this allocation by supplying options to the VM when you run it.
    The stuff below is copied from the Javadoc that comes with JDK 1.4.0_01.
    Sun keep changing the exact syntax of these options, so you're millage may vary - consult the docs for the VM you are using for hard facts.
    -Xmsn
    Specify the initial size, in bytes, of the memory allocation pool. This value must be a multiple of 1024 greater than 1MB. Append the letter k or K to indicate kilobytes, or m or M to indicate megabytes. The default value is 2MB. Examples:
    -Xms6291456
    -Xms6144k
    -Xms6m
    -Xmxn
    Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024 greater than 2MB. Append the letter k or K to indicate kilobytes, or m or M to indicate megabytes. The default value is 64MB. Examples:
    -Xmx83886080
    -Xmx81920k
    -Xmx80m

Maybe you are looking for