The Removers' Animator

Animator est un nouveau player de fichiers multimdia. Nouveau, et cependant son 
dveloppement a commenc il y a un certain temps dj, et une sacr quantit de 
travail a t dpense pour en faire ce qu'il est.
Pour l'instant, il ne reconnat que les AVI (Video for Windows), les MOV (Apple 
Quicktime), les fichiers FLI et FLC (Autodesk Animator) et les WAV (fichiers 
WAVE d'origine Micro$otf).
Pour l'utiliser, trois mthodes s'offrent  vous :
-	Faire glisser sur son icone un fichier  jouer, ou un rpertoire  
parcourir.-	
-	Utiliser le Shell de Guillaume Tello qui est fourni avec Animator.
-	Installer Animator en le liant  l'extention AVI (et  d'autres si vous 
voulez) et double-cliquer sur ces fichiers depuis le bureau.
Les auteurs sont joignables par mail :
	Stabylo : Benjamin.Gandon@isia.cma.fr
	Seb : Sebastien.Briais@ens-lyon.fr

Sommaire
1.	Prsentation d'Animator
2.	Comment utiliser Animator ?
3.	L'interface utilisateur
4.	La ligne de commande
i.	Les arguments en gnral
ii.	Les Flags
iii.	Les piges
iv.	Les avantages
5.	Ecrivez vos modules pour Animator
6.	Partager les modules d'Animator entre plusieurs applications
7.	Les auteurs et les Remerciements

1. Prsentation d'Animator
Animator est ce que l'on appelle un player multimdia. Ca signifie qu'il est 
capable de rejouer des vidos  l'cran avec le son synchronis. Par extension, 
il peut bien sr lire des sons seuls et des vidos dpourvues de son.
Une des premires questions qui vient  l'esprit concerne bien entendu la 
vitesse d'Animator. Alors ? Est-ce qu'il est rapide ? Eh bien, je vais viter de 
me prononcer et je vous laisse faire quelques comparaisons. Si cependant vous 
trouvez une vido et une configuration dans laquelle Animator est plus lent 
qu'un autre, faites m'en part, a m'intresse. Non pas que a ne puisse pas 
arriver, mais parce que a m'aide  prendre conscience des points faibles de ce 
logiciel.
Quels sont les fichiers multimdia qu'Animator est capable de vous restituer ? 
en voici la liste.
	vidos AVI (restriction : pas de synchro s'il n'y a pas de son)
	vidos MOV (restriction : pas de son, pas de synchro et assez peu de 
compressions vido reconnues)
	vidos FLI et FLC (restriction : pas de support des fichiers FLH)
	sons WAV (restiction : pas de support de la compression MPEG, encore 
moins la troisime couche)
Vous voici donc avec un bonne petite liste de restrictions, mais sachez qu'elle 
n'est ici que pour vous donner une ide des nouveauts qui vous attendent dans 
les futures versions d'Animator ! Sachez galement qu'Animator est capable 
d'afficher des images fixes  l'cran, possibilit que nous exploiterons dans 
les versions futures.
Continuons ce tour d'horizon avec les diffrentes configurations Hardware que 
supporte Animator.
	Falcon 030 avec le Videl d'origine ou carte Nova 16 bits.
	TT 030 avec Carte Nova 16 bits (normalement les autres sont aussi 
reconnues)
	Afterburner 040, Nemesis, Centurbo, etc.
	Le switch RVB/VGA sur un moniteur multisynchro peut tre modifi entre 
