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 |
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 > > |
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 >> >> > > |
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 >>> >>> >> >> |
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 >> >> > > |
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 >>>> >>>> >>> >>> > > |
Free forum by Nabble | Edit this page |