[kepler-dev] JAI actors
Christopher Brooks
cxh at eecs.berkeley.edu
Mon May 8 10:29:59 PDT 2006
Hi Nandita,
When I try to run ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml
under Kepler, I get:
ptolemy.kernel.util.IllegalActionException: Cannot find class: ptolemy.actor.lib.jai.JAIImageReader
Because:
Could not find 'ptolemy/actor/lib/jai/JAIImageReader.xml' or 'ptolemy/actor/lib/jai/JAIImageReader.moml' using base 'file:/C:/cxh/ptII/ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml': in file:/C:/cxh/ptII/ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml at line 41 and column 69
Caused by:
com.microstar.xml.XmlException: -- C:\cxh\ptII\ptolemy\actor\lib\jai\test\auto\ptolemy\actor\lib\jai\JAIImageReader.xml (The system cannot find the path specified)
-- XML file not found relative to classpath.
-- C:\cxh\src\kepler;ptolemy/actor/lib/jai/JAIImageReader.xml
ptolemy\actor\lib\jai\JAIImageReader.xml (The system cannot find the path specified)
in file:/C:/cxh/ptII/ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml at line 41 and column 69
at ptolemy.moml.MoMLParser._createEntity(MoMLParser.java:3422)
So, it appears that JAIImageReader is not part of the default Kepler configuration?
Are you running Kepler here or Vergil?
_Christopher
--------
Hi Chirstopher,
I am running Windows XP and jdk1.5.
Here are the JAI jars i have:
C:\jdk1.5.0_05\jre\lib\ext & C:\jre1.5.0_05\lib\ext
jai_codec.jar
jai_core.jar
mlib_wrapper.jar
C:\jdk1.5.0_05\jre\bin
mlib_jai.dll
checkmmx.exe
mlib_jai_mmx.dll
I have jai-1.1.2
From our discussion last time, i suspect that since JAI actors
work in general and I have the above 3 jars.. could it still be a
native JAI library problem? Maybe i am wrong.
The JAI test cases and all other JAI actors work for me under the
Kepler as well as stand alone applications(w/o kepler). However
JAIImageReader and the SeekableStream gives the codec
IOexceptions.
The test case that I run is the Ptolemy jai test workflow under
ptolemy/actor/lib/jai/test/auto. I have
tried with PNG and JPG formats..however i get same exception.
thanks,
nandita.
Christopher Brooks wrote:
>Hi Nandita,
>Do you have a test case for this?
>
>Also, what OS are you running?
>
>I suspect the problem is that the native JAI library is not being
>found?
>
>Our discussion from January can be found at
>http://www.mail-archive.com/ptolemy-hackers@bennett.eecs.berkeley.edu/msg0
0100.html
>
>_Christopher
>
>--------
>
> hi Christopher,
> Sorry i haven't visited this topic for a long time...
>
> I believe that the ptolemy JAIImageReader is causing some codec
> problem in reading certain images.I have JAI actors working in Kepler
> otherwise.
>
> I wrote another way of getting the Image and then passed the image ( a
s
> a JAIImageToken) on to Ptolemy JAI actors and got no codec related
> exceptions in reading/processing the image.
> I believe using the SeekableStream in JAIImageReader might generate
> similar factory error in some cases?? We can catch such codec exceptio
ns
> in the JAIImageReader and try a second way of reading the image?
> Here is another way of reading the image (which can be used in the cas
e
> that the normal loading file way fails)
> //_fileRoot indicates the filepath of image
> ParameterBlock pb = (new ParameterBlock()).add(_fileRoot);
> RenderedOp img = new RenderedOp("fileload", pb, null);
> output.broadcast(new JAIImageToken(img));
> Once I add the above, we can make Ptolemy JAI classes compile also fro
m
> the build-ptolemy.xml buildfile in Kepler and add the actors to Kepler
> library.
>
> thanks,
> nandita.
>
>
> Here is the exception:
> [java] Error: IOException occurs when search for propriate codecs
.
> [java] Occurs in: com.sun.media.jai.codec.ImageCodec
> [java] java.io.IOException: The handle is invalid
> [java] at java.io.RandomAccessFile.seek(Native Method)
> [java] at
> com.sun.media.jai.codec.FileCacheSeekableStream.readUntil(Fil
> eCacheSeekableStream.java:129)
> [java] at
> com.sun.media.jai.codec.FileCacheSeekableStream.read(FileCach
> eSeekableStream.java:266)
> [java] at
> com.sun.media.jai.codec.SeekableStream.readFully(SeekableStre
> am.java:327)
> [java] at
> com.sun.media.jai.codec.SeekableStream.readFully(SeekableStre
> am.java:306)
> [java] at
> com.sun.media.jai.codec.ImageCodec.getDecoderNames(ImageCodec
> .java:274)
> [java] at
> com.sun.media.jai.opimage.StreamRIF.create(StreamRIF.java:80)
>
> [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> [java] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
> sorImpl.java:39)
> [java] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
> hodAccessorImpl.java:25)
> [java] at java.lang.reflect.Method.invoke(Method.java:585)
> [java] at
> javax.media.jai.FactoryCache.invoke(FactoryCache.java:130)
> [java] at
> javax.media.jai.OperationRegistry.invokeFactory(OperationRegi
> stry.java:1682)
> [java] at
> javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(Thr
> eadSafeOperationRegistry.java:481)
> [java] at
> javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:
> 340)
> [java] at
> javax.media.jai.RenderedOp.createInstance(RenderedOp.java:830
> )
> [java] at
> javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> 8)
> [java] at
> javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> [java] at
> javax.media.jai.RenderedOp.createInstance(RenderedOp.java:810
> )
> [java] at
> javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> 8)
> [java] at
> javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> [java] at
> ptolemy.actor.lib.jai.JAIImageToken.asAWTImage(JAIImageToken.
> java:95)
> [java] at
> ptolemy.actor.lib.image.ImageTableau.display(ImageTableau.jav
> a:197)
> [java] at
> ptolemy.actor.lib.image.ImageTableau.append(ImageTableau.java
> :139)
> [java] at
> ptolemy.actor.gui.TokenEffigy.setTokens(TokenEffigy.java:226)
>
> [java] at
> ptolemy.actor.lib.image.ImageDisplay._display(ImageDisplay.ja
> va:243)
> [java] at
> ptolemy.actor.lib.image.ImageDisplay$2.run(ImageDisplay.java:
> 209)
> [java] at
> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
> 209)
> [java] at java.awt.EventQueue.dispatchEvent(EventQueue.java:4
61)
> [java] at
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
> spatchThread.java:242)
> [java] at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
> atchThread.java:163)
> [java] at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> ava:157)
> [java] at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> ava:149)
> [java] at
> java.awt.EventDispatchThread.run(EventDispatchThread.java:110
> )
> [java] Exception in thread "AWT-EventQueue-0"
> java.lang.RuntimeException: -
> Unable to render RenderedOp for this operation.
> [java] at
> javax.media.jai.RenderedOp.createInstance(RenderedOp.java:838
> )
> [java] at
> javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> 8)
> [java] at
> javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> [java] at
> javax.media.jai.RenderedOp.createInstance(RenderedOp.java:810
> )
> [java] at
> javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> 8)
> [java] at
> javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> [java] at
> ptolemy.actor.lib.jai.JAIImageToken.asAWTImage(JAIImageToken.
> java:95)
> [java] at
> ptolemy.actor.lib.image.ImageTableau.display(ImageTableau.jav
> a:197)
> [java] at
> ptolemy.actor.lib.image.ImageTableau.append(ImageTableau.java
> :139)
> [java] at
> ptolemy.actor.gui.TokenEffigy.setTokens(TokenEffigy.java:226)
>
> [java] at
> ptolemy.actor.lib.image.ImageDisplay._display(ImageDisplay.ja
> va:243)
> [java] at
> ptolemy.actor.lib.image.ImageDisplay$2.run(ImageDisplay.java:
> 209)
> [java] at
> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
> 209)
> [java] at java.awt.EventQueue.dispatchEvent(EventQueue.java:4
61)
> [java] at
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
> spatchThread.java:242)
> [java] at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
> atchThread.java:163)
> [java] at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> ava:157)
> [java] at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> ava:149)
> [java] at
> java.awt.EventDispatchThread.run(EventDispatchThread.java:110
> )
>
>
>
>--------
>
>
--------
More information about the Kepler-dev
mailing list