[kepler-dev] JAI actors
Christopher Brooks
cxh at eecs.berkeley.edu
Sun Apr 30 20:53:13 PDT 2006
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/msg00100.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 ( as
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 exceptions
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 case
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 from
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:461)
[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:461)
[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