[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple2 QuickTime (commencing project)



In article <1cf_9408091637@genesplicer.org>,
Scott Alfter <Scott.Alfter@skunkworks.genesplicer.org> wrote:
> In article <52988@f10.n209.z1>, Andrew Kingdom <agk@bbs.ausom.oz.au> wrote:
> >My next project for the II is going to be a movie (probably
> >QuickTime) player.
> >The obvious limitations I'm going to
> >have to work around are:
> >Slow CPU, 
> 
> True, even with an accelerator.  I'd suggest that you handle any kind
> of compressed animation (QuickTime, MPEG, or whatever) in two passes.
> The first pass would decode the image and store the raw data to disk.
> The second pass would dump the uncompressed data from disk directly
> into the frame buffer.  With a RamFAST or Apple DMA SCSI card and a
> good hard drive, you should be able to get fairly good animation this
> way (one of the people who worked on the Apple DMA SCSI card put
> together a demo for the card that showed (in B&W) the Death Star
> tunnel chase scene from _Star_Wars_; this was said to be a fairly good
> demo, and I think it ran on an unaccelerated GS).

The demo used a special looped DMA mode supported by the HS SCSI card's
"data chaining" system.  It isn't easy to do this from an application,
but it is possible.  You would have to make direct calls to the SCSI
driver, and provide a complicated data structure describing the data
to be read from the drive and a loop arrangement.

It won't work properly unless the data is stored contiguously on the
drive, which is rather hard to guarantee, and it also requires knowing
the physical block numbers.

With this method, it is possible to get data transfer rates of about
960 KB per second on an Apple HS SCSI card and an unaccelerated IIgs
(not much else can happen at the same time - AppleTalk connections
would be lost if you kept it up for too long).

The demo was able to display 30 frames per second on the IIgs Super
Hi-res Screen (30 times 32K = 960K).

You could use the same method on a IIe to the standard Hi-res screen
(you can even get the SCSI card to unravel the vertical screen mapping
for you as it does the DMA).  It may be possible to achieve 30 frames
per second (30 times 8K = 240K, which is within the 500K maximum
supported by the card, but there will be extra delays for the screen
unravelling).

Doing direct DMA to the IIe double hi-res screen isn't possible (you
could do a DMA transfer to one bank, do a bank switch, then do a DMA
transfer to the other bank, but it would look pretty ugly).  It could
be done on the IIgs, but there doesn't seem to be much point when you
can use the super hi-res screen.


Just doing block I/O via normal GS/OS calls, I've managed to get
transfer rates in the region of 500 KB per second (may be limited by
the hard drive).  File I/O calls are somewaht slower.  I haven't tried
a large direct DMA transfer (yet).

The RAMFast may be able to produce a higher transfer rate with file
I/O calls, but I expect it would be about the same as the Apple HS card
for GS/OS block I/O calls and for direct transfers via the driver.
-- 
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand