About the QuickTime Handler

QuickTime Datatype Handler for BeOS

This is a movie datatype that plays Apple's very popular QuickTime format. The format supports a wide range of codecs, and has a advanced multi-track approach to it's files. For information on first time usage, please look at the FAQ later in this document.

For more information please check out http://quicktime.apple.com

This handler supports the following video codecs.

Video Codec Support Loading Support Saving
Cinepak Yes No
Apple Video Yes No
Apple Animation Yes No
Apple Uncompressed Yes Yes
Photo JPEG Yes No


This handler supports the following audio codecs.

Audio Codec Support Loading Support Saving
Raw Signed Yes No
Raw Unsigned Yes No


More loading and saving codecs are on their way soon, the highest priority being Motion JPEG, and MPEG I Frame with other types of audio, including IMA4 compressed.

Understanding the Preferences

You can access the preference dialogue directly by double clicking on /boot/home/config/add-ons/Datatypes/QTHandler or where ever you have set your datatypes to be located - see the FAQ for more information.

There you can configure all the input and saving options for the QTHandler. Programmers can also make this dialogue appear within their own applications, so you might often see this panel in other programs. It is worth remember that whenever the dialogue is closed your settings will be automatically saved for you, and become active immediately.

8-bit Dithering allows you to select what kind of dithering pattern you like the most, and is fastest on your machine when the QTHandler is outputting 8-bit data. When you select None, the QTHandler asks the BeOS to make a colour selection for it. Pixel Correction is a poor quality but fast dithering routine. Please note you will only see your selected dithering if the application you are running has asked for the image data predithered for it.

Sound is a switch to shut off the parsing of the audio data within the QuickTime movie when it is present. Turning Sound to Off will use less memory and start the movie playing quicker. It is worth noting that you might have to turn Sound On manually if you want to hear sound from your application.

Display movies as fast as possible is really a bit of a waste of time, but is fun to see how fast QuickTime movies will play through your system. When this switch is on, Sound is automatically disabled.

Movie Saving: Video Codec lets you pick which codec (compressor/decompressor) you wish to compress the source movie with.

Movie Saving: Depth let you set what colour depth the output movie will appear in.

Programmers Information

It is very important to tell the QTHandler how you want it to return data. By default, it will return data as B_RGB_32_BIT - so as you can imagine it is having to pass a lot of data around. If you only want to display a movie, it is best to ask for it in the depth of the current_workspace, which is most likely to be B_COLOR_8_BIT. However, if you are in a 32-bit workspace or your program wants to do some processing on the QuickTime output, then don't bother sending it a color_space ioExtension.

This datatype supports the standard /frame and /time ioExtensions as well as header and data.

Program History

0.70
Be Masters Release

0.81
DR9 AA version. First public beta.

0.85
Fixed memory leak in Cinepak player. Default output depth was set to 8-bit by accident, changed to 32-bit. Reorganized lots of source to make code more efficent, especially for saving. Will not crash if a headerless movie is played. Added save menu item to preference application. Fixed palette problems for Apple Animation 8-bit playing. Fixed alignment problem in 8-bit for RPZA. Added 24-bit colour saving to Apple Uncompressed. Fixed Apple Uncompressed 32-bit movies in 8-bit display. Fixed problems with colour depths over 40. Fixed alignment problems for 8-bit display in 16-bit and 24-bit Apple Animation movies. Ported to DR9 Preview and Datatypes 1.6.1. Indexed video streaming loop for simpler frame location.

0.90
Fixed pointer problems that might cause the handler to crash at startup. Faster and simpler identify method. Photo JPEG codec support. Fixed countless bugs. Rewrote the documentation in HTML.

Future Plans

Speed, Speed, Speed! Faster data reading using Async IO. More codecs. Use and set LOAD atoms.

Special Thanks To

William Adams, Peter Barrett, Hubert Figuiere, Mark Hall, Kevin Hendrickson, Jeremy Moskovish, Ron Theis, Frederic Tessier, Philippe Thomas and Jon Watte.

My sincere thanks to Ralf Smolarek for all the time, effort and money he spent producing vast (and I mean vast) amounts of test data for me to use.

License

There is no warranty with this program, and I have no liability for any consequential damage arising from the use of or inability to use this program. In no event shall I be liable for any damages whatsoever.

Distribution with any commerical software is strictly forbidden, either in full or demo form without a license agreement. Distribution is also forbidden on any software collections costing over 50USD.

By reading this file and using the handler you are agreeing to the terms listed here.

FAQ

Q: How do I install it?

A: You need to place it in your datatypes directory. As default this is /boot/home/config/add-ons/Datatypes, but you need also set it manually. See the Datatypes manual, which came with your install of the Datatypes package for more details.

Q: What is the QTHandler used for? Will it allow me to view QuickTime movies in any program?

A: The QTHandler allows programs which support media datatypes to load and save QuickTime movies in all of the formats listed above. You can use ShowApp which is included with the Datatypes package to view QuickTime movies.

Q: Will NetPositive use the QTHandler?

A: No, NetPositive has its own QuickTime viewer which can only display Cinepak movies and does not support audio and does not use media datatypes yet.

Q:You say you support sound. I want to hear some!

A: Sound is supported - however the application you are using to play the QuickTime movie needs to support this feature, and at present I know of no apps that do support sound.

Contact Details

Simon Clarke (S.J.Clarke@herts.ac.uk)

If you want to distribute this handler and a user help version of this document with your application, please email me.

If there are any files which this handler does not display correctly, please let me know, and I can try and fix the problem.