Skip to main content

JMF Player

2 replies [Last post]
ldhung
Offline
Joined: 2007-05-29

With protocol version 1.3_0, JMF fails to play video.
It works great with 1.2_0 for the same video file.

[java] Checking protocol versions
[java] Server version 1.3_0
[java] Local version 1.3_0
[java] NOTE: node.getPickable() == false, setting true for javax.media.j3d.BranchGroup@170376
[java] ColliisonUtil:getCollisionTriangles NOT SUPPORTED FOR TriangleStripArray
[java] Process does not support setting AudioFormat
[java] Unable to handle format: mp4a, 48000.0 Hz, 16-bit, Stereo, BigEndian, Signed, FrameSize=32 bits
[java] The input format is not compatible with the given renderer plugin: org.jdesktop.lg3d.media.jmf.video.j3d.J3DRenderer@ae0840
[java] Failed to realize: com.sun.media.ProcessEngine@ba652
[java] Cannot build a flow graph with the customized options:
[java] Unable to add customed renderer: org.jdesktop.lg3d.media.jmf.video.j3d.J3DRenderer@ae0840
[java] Error: Unable to realize com.sun.media.ProcessEngine@ba652
[java] Failed to prefech the processor
[java] Exception in thread "AWT-EventQueue-0" javax.media.j3d.BadTransformException: TransformGroup: non-affine transform
[java] at javax.media.j3d.TransformGroup.setTransform(TransformGroup.java:118)
[java] at org.jdesktop.lg3d.wg.internal.j3d.j3dnodes.J3dComponent3D.setTransform(J3dComponent3D.java:180)
[java] at org.jdesktop.lg3d.wg.internal.j3d.j3dwrapper.Component3D.setTransform(Component3D.java:291)
[java] at org.jdesktop.lg3d.wg.Component3D.setTransform(Component3D.java:958)
[java] at org.jdesktop.lg3d.wg.Component3DAnimationTarget.setTranslation(Component3DAnimationTarget.java:167)
[java] at org.jdesktop.lg3d.wg.NullFrame3DAnimation.changeTranslation(NullFrame3DAnimation.java:59)
[java] at org.jdesktop.lg3d.wg.Component3D.changeTranslation(Component3D.java:571)
[java] at org.jdesktop.lg3d.wg.Component3D.setTranslation(Component3D.java:511)
[java] at org.jdesktop.lg3d.apps.jmfplayer.JMFPlayer.createButton(JMFPlayer.java:223)
[java] at org.jdesktop.lg3d.apps.jmfplayer.JMFPlayer.addControlComponentPanel(JMFPlayer.java:197)
[java] at org.jdesktop.lg3d.apps.jmfplayer.JMFPlayer.addComponents(JMFPlayer.java:167)
[java] at org.jdesktop.lg3d.apps.jmfplayer.JMFPlayer.(JMFPlayer.java:160)
[java] at org.jdesktop.lg3d.apps.jmfplayer.JMFFileChooser.createPlayerButtonActionPerformed(JMFFileChooser.java:563)
[java] at org.jdesktop.lg3d.apps.jmfplayer.JMFFileChooser.access$900(JMFFileChooser.java:36)
[java] at org.jdesktop.lg3d.apps.jmfplayer.JMFFileChooser$10.actionPerformed(JMFFileChooser.java:352)
[java] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
[java] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
[java] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
[java] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
[java] at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
[java] at java.awt.Component.processMouseEvent(Component.java:6038)
[java] at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
[java] at java.awt.Component.processEvent(Component.java:5803)
[java] at java.awt.Container.processEvent(Container.java:2058)
[java] at java.awt.Component.dispatchEventImpl(Component.java:4410)
[java] at java.awt.Container.dispatchEventImpl(Container.java:2116)
[java] at java.awt.Component.dispatchEvent(Component.java:4240)
[java] at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
[java] at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
[java] at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
[java] at java.awt.Container.dispatchEventImpl(Container.java:2102)
[java] at java.awt.Window.dispatchEventImpl(Window.java:2429)
[java] at java.awt.Component.dispatchEvent(Component.java:4240)
[java] at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
[java] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
[java] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
[java] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
[java] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
[java] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
[java] at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
krishna_gadepalli
Offline
Joined: 2005-12-14

I wrote the JMF plugin for wonderland early this year but had severe problems getting it to work consistently across the different OSes and hardware. It uses a custom audio renderer using JOAL (OpenAL) for spatialized audio and a custom video renderer using Java3D. The main problems had to do with getting JOAL to work consistently across different platforms. There were also some image format problems in the video renderer (very few though.. most movie streams worked). It also used the Fobs4JMF plugin to support the various new video formats.

Due to the problems we had, this project was shelved before JavaOne and hasnt been touched since. I am not sure what the sgs server/client protocol version makes any difference to the JMF player since as it stands it is not a shared app - it shows up only in the local client.

As we move forward we might just stop using JOAL for the audio and instead use the existing voice-bridge software to do the mixing/spatialization.

-krishna

glnsagar
Offline
Joined: 2007-05-03

The JMFPlayer had a bug with GeometryBuffer being used in the Rect class. Replace that code with GeometryInfo stuff ..it works. Better don't use Rect class. Use Box or any other shape3D object.