deux vidos
Notez qu'il n'y a (pour l'instant) qu'avec le Videl qu'Animator se permettra de 
chercher la meilleure rsolution 16 bits pour restituer la vido. Dans le cas o 
la rsolution courante est dj 16 bits, Animator n'en changera pas. Si vous 
avez une carte Graphique, il vous faudra donc vous mettre au pralable dans un 
mode 16 bits avant de lancer Animator.
Je crois aussi qu'Animator peut rejouer tous les sons qu'il sait lire sur un 
STe. Cependant, je ne garantis rien de ce point de vue l, parce que je n'ai 
jamais test Animator sur un 68000. Jusqu'ici ce n'est pas vraiment la priorit 
(sauf si vous insistez, bien sr !).
Animator a t test avec succs sur les systmes d'exploitation suivants :
	TOS (4 et 3) avec ou sans NVDI
	Magic 5 et 6 uniquement avec NVDI (ncessit de raffraichir l'cran  la 
main, et pour l'instant VT52 se plaint que des vecteurs systme ont t modifi)
	Mint (Singletos seulement)
Je suis dsol de vous obliger  avoir NVDI si vous utilisez Magic, mais je n'ai 
pas eu le courage de contourner un affreux bug que j'ai trouv dans son pilote 
graphique d'origine. Tout rentre dans l'ordre avec celui de NVDI. J'aurais bien 
voulu en toucher deux mots aux auteurs, mais je doute qu'ils ne m'coutent. Si 
vous avez leur adresse mail, transmettez-l moi.
Pour finir, voici dans le dsordre une petite liste qui montre un peu les 
technologies auxquelles touche la programmation d'Animator. Comme quoi c'est 
bien sympa  faire, une bestiole comme a.
	Ngociation de contenu
	Librairies dynamiques (mais je vais srement me tourner  l'avenir vers 
les LDG)
	Programmation temps rl (je crois qu'on peut mme parler de temps rl 
dur)
	Architecture objet (si si ! Je m'inspire pas mal des objets quand je 
fais de l'assembleur !)
	Optimisation assembleur (a, on pouvait s'y attendre)
	Automates finis
	Traitement du signal (rchantillonnage)
	Lecture des documentation en anglais :)

2. Comment utiliser Animator ?
Animator utilise une ligne de commande. Celle-ci lui fournit vos options de 
lecture des animations. Je vous donne donc ici quelques conseils pour aller au 
plus vite sans se fatiguer.
Pour profiter rapidement des options, je vous conseille d'installer 
l'application Animator  l'aide du Bureau du GEM comme suit.
Slectionnez Animator, Choisissez 'Installer une application' dans le menu 
'Options' et remplissez les champs comme suit :
-	Application : ANIMATOR.TTP
-	Paramtres : +1s-h (mettez un espace aprs le -h !)
-	Type de fichiers : AVI
N'oubliez pas de mettre un espace aprs le -h. Ne touchez pas aux autres menus 
pop-up, cliquez sur [INSTALLE] et le tour est jou.

Si vous utilisez un autre systme que le Tos d'origine, vous n'avez qu' 
installer l'application Animator, de lui adjoindre les paramtres '+1s-h ' (sans 
oublier l'espace) et de le lier  l'extension AVI. Vous pourrez alors voir les 
fichiers AVI en les ouvrant depuis le Bureau.
Sous Jinnee, par exemple, allez dans le menu 'Applications', cliquez sur 
[Nouveau] slectionnez ANIMATOR.TTP avec le slecteur de fichier apparu, entrez 
la ligne de commande '+1s-h %$p'avec transmission des paramtres en Drag&Drop, 
ajoutez les types de fichiers'*.AVI,*.MOV,*.FLI,*.FLC'et cliquez sur OK.

Si vous voulez visualiser toutes les vidos d'un rpertoire, tirez ce dernier 
sur l'icne d'Animator. Le contenu de ce rpertoire est alors parcouru 
rcursivement. Si vous ne volez pas explorer les sous rpertoires, il faut 
mettre l'option '-R'.
Vous pouvez aussi utiliser les mta caractre '?' et '*'comme par exemple : 
'+1s-h *.avi'.
3. L'interface utilisateur
Justement, celle-ci est pour l'instant rduite  sa plus simple expression. 
Seule la souris est vraiment utilise. De manire gnrale, la bouton gauche de 
la souris permet de passer  la suite, tandis que le bouton droit permet de 
quitter Animator.
Avant de relire une vido, si vous avez demand  attendre une touche (avec 
'+h'), vous pouvez quitter directement comme indiqu avec [Esc]. Pour lancer la 
vido, l'appui d'une touche ou du bouton gauche de la souris suffit.
Lorsqu'Animator rejoue une vido, seule la souris vous sera utile.
	Le bouton de gauche vous permettra de passer  la vido suivante ou 
d'abandonner le prchargement du son. Animator tirera toutefois partie de tout 
ce qu'il aura russi  prtraiter. Ce comportement est trs pratique si le 
prchargement s'ternise un peu.
	Le bouton droit vous permet de quitter sans plus attendre.
	Si l'cran est trop petit pour afficher la vido, bouger la souris vous 
permettra de vous dplacer dans l'cran virtuel (uniquement avec le Videl du 
Falcon).

4. Le systme de ligne de commande
Pour exploiter les diffrents paramtrages d'Animator, une syntaxe de ligne de 
commande a t mise au point. Rassurez-vous, il est inutile de les apprendre par 
coeur : il suffit de les rentrer dans le boite de dialogue d'installation d'une 
application. Pour plus de dtails, reportez vous  la partie prcdente qui 
dcrit l'installation d'Animator.
L'essentiel de ce qui suit concerne donc la ligne de commande ses possibilits, 
pour vous permettre d'en apprhender les subtilits.

Les arguments en gnral
Tout d'abord, quelques rgles :
-	Les arguments sont spars par des espaces.
-	Tout argument ne commenant pas par '+' ou '-' est considr comme un 
fichier. C'est pas trs grave car Animator n'est (normalement) pas du genre  
planter sur un fichier qu'il ne comprend pas.
-	Dans les options, (toute partie commenant par un '+' ou un '-') les 
minuscules et les majuscules sont diffrencies.
-	Les wildcards '?' et '*' sont grs, mais  la manire du TOS (du moins 
si vous tes sous TOS), ce qui signifie que pour l'instant, l'expression 
'truc.???' quivaut  'truc.*' et que les expressions du genre 
'debut*milieu*fin.*' sont reconnues comme 'debut*.*' (ce sont des petits 
inconvnients lis  GEMDOS).
-	Les lettres d'options non reconnues sont ignores.
-	L'ordre d'apparition des lettres dans les options entre deux noms de 
fichiers n'a pas d'importance.
-	Vous pouvez mettre autant d'espaces que vous voulez entre les options 
:'+1 +s -R +t -h' est quivalent  '+1st-Rh'.

Les flags
La ligne de commande est parcourue jusqu' trouver un fichier qu'Animator arrive 
 ouvrir, et Animator affiche au lancement un rsum des options actives pour 
le premier fichier a jouer. S'il n'y a pas de nom de fichier valide, Animator 
vous le signale et affiche un message d'information.
La syntaxe des flgs est trs simple: un '+' active un flag, et un '-' le 
dsactive
	1 : joue les vidos qu'une seule fois (one time) et quitter  la fin 
('+1' par dfaut).
	e : affichage de tous les messages en anglais (english) ('+e' par 
dfaut).
	h : active les attentes de touches (hold) ('-h' par dfaut).
	l : active l'criture des messages (log) dans le fichier ANIMATOR.LOG. 
Les statistiques globales et fichiers par fichiers sont alors inscrits dans les 
logs. Si les logs ne sont pas actifs, seules les statistiques globales sont 
affiches  l'cran juste avant qu'Animator termine son excution ('-l' par 
dfaut).
	m : active la lecture brutale des animations, sans saut d'image (max 
speed). Ne l'utilisez que pour faire des tests de puissance brute. Attention 
toutefois, le son ne sera pas restitu s'il est entirement regroup  la fin du 
fichier ('-m' par dfaut).
	p : prcharge le son (preprocess sound) avant de lire la vido. Vous 
pouvez abandonner le prchargement  l'aide du bouton gauche de la souris. 
Animator tirera tout de mme avantage de ce qu'il aura eu le temps de prcharger 
('+p' par dfaut).
	q : essaye en priorit de restituer les sons en 16 bits (quality) ('+q' 
par dfaut).
	R : active le parcours rcursif (Recusive parse) des sous-rpertoires 
('+R' par dfaut).
	r : autorise la rduction de l'image utile du Videl (reduce). 
Rassurez-vous, Animator n'est pas sens utiliser cette bidouille s'il ne dtecte 
pas de Videl ou pas de Falcon. Cette option ne vous servira donc que si vous 
avez un Falcon ou si vous avez une carte graphique qu'Animator ne connat pas. 
Elle peut galement vous permettre de rsoudre d'ventuelles incompatibilits 
('+r' par dfaut).
	s : active la synchronisation avec saut d'images (s comme synchro) ('+s' 
par dfaut).
	t : chronomtre les vidos (timings). Les statistiques fichier par 
