QuickTime_Writer

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

QuickTime_Writer

Jeff Hardin
Hi Brian,

If you're trying to use the codec "None", it will fail under OS X 10.3.9+ and QT 6.1+. Is this what you're trying? If so, I recommend using a JPEG compressor and Max quality or, aternatively, I wrote a little trap for this in my code. Ugly, but it works. Unfortunately, this is not macro executable from ImageJ, as the built-in code is.  See the following:

http://rsb.info.nih.gov/ij/plugins/qt-stack-writer.html

Good luck!

Cheers,

Jeff
******************
Jeff Hardin
Dept. of Zoology
1117 W. Johnson St.
Madison, WI 53706
voice 608-262-9634/fax 608-262-7319
email: [hidden email]


> Date:    Thu, 24 Jul 2008 21:09:02 -0500
> From:    Brian Willkie <[hidden email]>
> Subject: QuickTime_Writer question
>
> Hello,
>
> I'm trying to adapt some code from QuickTime_Writer. I get the
> following exception (plus several others):
>
> .java:372: cannot find symbol
> symbol  : variable codecMaxQuality
> location: class com.brianwillkie.goes.movie.BuildMovie
>                          codecMaxQuality, GOES.FRAME_RATE);
>
> I can't tell from the original code where this should be defined. I
> assume it should be in QTJava. I've included
> /System/Library/Java/Extensions/QTJava.zip in my classpath, but I
> still get the exceptions (Mac OS X 10.4.11). Any speculation as to
> what I'm doing wrong?
>
> Thanks,
> Brian
Reply | Threaded
Open this post in threaded view
|

Re: QuickTime_Writer

Brian Willkie-2
Hi Jeff,

Thanks for your reply.

I'm not trying to specify "None" for the codec (I didn't realize that  
was an option). I'm trying to use Sorenson 3.

There are a number of variables (see below) that I presume are defined  
in the QTJava.zip archive. Even though I've included it in my  
classpath, and presumably imported it in my code, the compiler  
complains that they're not defined:

symbol  : variable codecMaxQuality
symbol  : variable kMoviePlayer
symbol  : variable createMovieFileDeleteCurFile
symbol  : variable createMovieFileDontCreateResFile
symbol  : variable codecFlagUpdatePrevious
symbol  : variable mediaSampleNotSync
symbol  : variable movieInDataForkResID

 From my code:

import quicktime.*;
import quicktime.io.*;
import quicktime.qd.*;
import quicktime.std.*;
import quicktime.std.movies.*;
import quicktime.std.movies.media.*;
import quicktime.std.image.*;
import quicktime.util.*;


I even tried importing quicktime.QTConstants explicitly (under the  
assumption that the constants are defined there):
import quicktime.QTConstants;

Any suggestions are welcome.

Thanks,
Brian

Quoting Jeff Hardin <[hidden email]>:

> Hi Brian,
>
> If you're trying to use the codec "None", it will fail under OS X  
> 10.3.9+ and QT 6.1+. Is this what you're trying? If so, I recommend  
> using a JPEG compressor and Max quality or, aternatively, I wrote a  
> little trap for this in my code. Ugly, but it works. Unfortunately,  
> this is not macro executable from ImageJ, as the built-in code is.    
> See the following:
>
> http://rsb.info.nih.gov/ij/plugins/qt-stack-writer.html
>
> Good luck!
>
> Cheers,
>
> Jeff
> ******************
> Jeff Hardin
> Dept. of Zoology
> 1117 W. Johnson St.
> Madison, WI 53706
> voice 608-262-9634/fax 608-262-7319
> email: [hidden email]
>
>
>> Date:    Thu, 24 Jul 2008 21:09:02 -0500
>> From:    Brian Willkie <[hidden email]>
>> Subject: QuickTime_Writer question
>>
>> Hello,
>>
>> I'm trying to adapt some code from QuickTime_Writer. I get the
>> following exception (plus several others):
>>
>> .java:372: cannot find symbol
>> symbol  : variable codecMaxQuality
>> location: class com.brianwillkie.goes.movie.BuildMovie
>>                          codecMaxQuality, GOES.FRAME_RATE);
>>
>> I can't tell from the original code where this should be defined. I
>> assume it should be in QTJava. I've included
>> /System/Library/Java/Extensions/QTJava.zip in my classpath, but I
>> still get the exceptions (Mac OS X 10.4.11). Any speculation as to
>> what I'm doing wrong?
>>
>> Thanks,
>> Brian
>
>
Reply | Threaded
Open this post in threaded view
|

