@database qt.guide @$VER: 1.4 @author "Marcus Comstedt" @node "Main" "Who's qt?" @next "Overview" qt 1.4 - A QuickTime player for fast Amigas - ©1996-1997 Marcus Comstedt Freely distributable @{i}"We're not bees and we're not cats or bugs or horses or things like that. What we are is clear and absolute. What we are, dear doctor, is CUTE!"@{ui} / The Warner sibs @{" Overview " link "Overview" 0} Why? When? How? @{" Installation " link "Installation" 0} How to install qt @{" Using qt " link "Usage" 0} Basic principles of operation @{" Options " link "Options" 0} Command line switches & ToolTypes @{" License  " link "License" 0} Legal stuff @{" Bug reports " link "Bugs" 0} Bugs? Who me? Naah... @{" The author " link "Author" 0} The man, the myth, the concept @{" History " link "History" 0} What has been @{" Future " link "Future" 0} What may yet become @endnode @node "Overview" "Overview" @next "Installation" @prev "Main" @{i}"Moral #4: Never ask what hot dogs are made of."@{ui} / Yakko @{b}qt@{ub} (pronounced @{i}cute@{ui}) is a QuickTime movie player for the Amiga. I wrote this program because I wanted something CPU-intense to run on my 68060, so it's main purpose is to eat computrons, the fact that it also plays movies rather nicely is just a side effect. :) The requirements for running qt are: · 68020 CPU or better · AmigaOS 3.0 or better · AGA and/or CyberGraphX · lots of memory Depending on the actual movie, and the replay mode selected, an 020 may very well be a tad under specced... QuickTime animation formats currently supported are: · RLE · Cinepak · Road Pizza · JPEG · SMC Audio codecs supported are: · MACE · IMA4 @endnode @node "Installation" "Installation" @next "Usage" @prev "Overview" Brain: @{i}"Pinky, are you pondering what I'm pondering?"@{ui} Pinky: @{i}"I think so, Brain, but where will we find a duck and a hose at this hour?"@{ui} Not much to say here really. Either run the installer-script, or just copy the binary that best matches your CPU to some convenient place. There are 5 binaries to select from: qt - Any CPU from 68020 and up qt.020fpu - Like above but with 68881/68882 FPU qt.030 - 68030 and up without FPU qt.030fpu - 68030 and up with FPU qt.040fpu - 68040 with FPU There is no principal difference between the 5 versions, they are just compiled with different compiler flags. @endnode @node "Usage" "Using qt" @next "Options" @prev "Installation" @{i}"Moral #2: If at first you don't succeed, blame your parents!"@{ui} / Yakko qt can now be used both from CLI and Workbench. CLI usage will follow next, and Workbench usage further down on the page. To play a movie from CLI, run the command @{b}qt@{ub} with the filename of the movie and any @{"options" link "Options" 0} that you feel appropriate. If no filename is specified, a standard ASL file requester will appear. The movie will now be loaded into RAM. If it is a big movie (>1MB) this may take a little while, and will eat lots of memory. However, loading the entire animation into RAM will ensure the smoothest possible playback, and that's what we all want, right? If the loading completes without errors, a screen with a (hopefully) appropriate resolution and color-depth will appear and the movie will begin playing. (See also the section on true color replay at the bottom of this page.) After the entire animation has been played (both video and and audio) the program will quit automatically, unless the LOOP option is given in which case it starts all over again. To manually terminate the program, press Ctrl-C in the CLI window, or either Ctrl-C or ESC in the replay window. If the @{"PUBSCREEN" link "Options" 155} option is used, the window showing the movie will have the normal window gadgets. Clicking on the close gadget will terminate the program as well. It is possible to resize the window using the size gadget at the bottom right of the window. Press 'N' in the window to return it to it's normal size. To play a movie from Workbench, you can use any of three methods: * Set the DefaultTool for a movie file to qt and double click on the movie's icon. * Click on the icon of a movie file, then shift-double click on qt's icon. * Double click on qt's icon, and select a movie from the file requester that appears. (When using this method, the movie file won't get checked for ToolTypes.) There's a number of @{"ToolTypes" link "Options" 182} that can be set for either qt itself or the movie (the movies ToolTypes take precedence) to affect the mode of replay. After qt has been launched, loading and replaying will proceed in the same manner as for CLI operation, described above. True color replay If the selected movie has true color video, several replay options exist. These options can be controlled by several command line switches and ToolTypes, which are listed in the @{"Options" link "Options" 0} section. The exact mode used will be determined by the following rules: * if the target screen is true color, the movie will be replayed in true color regardless of the switches. * otherwise, if the HAM8 switch is given, and the target screen is not a CyberGraphX screen, the HAM8 mode will be used. * otherwise, if the GRAY switch is given, the movie will be replayed in 256 grays. * otherwise, if the DITHER switch is given, the movie will be dithered to an 8×8×4 color cube. * otherwise, the 8×8×4 color cube will be used without dithering. @endnode @node "Options" "Options" @next "License" @prev "Usage" @{i}"That's a finger. You have five of them on each hand. Unless you're in a circus. Then it's negotiable."@{ui} / Yakko CLI Options: FILE,EVERY/K/N,GRAY/S,HAM8/S,DITHER/S,CYBERGFX/T, MODEID/K,WCP=WriteChunkyPixels/T,NOSOUND/S,NOWAIT/S, LOOP/S,VERBOSE/S,PUBSCREEN/K,WCENTER/S,AHI/T,FILTER/T, SOUNONLY/S FILE The filename of the animation to play. If none is given, a file requester will be presented. EVERY/K/N A numeric argument limiting the programs desire to skip displaying frames in order to be able to keep up with the intended replay rate (and thus the soundtrack, if any). For example, EVERY=3 will make sure that no more than two subsequent frames are skipped at a time, mening that at least every 3:rd frame will be displayed. EVERY=1 will cause all frames to be displayed no matter what. GRAY/S A switch causing true color animations to be replayed in 256 grays if the hardware does not support 24bit screens. The default is to use a 8×8×4 color cube. HAM8/S A switch causing true color animations to be replayed in HAM8 on AGA machines. The conversion from true color to HAM8 is done "on the fly", so the CPU load will increase dramatically in this mode. 68060 recommended. DITHER/S A switch adding a Floyd-Steinberg dithering step to the color cube replay mode. Even slower than the HAM8 mode. CYBERGFX/T A toggle to indicate whether you want the program to select a CyberGraphX screenmode or not. The default is to use CyberGraphX screenmodes if cybergraphics.library is present, and AGA screenmodes if it is not. So normally there is no need to specify this switch. MODEID/K A screenmode that you want to use. You can either specify a numeric mode ID (prefix with "0x" for hexadecimal), or an AmigaDOS pattern that should match the name of the mode. If several modes match, a screenmode requester will be displayed. The selected mode may be for an AGA screen or a CyberGraphX screen, regardless of the CYBERGFX switch. WCP=WriteChunkyPixels/T A toggle to indicate whether the program should use its own chunky to planar code, or use the system routines. A value of "on" will cause graphics.library/WriteChunkyPixels() to be used (AmigaOS3.1+ required), and a value of "off" means that the builtin routine should be used. The default is to use WriteChunkyPixels() only if there is chunky to planar hardware present in the system. (This switch has no effect for CyberGraphX screens, the appropriate CyberGraphX calls will always be used.) NOSOUND/S A switch turning off sound replay. It does not affect the timing of video playback in any other way than that it reduces the load on the CPU. NOWAIT/S Ignore timing information for video playback and display all frames as quickly as possible. No frames will be skipped, and no waiting will be done. See also EVERY. LOOP/S Specify this switch to play the animation over and over and over again... (Press Ctrl-C in the CLI window to abort.) VERBOSE/S Selecting this option will present information and statistics on stdout. The following items will be displayed: Information on type, name, resolution and bit depth for all loaded codecs. Selected screenmode - the name of the screenmode selected and the dimensions of the opened screen. Total number of frames - the number of frames in the file. Expected duration - the number of seconds during which the animation is supposed to play. Nominal framerate - an average framerate calculated from the above two figures. Total replay time - the actual time during which the animation is played, including loops. Total idle time - the amount of time that the program has spent just waiting for the right time to display the next frame. Total framerate - the average rate at which the program has actually advanced the frames. Visual framerate - as above, but not counting frames that were skipped. Virtual framerate - a theoretical benchmark indicating the framerate that could have been achieved if the NOWAIT switch had been given. Frames displayed - total numer of frames rendered to screen. Frames skipped - total number of frames that were skipped. Note: All fps figures are truncated to integer values. PUBSCREEN/K The name of a public screen to replay the movie on. This must be a true color CyberGraphX screen. The movie itself must also be true color for this option to work. WCENTER/S When selected, causes the window to be centered on the screen if replaying on a pubscreen. AHI/T Use ahi.device instead of audio.device to replay audio. Use only on machines which don't have a working audio.device (Draco?). I don't know how it sounds with a sound card, but it sure sounds crappy with the Paula driver... FILTER/T Turn on/off the builtin low pass filter during replay. SOUNDONLY/S Don't show any video, just play the audio track. Can't be combined with the NOSOUND switch. :) Workbench ToolTypes: All CLI options described above can also be used as ToolTypes, with the exception of FILE (as the file is specified more directly). Options of type /S are activated by their mere presence as a ToolType, the other options take values just like the CLI counterparts. ToolType examples: WRITECHUNKYPIXELS=ON EVERY=2 GRAY @endnode @node "License" "License" @next "Bugs" @prev "Options" @{i}"Ehhhh, but let's not be anal."@{ui} / Slappy @{b}qt@{ub} may be freely distributed in its unmodified archived form. The program may not however be sold for profit. The program is provided on an as-is basis, and there is no guarantee of functionality of any sort. The author can not be held responsible for any physical or mental damage incurred directly or indirectly from the use or misuse this program. Now, go ahead and have fun fun fun! :) @endnode @node "Bugs" "Bug reports" @next "Author" @prev "License" @{i}"The hotel of your mind has many vacancies"@{ui} / Yakko If you find something which you consider an obvious bug or misfeature you may send me a bug report and perhaps I will actually fix the problem for future releases. :) My address can be found in the @{"next section" link "Author" 0}. If you do decide to send a bug report, please make it as detailed as possible. Especially, if the problem is that @{b}qt@{ub} won't play a particular animation, a pointer to where that animation can be found would be mostly appreciated. Also, check with the following list of known bugs that it is not a bug of which I am already well aware. Known bugs: Apparently, the bug which sometimes causes qt to hang when aborted during play is still there. But it doesn't show up as often now anyway... :/ @endnode @node "Author" "The author" @next "History" @prev "Bugs" @{i}"Woah! Dumber than advertised..."@{ui} / Dot Here is my address and such: Marcus Comstedt Alsättersgatan 11A:21 S-584 35 Linköping SWEDEN E-mail: marcus@lysator.liu.se WWW: http://www.lysator.liu.se/~marcus/ Feel free to drop a line if you have comments or suggestions. See also the section on @{"Bug reports" link "Bugs" 0}. @endnode @node "History" "History" @next "Future" @prev "Author" @{i}"Ehhhh, that snake doesn't have a leg to stand on. Hey! It's the dawn of time. What did you expect -- new jokes?"@{ui} / Slappy V1.0 1996-08-05 - First official release v1.1 1996-08-14 - Fixed a bug in the startup code of all FPU versions. - Added the VERBOSE switch - The window is now automatically centered on non-CyberGraphX screenmodes - The MODEID switch is now much more versatile - Cleanup is now executed correctly if loading is aborted with Ctrl-C - Code to reject files that are not quicktimes improved. - Removed some Enforcer hits when opening the screen v1.2 1996-11-18 - Fixed some more FPU bugs. - Replay in a window on a public screen is now possible with CyberGraphX. - Replay can be aborted with ESC/Ctrl-C/close gadget in the replay window, and not just from the CLI. - Now manages to recognize most nonstandard file layouts. - Added support for JPEG movies. Fast CPU required... - Fixed a bug that caused 16 bit sound to be replayed incorrectly. - Added some kludges to work around the bug in cybergraphics.library which caused the "no appropriate screenmode" problem. v1.3 1997-02-15 - Support for compressed audio added (both MACE and IMA). - SMC video support implemented. - Added a resize gadget to the public screen window. - Added a Floyd-Steinberg dithering option - qt now supports the Workbench interface, complete with ToolTypes. (And there was much rejoicing.) v1.4 1997-03-23 - Fixed a bug that produced incorrect video timing for some movies. - Implemented audio resampling for frequencies over 28kHz, so that replay will be the correct speed even when not using doublescan videomodes. - Added (limited) support for AHI. - Added a switch to turn on/off the audio LP filter. - Added a SOUNDONLY switch for people not wanting to be bothered by all this video nonsense... :) - Recompiled with SAS/C 6.57 - Included the "flatten" program. @endnode @node "Future" "Future" @prev "History" Pinky: @{i}"Where are you going, Brain?"@{ui} Brain: @{i}"Back to our cage, Pinky. We must plan for tomorrow night."@{ui} Pinky: @{i}"Why? What are we going to do tomorrow night?"@{ui} Brain: @{i}"Same thing we do every night, Pinky. Try to take over the world!"@{ui} Although I am pretty pleased with the program the way it is now, here are some improvements that I may decide to implement: · More video codecs And here are some suggestions from other people which might or might not get implemented. I'm just listing them here so that you don't have to suggest them too... :) · Replay directly from hard disk or CD-ROM · Providing a Datatype as well · Support for AVIs · Support for ECS @endnode