fichier ne peuvent tre affiches que dans ANIMATOR.LOG ('-t' par dfaut).
	v : autorise l'cran virtuel sur Falcon (virtual). Pour l'instant, 
Animator ne cr un cran virtuel qu'en prsence du Videl, donc sur Falcon. 
Cette option est l dans le cas o vous utilisez sur votre Falcon une carte 
graphique qu'Animator ne connat pas. Elle peut galement vous permettre de 
rsoudre d'ventuelles incompatibilits ('+v' par dfaut).

exemple : +1s-th
Active les options '1' et 's', dsactive les deux autres.

Les piges
J'aimerais vous donner ici quelques exemples dans lesquels vous risquez de ne 
pas obtenir ce que vous voulez.
+s no_sound.avi
Si la video ne contient pas de son, elle ne sera pas synchronise. Ni d'attente, 
ni de saut d'image. Ce manque sera combl dans les versions futures d'Animator.
-r
ralentit notablement la restitution des animations dont la hauteur est moindre 
que celle de l'cran (sur Falcon et avec le Videl uniquement).
+1ts-hl apollo.avi +h
Si vous quittez avec le bouton droit (QUIT), la fin de la ligne de commande 
n'est pas prise en compte : Animator n'attendra pas la frappe d'une touche. Si 
vous quittez avec le bouton gauche (NEXT pour la dernire vido), la suite de la 
ligne de commande est prise en compte et une touche est attendue lorsque les 
statistiques globales sont affiches.