Re: QuickTime_Writer

Jeffrey B. Woodward
Brian,

I believe that at least codecMaxQuality is defined in
*quicktime.std.StdQTConstants*; thus, you either need to:

(a) Option 1
import quicktime.std.StdQTConstants;
Then reference it like: StdQTConstants.codecMaxQuality

(b) Option 2
Have your class *implement* quicktime.std.StdQTConstants, then you can
just reference it as codecMaxQuality without having to say
StdQTConstants.codecMaxQuality. For example, if you class is named Foo,
then you could do:

import quicktime.std.StdQTConstants;
public class Foo implements StdQTConstants {
    ...
}


Hope this gets you started. Not sure if all of your missing symbols are
in StdQTConstants (there are a few places in QTJava where constants are
defined).

-Woody


Brian Willkie wrote:

> Hi Jeff,
>
> Thanks for your reply.
>
> I'm not trying to specify "None" for the codec (I didn't realize that
> was an option). I'm trying to use Sorenson 3.
>
> There are a number of variables (see below) that I presume are defined
> in the QTJava.zip archive. Even though I've included it in my
> classpath, and presumably imported it in my code, the compiler
> complains that they're not defined:
>
> symbol  : variable codecMaxQuality
> symbol  : variable kMoviePlayer
> symbol  : variable createMovieFileDeleteCurFile
> symbol  : variable createMovieFileDontCreateResFile
> symbol  : variable codecFlagUpdatePrevious
> symbol  : variable mediaSampleNotSync
> symbol  : variable movieInDataForkResID
>
> From my code:
>
> import quicktime.*;
> import quicktime.io.*;
> import quicktime.qd.*;
> import quicktime.std.*;
> import quicktime.std.movies.*;
> import quicktime.std.movies.media.*;
> import quicktime.std.image.*;
> import quicktime.util.*;
>
>
> I even tried importing quicktime.QTConstants explicitly (under the
> assumption that the constants are defined there):
> import quicktime.QTConstants;
>
> Any suggestions are welcome.
>
> Thanks,
> Brian
>
> Quoting Jeff Hardin <[hidden email]>:
>
>> Hi Brian,
>>
>> If you're trying to use the codec "None", it will fail under OS X  
>> 10.3.9+ and QT 6.1+. Is this what you're trying? If so, I recommend  
>> using a JPEG compressor and Max quality or, aternatively, I wrote a  
>> little trap for this in my code. Ugly, but it works. Unfortunately,  
>> this is not macro executable from ImageJ, as the built-in code is.  
>> See the following:
>>
>> http://rsb.info.nih.gov/ij/plugins/qt-stack-writer.html
>>
>> Good luck!
>>
>> Cheers,
>>
>> Jeff
>> ******************
>> Jeff Hardin
>> Dept. of Zoology
>> 1117 W. Johnson St.
>> Madison, WI 53706
>> voice 608-262-9634/fax 608-262-7319
>> email: [hidden email]
>>
>>
>>> Date:    Thu, 24 Jul 2008 21:09:02 -0500
>>> From:    Brian Willkie <[hidden email]>
>>> Subject: QuickTime_Writer question
>>>
>>> Hello,
>>>
>>> I'm trying to adapt some code from QuickTime_Writer. I get the
>>> following exception (plus several others):
>>>
>>> .java:372: cannot find symbol
>>> symbol  : variable codecMaxQuality
>>> location: class com.brianwillkie.goes.movie.BuildMovie
>>>                          codecMaxQuality, GOES.FRAME_RATE);
>>>
>>> I can't tell from the original code where this should be defined. I
>>> assume it should be in QTJava. I've included
>>> /System/Library/Java/Extensions/QTJava.zip in my classpath, but I
>>> still get the exceptions (Mac OS X 10.4.11). Any speculation as to
>>> what I'm doing wrong?
>>>
>>> Thanks,
>>> Brian
>>
>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: QuickTime_Writer

