Bug 1253 : MovieMaker example program does not work on mac: 'quicktime' exceptionerror
Last modified: 2009-05-27 04:31




Status:
RESOLVED
Resolution:
INVALID -
Priority:
P2
Severity:
normal

 

Reporter:
HAL-1701
Assigned To:
fry

Attachment Type Created Size Actions

Description:   Opened: 2009-05-27 00:39
MovieMaker example program
(on the MovieMaker page:
"http://processing.org/reference/libraries/video/MovieMaker.html")
does not work on mac:

the main exception seems to say:

UnsatisfiedLinkError: quicktime.QTSession.Gestalt(I[I)S

the line of code that causes this is:

mm = new MovieMaker(this, width, height, "drawing.mov",
30, MovieMaker.H263, MovieMaker.HIGH);

my version number is 1.0.3
(i didn't find any "revision number" anywhere)

hardware/os: 2008 macbook, osx

here's the "red spew":

java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:997)
at quicktime.QTSession.<clinit>(QTSession.java:92)
at quicktime.util.QTUtils.<clinit>(QTUtils.java:32)
at processing.video.MovieMaker.<clinit>(MovieMaker.java:110)
at sketch_may27a.setup(sketch_may27a.java:29)
at processing.core.PApplet.handleDraw(PApplet.java:1400)
at processing.core.PApplet.run(PApplet.java:1328)
at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.UnsatisfiedLinkError:
/System/Library/Java/Extensions/libQTJNative.jnilib:
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1715)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at quicktime.QTSession$1.run(QTSession.java:94)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Exception in thread "Animation Thread" java.lang.UnsatisfiedLinkError:
quicktime.QTSession.Gestalt(I[I)S
at quicktime.QTSession.Gestalt(Native Method)
at quicktime.QTSession.gestalt(QTSession.java:933)
at quicktime.QTSession.open(QTSession.java:639)
at quicktime.QTSession.open(QTSession.java:606)
at processing.video.MovieMaker.<init>(MovieMaker.java:199)
at processing.video.MovieMaker.<init>(MovieMaker.java:181)
at sketch_may27a.setup(sketch_may27a.java:29)
at processing.core.PApplet.handleDraw(PApplet.java:1400)
at processing.core.PApplet.run(PApplet.java:1328)
at java.lang.Thread.run(Thread.java:637)
Additional Comment #1 From HAL-1701 2009-05-27 01:05
okay, i had set Java Preferences on the mac to look for Java 6 SE before
looking for J2SE 5,
ie, it looked for version 1.6 before version 1.5.

so i changed it back to the (default on the mac) J2SE 5 / 1.5 in the
Preferences list of the order in which it tries the (four) versions of Java
on the mac.

well, the example code for MovieMaker STILL doesn't work, BUT with the
above change in Java version, a drawing-sketch window DID OPEN and it drew
circles with the mouse.

BUT no "drawing.mov" file was created,
AND the following error message was being generated repeatedly (a zillion
times):

red spew follows in 3210:

quicktime.std.StdQTException[QTJava:7.6.0g],-8960=codecErr,QT.vers:7608000
at quicktime.std.StdQTException.checkError(StdQTException.java:38)
at quicktime.std.image.CSequence.compressFrame(CSequence.java:326)
at processing.video.MovieMaker.compressAndAdd(MovieMaker.java:302)
at processing.video.MovieMaker.addFrame(MovieMaker.java:294)
at processing.video.MovieMaker.addFrame(MovieMaker.java:275)
at sketch_may27a.draw(sketch_may27a.java:35)
at processing.core.PApplet.handleDraw(PApplet.java:1423)
at processing.core.PApplet.run(PApplet.java:1328)
at java.lang.Thread.run(Thread.java:613)
Additional Comment #2 From HAL-1701 2009-05-27 01:15
okay, i had changed the parameter "H263" to say "H264".... oops sorry...
and when i changed it back to "H263", the EXCEPTIONS STOPPED.
no errors... no 'red spew'.

so, it drew circles with the mouse no problem...

BUT:
no file "drawing.mov" is being produced, even though there is no error message.
i am pressing the space bar (a couple times) and then pressing STOP on the PDE.

and i am listing all the ".mov" files on my machine, and nothing named
"drawing.mov"
is showing up.
Additional Comment #3 From HAL-1701 2009-05-27 01:30
great, so i was using Spotlight to find the '.mov' files on my machine, and
it found lots of mov's
but none named "drawing.mov".

BUT i read the video forum post about a problem finding the "drawing.mov" file,
and they said it was in your "sketch folder". so i clicked "Show Sketch
Folder" in the PDE,
and THERE IT WAS.

now get this. i found the processing "DrawingMovie" example program you
provide,
and i ran that (it is slightly different from the MovieMaker example
program)...
and it also makes a "drawing.mov" file.

WELL, SPOTLIGHT INSTANTLY SAW THAT "drawing.mov" FILE THAT WAS MADE BY
"DrawingMovie" BUT STILL COULDN'T SEE THE "drawing.mov" THAT WAS ALREADY
EXISTING
MADE BY THE "MovieMaker" example program.

sigh.

so:

1. processing doesn't like Java 6
2. other than that, everything (except Spotlight !!) works fine.

that was a goosechase. sorry for putting you through that. ugh.

maybe i can erase this whole bug report??
Additional Comment #4 From fry 2009-05-27 04:31
QuickTime does not like Java 6. Apple has chosen not to update QuickTime
for Java any further, so it's not compatible. And for some reason some
codecs just don't work, in spite of their availability. We'll just close
this one.