Les avantages
Aprs vous avoir prsent les piges dans lesquels vous pourriez tomber, 
j'aimerais vous montrer que le systme est puissant, qu'il offre des 
possibilits insouponnes tout en ayant un comportement trs logique.
-1 *.avi
attend un clic gauche pour changer de fichier et attend un clic droit pour 
quitter.
-1 *.avi +1
attend un clic gauche pour changer de fichier et quitte une fois tous les 
fichiers jous. Un clic droit quitte.
+1 *.avi
joue une seule fois tous les fichiers AVI et quitte  la fin.
+1 *.avi -1
joue une seule fois tous les fichiers AVI et reprend au dbut une fois fini !
+1s *.avi -s *.avi -1
joue tous les fichiers avec la synchro, puis de mme, mais sans la synchro !
-h+t1 truc.avi -1t apollo.avi +ht
n'attend pas de touche au dbut, joue une fois truc.avi et le chronomtre, puis 
boucle sur apollo.avi sans le chronomtrer et sans crire dans le fichier log, 
et cris le chronomtre global dans le fichier log en attendant une touche  la 
fin. Ouf !
Voici donc les mystres des options de la ligne de commande d'Aniamtor lucids.
Rappelez vous que pour en profiter sans trop se fatiguer, je vous conseille 
d'installer l'application ANIMATOR  l'aide du Bureau du GEM, et de le lier  
l'extension AVI. Vous pourrez alors voir les fichiers AVI en les ouvrant depuis 
le Bureau.
5. Programmer des modules pour Animator
I vous est possible d'crire vos propres modules pour Animator. Il s'agit juste 
de programmes TOS standards qu'Animator charge dynamiquement lorsqu'il cherche 
un module qui gre une mthode de compression donne.
Les modules suivent juste quelques rgles spcifiques dcrites dans la 
documentation de modules. Rfrez  cette documentation pour plus de dtails. 
Mais gardez  l'esprit que mme si l'architecture actuelle de ces modules est 
efficace, elle est amene  changer  l'avenir. Je pense par exemple en venir  
utiliser le format LDG (Librairies Dynamiques GEM http://ldg.atari.org/).
Pour le moment, seuls deux des trois formats de modules prvus ont t dfini. 
Les modules AVC et AAC signifient respectivement Animator Video Codec et 
Animator Audio Codec. Codec signifie que ces modules devraient (au mieux) tre 
capable de dcoder et d'encoder des donnes dans un format donn. Mais la faon 
dont les modules encodent les donnes n'est pas encore dfinie. Les modules AFH 
(Aimator File Handler) qui doivent grer les diffrents formats de fichiers sont 
aussi prvus mais pas encore dfinis. C'est pour une future version.
6. Partager les modules d'Animator entre plusieurs applications
Par dfaut, le rpertoire des modules est situ  ct d'Animator. Cependant, 
son emplacement peut tre modifi par l'utilisateur de manire  ne pas avoir 
tous les modules en double ou en triple s'ils sont utiliss par plusieurs 
programmes en mme temps.
Pour crer un emplacement unique o se trouvent les modules d'Animator, il 
suffit de conserver le fichier MODPLACE au mme niveau que le rpertoire MODULES 
et d'ajouter le rpertoire o se situe MODPLACE dans la variable d'environnement 
PATH.
Exemple : PATH=C:\;D:\;E:\GCC;C:\ANIMATOR
On trouvera alors les fichiers
	C:\ANIMATOR\MOPLACE
	C:\ANIMATOR\MODULES\*.AVC,*.AAC

Comme le TOS ne permet pas de crer des variables d'environnement, il faut 
utiliser un programme qui propose cette possibilit comme GEMENV. Ce programme a 
certes tendance a produire deux bombes assez souvent quand on maltraite 
l'diteur d'environnement, mais pour le reste, il est trs fiable, et je le 
trouve sympathique, bien utile et bien suffisant pour mes besoins.
L'utilisation de GEMENV est simple : aprs avoir lu sa documentation, placez le 
fichier ROOT.ENV  la racine de votre disque de boot (ex : C:\ROOT.ENV) et 
GEMENV.PRG dans votre dossier AUTO. ditez C:\ROOT.ENV  l'aide de GEMENV.PRG et 
modifiez la ligne PATH en cliquant dessus. Ne prtez pas attention aux problmes 
d'affichage et ne touchez pas aux variables rserves ENV$ROOTSIZE et 
ENV$OPTIONS. Demandez ensuite la sauvegarde du fichier dans les options, quittez 
et redmarrez l'ordinateur.
Notez que le contenu du fichier MODPLACE est sans importance, et sa taille peut 
tre rduite  zro au besoin. Cela dit, veillez  ne distribuer avec Animator 
que le fichier original, et pas une version tronque, d'avance merci.
Pour finir, vous vous demandez sans doute pourquoi tre oblig de conserver le 
fichier MODPLACE  ct du rpertoire MODULES. La raison vient du fait que c'est 
la fonction systme Shell_Find() qui permet  Animator de localiser ses modules, 
et celle-ci ne sait trouver que des fichiers. Pour rappel, la recherche est 
d'abord effectue dans le rpertoire courant, puis dans le rpertoire de 
l'application (donn par Shel_Read()) et enfin dans les chemins indiqus dans la 
variable d'environnement PATH.

7. Les auteurs et les Remerciements
Les auteurs de ce logiciel s'appellent Benjamin Gandon (Stabylo, c'est moi) et 
Sbastien Briais (Seb). Nous programmons essentiellement en assembleur au sein 
d'un groupe, les Removers.
Les participations  la programmation d'Animator se rpartissent comme suit.
Stabylo :
Le noyau et les modules que Seb n'a pas programm
Seb :
Les modules de dcompression sonore et plus particulirement ceux qui utilisent 
le DSP

Je tiens  remercier les personnes suivantes pour leur aide :
-	Pascal Ricard (pour ses tests sous Magic et avec ScreenBlaster)
-	Guillaume Tello (pour ses tests sur TT et CDrom)


Benjamin Gandon (Stabylo/the Removers), le 20 Mars 2001