Brian Willkie-2
Hi Woody,

Thanks for your suggestions. Option 2 solved it for me.

> (b) Option 2
> Have your class *implement* quicktime.std.StdQTConstants, then you can
> just reference it as codecMaxQuality without having to say
> StdQTConstants.codecMaxQuality.

This is new to me. I don't quite understand how it is sufficient to  
state that class Foo implements an interface without my actually  
implementing it... guess I have some reading to do.

Thanks to everyone.

Cheers,
Brian


Quoting "Jeffrey B. Woodward" <[hidden email]>:

> Brian,
>
> I believe that at least codecMaxQuality is defined in
> *quicktime.std.StdQTConstants*; thus, you either need to:
>
> (a) Option 1
> import quicktime.std.StdQTConstants;
> Then reference it like: StdQTConstants.codecMaxQuality
>
> (b) Option 2
> Have your class *implement* quicktime.std.StdQTConstants, then you can
> just reference it as codecMaxQuality without having to say
> StdQTConstants.codecMaxQuality. For example, if you class is named Foo,
> then you could do:
>
> import quicktime.std.StdQTConstants;
> public class Foo implements StdQTConstants {
>    ...
> }
>
>
> Hope this gets you started. Not sure if all of your missing symbols are
> in StdQTConstants (there are a few places in QTJava where constants are
> defined).
>
> -Woody
>
>
> Brian Willkie wrote:
>> Hi Jeff,
>>
>> Thanks for your reply.
>>
>> I'm not trying to specify "None" for the codec (I didn't realize  
>> that was an option). I'm trying to use Sorenson 3.
>>
>> There are a number of variables (see below) that I presume are  
>> defined in the QTJava.zip archive. Even though I've included it in  
>> my classpath, and presumably imported it in my code, the compiler  
>> complains that they're not defined:
>>
>> symbol  : variable codecMaxQuality
>> symbol  : variable kMoviePlayer
>> symbol  : variable createMovieFileDeleteCurFile
>> symbol  : variable createMovieFileDontCreateResFile
>> symbol  : variable codecFlagUpdatePrevious
>> symbol  : variable mediaSampleNotSync
>> symbol  : variable movieInDataForkResID
>>
>> From my code:
>>
>> import quicktime.*;
>> import quicktime.io.*;
>> import quicktime.qd.*;
>> import quicktime.std.*;
>> import quicktime.std.movies.*;
>> import quicktime.std.movies.media.*;
>> import quicktime.std.image.*;
>> import quicktime.util.*;
>>
>>
>> I even tried importing quicktime.QTConstants explicitly (under the  
>> assumption that the constants are defined there):
>> import quicktime.QTConstants;
>>
>> Any suggestions are welcome.
>>
>> Thanks,
>> Brian
>>
>> Quoting Jeff Hardin <[hidden email]>:
>>
>>> Hi Brian,
>>>
>>> If you're trying to use the codec "None", it will fail under OS X  
>>>  10.3.9+ and QT 6.1+. Is this what you're trying? If so, I  
>>> recommend  using a JPEG compressor and Max quality or,  
>>> aternatively, I wrote a  little trap for this in my code. Ugly,  
>>> but it works. Unfortunately,  this is not macro executable from  
>>> ImageJ, as the built-in code is.   See the following:
>>>
>>> http://rsb.info.nih.gov/ij/plugins/qt-stack-writer.html
>>>
>>> Good luck!
>>>
>>> Cheers,
>>>
>>> Jeff
>>> ******************
>>> Jeff Hardin
>>> Dept. of Zoology
>>> 1117 W. Johnson St.
>>> Madison, WI 53706
>>> voice 608-262-9634/fax 608-262-7319
>>> email: [hidden email]
>>>
>>>
>>>> Date:    Thu, 24 Jul 2008 21:09:02 -0500
>>>> From:    Brian Willkie <[hidden email]>
>>>> Subject: QuickTime_Writer question
>>>>
>>>> Hello,
>>>>
>>>> I'm trying to adapt some code from QuickTime_Writer. I get the
>>>> following exception (plus several others):
>>>>
>>>> .java:372: cannot find symbol
>>>> symbol  : variable codecMaxQuality
>>>> location: class com.brianwillkie.goes.movie.BuildMovie
>>>>                         codecMaxQuality, GOES.FRAME_RATE);
>>>>
>>>> I can't tell from the original code where this should be defined. I
>>>> assume it should be in QTJava. I've included
>>>> /System/Library/Java/Extensions/QTJava.zip in my classpath, but I
>>>> still get the exceptions (Mac OS X 10.4.11). Any speculation as to
>>>> what I'm doing wrong?
>>>>
>>>> Thanks,
>>>> Brian
>>>
>>>
>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: QuickTime_Writer

