Description:
------------
AVI player for PalmOS (This software will play standard Windows AVI files. A custom Palm format is NOT required).


Minimum requirements:
---------------------
PalmOS 3.5, 4 bit grayscale capable display

For SD/MMC card playback:
SD/MMC card slot (m500, m505, Sony Clie, m125) and a card with enought free space

For CF/Compact Flash card playback:
CF card slot (TRGPro, Handera 330) and a card with enought free space

For standard ram based (PDB-based) playback:
enought free space in the base memory (demo file size)

Hicolor capable Palm for hicolor playback (Palm m505, Sony Clie)
PalmOS 4.0 for hicolor playback (for 4bit grayscale/8bit color playback 3.5 is fine too)
About 70KB of free RAM


Motivation:
-----------
I wrote this AVI player because I did not like the other Palm video players. They all used  custom formats and did not support standard multimedia files. Another problem was the big animation file size and/or poor video quality.


Features:
---------
100% assembly code (short & fast)

100% PalmOS system friendly, no direct hardware access.

Optimized YUV->RGB hi-color conversion, with color smoothing. 

SD/MMC/CF support

Timer/key-frame based intelligent frame-skipping code to keep a constant video-frame rate.

Support for Windows standard AVI files.

Full 16-bit video support on hi-color capable units.

8-bit color playback on 8bit displays (IIIc, etc).

4-bit grayscale playback on other units.

Multi-Platform video converter included (Amiga, Linux, FreeBSD, OSF1, Windows).


About the supported codecs:
---------------------------
Currently the Radius CinePak (CVID) 16/24/32 bit codec is supported and other codec support is planned.


Installation/usage:
-------------------
Palm with SD/MMC/CF slot:
Just install the PalMooVId.prc, and one of the supplied demo AVI to your Palm/SD card and start PalMooVId. Please DO NOT rename the AVI file, the demo version supports only this file. If you have more than one cardslot (Sony Clie for example), then please install the AVI file in the first card.

Palm without SD/MMC/CF slot:
Just install the PalMooVId.prc and convert the supplied demo AVI to PDB format (using the converter) and put that PDB to your Palm. Thats all :)

After installation of the program, click on the PalMooVId icon and you will see the list of the installed files, and after selection you can play it tapping the Play button.


Uninstall:
---------------
Just delete the main file (Menu/App/Delete) and the converted AVI (PDB) files will be deleted also. For the SD card the AVI file in the /DCIM/ directory (Palm), /AutoCF/ directory (TRGPro), or in the /Palm/ directory (Clie).


Speed/video size:
-----------------
The playback speed is dependent on the compression. The supplied AVI file was encoded in good quality. When you use a lower resolution, the file will be smaller, and the playback will be faster too. (160x120 file playback can be up to 20-25 in hi-color!)

There are two supplied demo files, the file in the hiperf directory is for faster machines (33Mhz), and one in lowperf dir for slower machines.
(the difference is just the average Frame-per-Secundum rate: 8 vs 12.5FPS)

A 128 MB memory card can hold a 2 hour movie!


How to convert AVI files:
-------------------------
For the Palm you will need to convert a regular AVI file into a smaller AVI file with the 
correct codec. I recommend you use a maximum resolution of 160x120 (although smaller is ok too) and the video codec must be Radius Cinepak. (Note: only the color version of the Radius codec is supported)

For the conversion I recommend the Windows freeware program 'VirtualDub' located at http://www.virtualdub.org/. (Of course any other program which can save AVI files is  usable.)

Currently the PalMooVId does not support audio, so please do not put audio into the file (it just wastes RAM).

So, the suggested settings:
Video size: max. 160x120 (if the original AVI was bigger, use VirtuaDub's internal AVI 
resize filter)

Audio: none

Frame-rate: about 8-12fps (if the original video was 25-30fps, I recommend frame-rate 
decimation by 2 or 3)

Video Codec: Radius Cinepak Color, 60-80 kb/s data rate (try playing with the data rate, 
most files look good at lower rates also), key-frame rate: 7

After you process the AVI file, use the AVI2PDB converter, install the PDB file into your Palm, and enjoy the show ;) .

