[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