Burger Wilhelm
In reply to this post by Jeffrey B. Woodward
A third option is to use a static import statement (requires Java 1.5 or higher), i.e.
(c) Option 3:
import static quicktime.std.StdQTConstants.*;

Then reference constants as in Option 2.
 
---
Wilhelm

________________________________

Von: ImageJ Interest Group im Auftrag von Jeffrey B. Woodward
Gesendet: Fr 25.07.2008 21:12
An: [hidden email]
Betreff: Re: QuickTime_Writer



Brian,

I believe that at least codecMaxQuality is defined in
*quicktime.std.StdQTConstants*; thus, you either need to:

(a) Option 1
import quicktime.std.StdQTConstants;
Then reference it like: StdQTConstants.codecMaxQuality

(b) Option 2
Have your class *implement* quicktime.std.StdQTConstants, then you can
just reference it as codecMaxQuality without having to say
StdQTConstants.codecMaxQuality. For example, if you class is named Foo,
then you could do:

import quicktime.std.StdQTConstants;
public class Foo implements StdQTConstants {
    ...
}


Hope this gets you started. Not sure if all of your missing symbols are
in StdQTConstants (there are a few places in QTJava where constants are
defined).

-Woody


Brian Willkie wrote:

> Hi Jeff,
>
> Thanks for your reply.
>
> I'm not trying to specify "None" for the codec (I didn't realize that
> was an option). I'm trying to use Sorenson 3.
>
> There are a number of variables (see below) that I presume are defined
> in the QTJava.zip archive. Even though I've included it in my
> classpath, and presumably imported it in my code, the compiler
> complains that they're not defined:
>
> symbol  : variable codecMaxQuality
> symbol  : variable kMoviePlayer
> symbol  : variable createMovieFileDeleteCurFile
> symbol  : variable createMovieFileDontCreateResFile
> symbol  : variable codecFlagUpdatePrevious
> symbol  : variable mediaSampleNotSync
> symbol  : variable movieInDataForkResID
>
> From my code:
>
> import quicktime.*;
> import quicktime.io.*;
> import quicktime.qd.*;
> import quicktime.std.*;
> import quicktime.std.movies.*;
> import quicktime.std.movies.media.*;
> import quicktime.std.image.*;
> import quicktime.util.*;
>
>
> I even tried importing quicktime.QTConstants explicitly (under the
> assumption that the constants are defined there):
> import quicktime.QTConstants;
>
> Any suggestions are welcome.
>
> Thanks,
> Brian
>
> Quoting Jeff Hardin <[hidden email]>:
>
>> Hi Brian,
>>
>> If you're trying to use the codec "None", it will fail under OS X
>> 10.3.9+ and QT 6.1+. Is this what you're trying? If so, I recommend
>> using a JPEG compressor and Max quality or, aternatively, I wrote a
>> little trap for this in my code. Ugly, but it works. Unfortunately,
>> this is not macro executable from ImageJ, as the built-in code is.  
>> See the following:
>>
>> http://rsb.info.nih.gov/ij/plugins/qt-stack-writer.html
>>
>> Good luck!
>>
>> Cheers,
>>
>> Jeff
>> ******************
>> Jeff Hardin
>> Dept. of Zoology
>> 1117 W. Johnson St.
>> Madison, WI 53706
>> voice 608-262-9634/fax 608-262-7319
>> email: [hidden email]
>>
>>
>>> Date:    Thu, 24 Jul 2008 21:09:02 -0500
>>> From:    Brian Willkie <[hidden email]>
>>> Subject: QuickTime_Writer question
>>>
>>> Hello,
>>>
>>> I'm trying to adapt some code from QuickTime_Writer. I get the
>>> following exception (plus several others):
>>>
>>> .java:372: cannot find symbol
>>> symbol  : variable codecMaxQuality
>>> location: class com.brianwillkie.goes.movie.BuildMovie
>>>                          codecMaxQuality, GOES.FRAME_RATE);
>>>
>>> I can't tell from the original code where this should be defined. I
>>> assume it should be in QTJava. I've included
>>> /System/Library/Java/Extensions/QTJava.zip in my classpath, but I
>>> still get the exceptions (Mac OS X 10.4.11). Any speculation as to
>>> what I'm doing wrong?
>>>
>>> Thanks,
>>> Brian
>>
>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: QuickTime_Writer