Note: Due to the limited memory of the Palm unit, there can not be more than 65535 frames in the AVI file (however, I think this is enough :) ).


Status:
-------
This is the public demo of my program, you can purchase the full version from different Palm sites. (www.palmgear.com for example)
The registration fee is $14.95, with free updates.


Limitations:
------------
This demo version can only play only one file from the base memory and one from the card. When you install more files, then you will just see the last one in the directory list.
And the demo version play just the first 300 frames from the AVI. (it is about a half minute at 10FPS)

In the full version you will see all AVI files in the file-list, and no frame-limit.


To do:
------
(most of the features will be present in the next demo/public release)

Faster playback (yes, it is possible with direct rendering - it is almost ready)

Inverted video option for 4-bit video playback (to correct for when the backlight is on)

Audio support

QuickTime (MOV) file support (up to QT2.x)

PalmOS-style GUI (seek, play/pause, etc)

Better 8 bit color playback

Streaming video support (AVI/QT streaming)

More codec support

JPEG image support

Videoconverter for MacOS


About the Author:
-------------
I have more than 10 years of 68000 CPU assembly programming experience. This
is my first program for PalmOS. I did various video related programs for
Amiga (intro/outro players for games, 'MooVId' AVI/MOV player, realtime MPEG1 
video encoder, and I wrote the multimedia subsystem (Action) of the AmigaOS 3.9). 

If you have any problems, suggestions, or bug reports then write to:
(registrations are welcome too :)

snail mail:         László Török 
                    (or my name is Laszlo Torok w/o spec. hungarian characters)
                    H-8900 Zalaegerszeg 
                    Cserfa 31.
                    Hungary

phone:              +36 30 2683734 (GSM, for SMS/Voice)

EMAIL:              torokl@alpha.dfmk.hu
WWW:                http://www.dfmk.hu/~torokl

iRC:                pH03N1x@iRC (mostly #amigahu channel)


About the development/developer tools
-------------------------------------
This program was developed on Amiga/PC using the following tools:
Asm-Pro (Amiga) assembler, for debugging/testing the main routines
Cygnus Editor 4.2 (Amiga) for editing the source code
Pila (Amiga/PC) assembler for compiling the .prc
PalmRI (PC) to put the color icon into the .prc
PilRC (PC) for the GUI
PalmEmulator 3.x (PC) for debugging
PDATransfer (Amiga) to put the PRC to Palm
GCC/VisualC for the Video2PDB converter
VirtuaDub (Windows) for converting AVI files
And of course PalmOS SDK 4.0

I used some code from my Amiga program 'MooVId' during development, but I also made a lot of changes. This is because MooVId uses a lot of MC68020+ instructions, which are not in the Dragonball CPU...


Machines used during testing:
-----------------------------
Palm M505 with 16-32-64 MB SD cards from 33-55 MHz (using fastCPU)
Palm M105 from 16-32 MHz 
PalmOS emulator 3.x with M505 ROM/HostFS.prc

History:
--------
V1.0
2001-Sept-24
First demo release

V1.1
2001-Sept-29
ADDED full AVI header parser, and some pre code for the timer-based playback
ADDED 4-bit grayscale support for non-hi-color units (m500/m125, Clie with 3.5.x PalmOS)
ADDED support for Sony Clie (the file path was wrong in the 1.0 version)

V1.2
2001-Oct-5
ADDED OS version check (3.5 req)
ADDED Playback code support from PDB files
FIXED some minor bugs

V1.3
2001-Oct-11
ADDED Faster AVI parser with timer/key-frame based frame-skipping code (to keep a constant frame rate)
ADDED 8 bit color render routines for IIIc (poor quality ATM)
FIXED bugs in the PDB handling code (database access)
ADDED AVI2PDB program for the following platforms: Amiga, Linux, FreeBSD, OSF1, Windows (NT, 9x, 2000, & XP)

V1.4
2001-Oct-19
ADDED GUI (all installed files are listed, and you can choose which one would like to play)
FIXED various minor AVI parser problems (INDEX structure related)
ADDED support for TRGPro, Handera CF card directory