Jeffrey B. Woodward
In reply to this post by Brian Willkie-2
Brian,

Options 2 works because that particular interface
(quicktime.std.StdQTConstants) only defines class level constants. Thus
by implementing it, you win those constants as part of your class, and
since the interface doesn't define any functions that need to be
implemented, you have nothing more to do beyond the "implements" clause.
As an aside, my coding style is to use the option 1 approach, and I
never do wildcard imports for the same reason, which is that when
reading the code months later, or reading someone else's code, it is
much less mysterious to figure out where things come from (others may
argue that the IDEs such as Eclipse can figure this out for you;
however, I am not persuaded by that argument in the least).

Best of luck with your project,

-Woody


Brian Willkie wrote:

> Hi Woody,
>
> Thanks for your suggestions. Option 2 solved it for me.
>
>> (b) Option 2
>> Have your class *implement* quicktime.std.StdQTConstants, then you can
>> just reference it as codecMaxQuality without having to say
>> StdQTConstants.codecMaxQuality.
>
> This is new to me. I don't quite understand how it is sufficient to
> state that class Foo implements an interface without my actually
> implementing it... guess I have some reading to do.
>
> Thanks to everyone.
>
> Cheers,
> Brian
>
>
> Quoting "Jeffrey B. Woodward" <[hidden email]>:
>
>> Brian,
>>
>> I believe that at least codecMaxQuality is defined in
>> *quicktime.std.StdQTConstants*; thus, you either need to:
>>
>> (a) Option 1
>> import quicktime.std.StdQTConstants;
>> Then reference it like: StdQTConstants.codecMaxQuality
>>
>> (b) Option 2
>> Have your class *implement* quicktime.std.StdQTConstants, then you can
>> just reference it as codecMaxQuality without having to say
>> StdQTConstants.codecMaxQuality. For example, if you class is named Foo,
>> then you could do:
>>
>> import quicktime.std.StdQTConstants;
>> public class Foo implements StdQTConstants {
>>    ...
>> }
>>
>>
>> Hope this gets you started. Not sure if all of your missing symbols are
>> in StdQTConstants (there are a few places in QTJava where constants are
>> defined).
>>
>> -Woody
>>
>>
>> Brian Willkie wrote:
>>> Hi Jeff,
>>>
>>> Thanks for your reply.
>>>
>>> I'm not trying to specify "None" for the codec (I didn't realize  
>>> that was an option). I'm trying to use Sorenson 3.
>>>
>>> There are a number of variables (see below) that I presume are  
>>> defined in the QTJava.zip archive. Even though I've included it in  
>>> my classpath, and presumably imported it in my code, the compiler  
>>> complains that they're not defined:
>>>
>>> symbol  : variable codecMaxQuality
>>> symbol  : variable kMoviePlayer
>>> symbol  : variable createMovieFileDeleteCurFile
>>> symbol  : variable createMovieFileDontCreateResFile
>>> symbol  : variable codecFlagUpdatePrevious
>>> symbol  : variable mediaSampleNotSync
>>> symbol  : variable movieInDataForkResID
>>>
>>> From my code:
>>>
>>> import quicktime.*;
>>> import quicktime.io.*;
>>> import quicktime.qd.*;
>>> import quicktime.std.*;
>>> import quicktime.std.movies.*;
>>> import quicktime.std.movies.media.*;
>>> import quicktime.std.image.*;
>>> import quicktime.util.*;
>>>
>>>
>>> I even tried importing quicktime.QTConstants explicitly (under the  
>>> assumption that the constants are defined there):
>>> import quicktime.QTConstants;
>>>
>>> Any suggestions are welcome.
>>>
>>> Thanks,
>>> Brian
>>>
>>> Quoting Jeff Hardin <[hidden email]>:
>>>
>>>> Hi Brian,
>>>>
>>>> If you're trying to use the codec "None", it will fail under OS X  
>>>>  10.3.9+ and QT 6.1+. Is this what you're trying? If so, I  
>>>> recommend  using a JPEG compressor and Max quality or,  
>>>> aternatively, I wrote a  little trap for this in my code. Ugly,  
>>>> but it works. Unfortunately,  this is not macro executable from  
>>>> ImageJ, as the built-in code is.   See the following:
>>>>
>>>> http://rsb.info.nih.gov/ij/plugins/qt-stack-writer.html
>>>>
>>>> Good luck!
>>>>
>>>> Cheers,
>>>>
>>>> Jeff
>>>> ******************
>>>> Jeff Hardin
>>>> Dept. of Zoology
>>>> 1117 W. Johnson St.
>>>> Madison, WI 53706
>>>> voice 608-262-9634/fax 608-262-7319
>>>> email: [hidden email]
>>>>
>>>>
>>>>> Date:    Thu, 24 Jul 2008 21:09:02 -0500
>>>>> From:    Brian Willkie <[hidden email]>
>>>>> Subject: QuickTime_Writer question
>>>>>
>>>>> Hello,
>>>>>
>>>>> I'm trying to adapt some code from QuickTime_Writer. I get the
>>>>> following exception (plus several others):
>>>>>
>>>>> .java:372: cannot find symbol
>>>>> symbol  : variable codecMaxQuality
>>>>> location: class com.brianwillkie.goes.movie.BuildMovie
>>>>>                         codecMaxQuality, GOES.FRAME_RATE);
>>>>>
>>>>> I can't tell from the original code where this should be defined. I
>>>>> assume it should be in QTJava. I've included
>>>>> /System/Library/Java/Extensions/QTJava.zip in my classpath, but I
>>>>> still get the exceptions (Mac OS X 10.4.11). Any speculation as to
>>>>> what I'm doing wrong?
>>>>>
>>>>> Thanks,
>>>>> Brian
>>>>
>>>>
>>>
>>>
>
>