Sam Hocevar [Tue, 15 Aug 2000 23:35:31 +0000 (23:35 +0000)]
* fixed a dumb bug in the Makefile that prevented inclusion of the
-march=pentium directive. thanks Meuuh, blame sam.
* fixed a warning in main.c.
* separate Debian packages.
* added request for ALSA support in the TODO list.
R�paration de la version BeOS. Le probl�me venait du swab32 de la nouvelle
bit stream, la macro pour la conversion de BIGENDIAN vers LITTLEENDIAN ne
fonctionnant (toujours) pas.
La version BeOS pose encore de gros probl�mes:
- des plantages al�atoires lorsqu'on utilise le son,
- des performances tr�s en dessous de celles d'anciennes version du vlc,
- une synchro son qui ne fonctionne pas correctement,
- au bout d'un certain temps d'utilisation, toutes les ressources syst�mes
sont consomm�es et le syst�me lui-m�me devient instable (merci d'�viter
les commentaires sur la stabilit� de BeOS)
Sam Hocevar [Tue, 15 Aug 2000 13:37:43 +0000 (13:37 +0000)]
. rajout� build-stamp et debian/tmp dans les .cvsignore
. de nouvelles id�es dans la TODO list :
Difficulty: Guru Urgency: Wishlist Support for RTP
Difficulty: Medium Urgency: Wishlist Draw a font / support color fonts
Difficulty: Medium Urgency: Important Layer 2 mono support
Difficulty: Hard Urgency: Wishlist MP3 support
Difficulty: Hard Urgency: Normal Support for unencapsulated streams
Difficulty: Guru Urgency: Wishlist Ogg/Vorbis audio decoder support
Difficulty: Hard Urgency: Normal Xv video output support
Difficulty: Medium Urgency: Normal SDL video output support
Sam Hocevar [Tue, 8 Aug 2000 22:51:04 +0000 (22:51 +0000)]
. vir� les aliases � xvlc �, � ggivlc � etc. qui faisaient un peu
piti�, pour ne laisser que � vlc �, � gvlc � (gnome) et � fbvlc �
(framebuffer) ; les autres restent bien entendu accessibles avec
par exemple � vlc --vout ggi �.
. IMPORTANT - nouvelle option --synchro pour forcer un type de
synchro. Pour le moment les options possibles sont :
--synchro I /* n'affiche que les I */
--synchro IP /* affiche les I et toutes les P */
--synchro IP+ /* affiche les I, les P, et la moiti� des B */
--synchro IPB /* affiche toutes les images */
Toute autre valeur de --synchro sera ignor�e et c'est l'algo
par d�faut bas� sur la consommation de processeur qui sera
utilis�. Notez que si vous en demandez trop au vlc, il va
bien entendu planter, ou tout du moins remplir sa fifo comme
un gros cochon. On n'y peut pas grand chose, c'est la vie.
Sam Hocevar [Mon, 7 Aug 2000 22:18:24 +0000 (22:18 +0000)]
* vlc.init becomes ~/.vlcrc
* removed float operations in the video decoder, and all emms asm functions
* borrowed linuxvideo's MMX motion compensation
* fixed an undefined symbol in the MMX YUV plugin
Sam Hocevar [Wed, 19 Jul 2000 00:03:25 +0000 (00:03 +0000)]
. nouveau bitstream fait par Meuuh (qui est mortel) et qui nous
fait gagner plus de 0.8% en vitesse, ce qui peut para�tre peu, mais
en fait au bout de 35 fois on aura d�pass� 30% de gains.
Sam Hocevar [Tue, 4 Jul 2000 02:37:21 +0000 (02:37 +0000)]
Bon, puisque �a semble commiter sous BeOS, je commite.
Voil� le changelog appoximatif :
. fichier INSTALL plus clair
. vir� quelques warnings
. *PATH sont maintenant d�finis dans config.h
. quelques fautes d'orthographe
. l'option --enable-ppro n'est pas mise par d�faut car elle ne fonctionne
pas sur un K6-2
. nouvelle API des plugins
. le client framebuffer ne d�truit plus la console quand on quitte
. r�paration de la YUV 8 bits
. mise des YUV en plugins
. transfo YUV 32bits MMX chour�e dans la libmpeg2
Sam Hocevar [Mon, 5 Jun 2000 23:58:59 +0000 (23:58 +0000)]
. bug dans le code des sous-titres (mauvais scaling en Y)
. le vlc ne meurt pas salement en mode framebuffer quand on change
de console (par contre, segfault en quittant, je ne sais pas encore
pourquoi)
. le make est � nouveau un peu plus verbose
Gaël Hendryckx [Mon, 5 Jun 2000 20:49:32 +0000 (20:49 +0000)]
Ajout cradement d'une yuv en mmx 4:2:0 en 16 bpp dans video_yuv.c. Pour
l'activer / desactiver, d�commentez le define MMX du debut du fichier.
Cette modif est exp�rimentale vue qu'elle empeche la correction gamma
dans le mode pr�-cit� et que c'est du boulot de salop. A voir si on laisse
ou pas d'apr�s les perfs. (impossibles � estimer de visu chez moi).
Sam Hocevar [Thu, 20 Apr 2000 00:54:31 +0000 (00:54 +0000)]
. changement dans les headers pour que �a compile sous Linux.
Polux, j'ai vir� <byteorder.h> pour le remplacer par <netinet/in.h> car
c'�tait comme �a dans tous les autres .c, tu peux v�rifier que �a
fonctionne toujours ?
Portage du client sous BeOS. Il manque encore l'audio mais �a marche.
En cadeau bonux un nouvel input_file qui permet de lire les vob. Il
faur rajouter la ligne suivante dans vlc.init:
spawn-input method=10 filename=braindead
Sam Hocevar [Fri, 14 Apr 2000 04:19:51 +0000 (04:19 +0000)]
9 avril:
- r�indentation de quelques bouts de code
- les plugins vont �tre cherch�s en priorit� dans . puis ./plugins
puis dans le r�pertoire habituel
- d�but de communication entre le thread gnome et l'input
- l'interface gnome ne segfaulte plus en sortant
- le menu "Exit" fonctionne
10 avril:
- fen�tre Gnome au lieu de fen�tre Gtk
*** ATTENTION *** l'interface Gnome n'est vraiment qu'un d�but, soyez
gentils de ne pas faire de bug report si un bouton ne fonctionne pas.
- popup "About"
11 avril:
- fen�tre playlist (rien dedans encore)
- masquage du pointeur souris
- popup menu dans la fen�tre vout
- hide/show des fen�tres playlist
- les boutons "Exit" fonctionnent quel que soit le menu
12 avril:
- d�but du cassage des channels
- d�but des menus g�n�r�s en runtime
13 avril:
- ajout du target "snapshot" dans le makefile
14 avril:
- d�codage de tous les sous-titres connus
- spu_decoder.c ne segfaulte plus quand on quitte
- rajout du flag b_active dans la structure audio_decoder
- le bouton pause fonctionne
- Correction du bug de la synchro.
Le probl�me provenait d'un d�calage d'une seconde qui avait �t� rajout�
dans le calcul de la date dans audio_output.c :
p_aout->date = -1000000 + mdate() + ( (((mtime_t)(l_bytes / 4)) * 1000000)
/ ((mtime_t)p_aout->l_rate) );
C'est le -1000000 qui faisait retarder le son d'exactement une seconde.
J'aimerais bien savoir pourquoi il a �t� rajout� car peut-�tre y-a-t-il
d'autres bugs similaires qui ne sont pas visibles pour l'instant.
- Nettoyage d'une partie du code de audio_decoder_thread.c
Il est vraiment tr�s dommage que les conventions de codage ne soient pas
respect�es, si il y en a ce n'est pas pour rien. De plus le m�lange
d'espaces et de tabulations rend le code tr�s peu lisible. Je le
rappelle, nous n'utilisons que des indentations de 4 espaces et toute
tabulation est proscrite. Il serait bien de changer le reste du code
pour qu'il respecte les conventions et reste ainsi facilement lisible
par tout le monde.
Version 2 de mon tutorial sur les DCT et DFT. Les choses sont un peu plus dans
l'ordre maintenant, et il y a pas mal d'explications qui ont ete rajoutees pour
expliquer comment implementer efficacement l'algo AAN.
Si un jour j'ai le courage, j'ecris une routine DCT32 qui torchera celle de
regis, na !
Pour etre parfait il faudrait rajouter une section sur les DCT en 2 dimensions,
mais bon...
Sam Hocevar [Thu, 23 Mar 2000 06:27:35 +0000 (06:27 +0000)]
. les sous-titres sont affich�s et effac�s � l'heure
. une petite optimisation de l'affichage
. attention, config.h.in a chang�, n'oubliez pas de refaire ./configure
Sam Hocevar [Tue, 21 Mar 2000 22:36:01 +0000 (22:36 +0000)]
NEWS:
. encore un peu de parsage de sous-titres
. affichage des sous-titres.
BUGS:
. �a segfaulte toujours au moment o� on quitte, mais c'est le probl�me
habituel, �a sera r�gl�.
. pour le moment ils sont en noir et blanc, parce qu'il faut aller
chercher cette putain de palette dans les .IFO du dvd et que pour
l'instant j'ai la flemme
. les sous-titres ne sont pas affich�s comme il faut si la largeur
de l'�cran n'est pas 720.
. dimensions par d�faut mises � 720x576 (format DVD) au lieu de 640x480
pour la raison �voqu�e ci-dessus. mais �a sera r�gl� bient�t.
. pas de gestion de transparence, coordonn�es, fade in/fade out
. pas de gestion de date : le sous-titre est affich� d�s qu'il est re�u
et n'est pas effac� tant qu'on en a pas re�u un nouveau.
Sam Hocevar [Mon, 20 Mar 2000 07:50:55 +0000 (07:50 +0000)]
. suppression d'une variable inutile que j'avais laiss�e trainer
au pr�c�dent commit.
. d�but du d�codeur de sous-titres. Pour le moment il ne fait que
parser le flux comme un cochon, c'est tout.
Sam Hocevar [Mon, 20 Mar 2000 04:29:00 +0000 (04:29 +0000)]
Bon finalement puisque tout le monde dort, je l'ai fait :)
. rajout de i_pes_real_size dans la structure p_pes_packet, qui vaut 0
par d�faut, et est initialis� � la taille du payload PES annonc�e dans
le header si celle-ci est pr�sente.
. � chaque nouveau paquet TS, si i_pes_real_size == i_pes_size on envoie
directement le PES au d�codeur sans attendre le d�but du PES suivant.
. cr�ation de input_ParsePES pour y mettre le code dupliqu� de
input_DemuxPES.
Ca fait 1 test de plus par paquet TS, donc n�gligeable. Par contre si
des gens ayant boss� sur l'input ont le temps de v�rifier que je n'ai pas
fait de connerie, �a peut �tre int�ressant :)
Un petit tutorial sur les DCT et DFT... enfin non pas sur leur representation
"physique" mais plutot sur les differentes methodes de calcul utilisables.
Ca n'est pas franchement indispensable mais disons que j'ai eu du mal a trouver
de la doc sur le sujet donc je me dis que ca peut pas faire de mal de
rassembler ce qu'on a...
* support du layer 1 mono et stereo
* support du layer 2 stereo (j'ai pas encore fait le mono)
* support des low bitrates proposes par le mpeg2 (non teste)
* passage des tests de compliance mpeg :)
* moins de macros qu'avant, mais je dois encore propriser un peu le code.
Sam Hocevar [Mon, 13 Mar 2000 21:32:31 +0000 (21:32 +0000)]
. gestion de la souris sous X (essentiellement le bouton du milieu
qui cache le pointeur, tr�s pratique quand on regarde un DVD)
. rajout de 3 fichiers d'installation pour le package Debian
. correction de "usefull" et "successfull" � une dizaine d'endroits dans
le code parce que �a commen�ait � m'horripiler
. erreur de syntaxe dans la page de man.
. un peu plus de choses dans l'interface gnome, mais rien ne marche
pour le moment.
Sam Hocevar [Mon, 13 Mar 2000 04:08:10 +0000 (04:08 +0000)]
. ajout de quoi faire des packages debian :
- fichiers de contr�le pour dpkg-buildpackage
- une ic�ne de merde - que les artistes la remplacent
- page de man
. les donn�es qui ne sont pas platform-dependant sont maintenant
dans le r�pertoire share ( et plus lib )
. le client va chercher les polices dans le r�pertoire courant
et dans /usr/share/videolan/vlc/
. le message pr�c�dent �tait l'ajout du r�pertoire share/ mais
les scripts CVS semblent avoir d�conn�
J'ai retire gnome du build par defaut afin que ca ne cree pas de probleme
chez ceux qui n'ont pas les includes appropries...
Je sais que cette solution n'est pas ideale mais peut on se mettre d'accord
pour ne construire par defaut que les outputs X et dummy pour la video, et
dsp et dummy pour l'audio ?
(a la rigueur si on dit que dans le cvs on ne construit que les dummy je suis
d'accord aussi)
ou alors ca sert peut etre a rien de se mettre d'accord et ca sera regle par
le ./configure bientot ?
Sam Hocevar [Sun, 12 Mar 2000 21:04:28 +0000 (21:04 +0000)]
. suppression d'un warning pour les machines n'ayant pas usleep()
. correction d'une boulette que j'ai faite dans netutils.c
. d�but de intf_gnome. vout_gnome est une copie de vout_x11 pour l'instant
Sam Hocevar [Fri, 10 Mar 2000 00:47:17 +0000 (00:47 +0000)]
. suppression de quelques #define SYS_* (mais pas encore tous)
. include/config.h devient include/config.h.in et config.h sera
g�n�r� par ./configure. Le but est d'�viter les options -DFOO de gcc
. suppression d'un 'Resources' qui trainait encore dans config.h
Sam Hocevar [Thu, 9 Mar 2000 12:30:15 +0000 (12:30 +0000)]
. la version et le codename sont d�finis uniquement dans configure.in
. plus de #ifdef SYS_* dans threads.h, on utilise defs.h
. re-test des scripts de tibob :)
Sam Hocevar [Thu, 9 Mar 2000 10:08:50 +0000 (10:08 +0000)]
. normalement on devrait se prendre 1 seul mail par commit gr�ce aux
top scripts de tibob.
. suppression de Makefile
. rajout de include/defs.h.in qui g�n�re include/defs.h
pour g�n�rer le Makefile et defs.h il faut lancer ./configure
pour ceux qui voudraient toucher � configure.in, "include/defs.h.in" est
g�n�r� par la commande autoheader, et "configure" est g�n�r� par autoconf
D�but du portage BeOS. Beaucoup de fuchiers ont �t� modifi� car il a fallu
r�organiser les headers pour que ce soient les headers les plus proches
du syst�me qui se retrouvent en premier (threads.h devrait toujours �tre
le premier des headers non syst�mes). J'ai du aussi rajouter un type
plugin_id_t et par la m�me occasion inclure plugins.h dans la plupart
des fichiers. Voici en vrac les modifs les plus importantes que j'ai op�r�:
o L�g�re r�organisation pour les raisons �voqu�es ci-dessus (certaines
macros comme MIN et MAX peuvent �tre d�j� d�finies par le syst�me et
interf�rer avec celles d�finies dans common.h ou autre)
o Dans intf_msg j'ai du remplacer les vasprintf par des vsprintf
dans le cas o� ARCH=BEOS.
o la commande hostname du Makefile n'�tait pas compatible et je
l'ai donc enlev�, en avons-nous besoin ? Auquel cas il suffit de
rajouter un ifeq.
o J'ai aussi remplac� les bzero et bcopy par memset et memmove.
o plugin.c, mtime.c et threads.h et quelques fichiers de l'input
ont �t� adapt�s � BeOS � grand coup de #ifdef SYS_*.
TODO:
o Ecrire intf_beos.cpp, vout_beos.cpp et aout_beos.cpp
Je suis sous linux et je viens de tester le client qui marche tr�s
bien, mais il est n�anmoins possible que j'ai introduit quelques
probl�mes de compilations pour certains modules, si c'est le cas
pr�venez moi.
Sam Hocevar [Sat, 4 Mar 2000 11:52:48 +0000 (11:52 +0000)]
- �a compile sous FreeBSD (mais �a ne tourne pas)
- les d�pendances sont cach�es dans .deps/ au lieu de deps/
- suppression d'encore quelques #include inutiles.
- la gestion des plugins est maintenant encapsul�e dans misc/plugin.c
un peu comme les threads, pour faciliter le portage.
- l�ger remaniement de l'output pour --help et --version
- les p_ts_packet sont cast�s en (void *) pour �viter un warning sous
certaines architectures.
- ajout de la GPL dans un fichier COPYING
- fichier README avec rien dedans pour le moment, � part la liste de
toutes les personnes ayant particip� au projet. J'en ai *forc�ment*
oubli� certains, alors si vous avez un nom, rajoutez-le. de m�me, s'il
y a un gros con que j'ai mis par erreur dans la liste et qui n'a jamais
rien fait pour le projet, n'h�sitez pas � le supprimer sournoisement.
- fichier AUTHORS avec la liste des gens ayant boss� sur le client. j'ai
mis toutes les personnes ayant fait au moins un commit, ainsi que Henri
parce que je sais qu'il bosse sur l'audio, et HPReg, Steve et Oli parce
qu'ils ont boss� dessus aussi. Par contre ici aussi j'ai fort probable-
ment oubli� des gens. Corrigez !
- r�pertoire debian/ qui servira � cr�er des packages
- rajout d'une entr�e pour faire `make install' (pas encore parfait)
- nom de code de la future release 0.2 : `Onatopp' :)
Sam Hocevar [Fri, 3 Mar 2000 07:03:34 +0000 (07:03 +0000)]
Encore un commit venu tout droit des abysses de l'enfer, d�sol� pour
le flood, c'est la derni�re fois.
. apr�s le demoronifier, le GPLifier: il y a les ent�tes de la GPL dans
chaque fichier ; votre mission, si vous l'acceptez, est de mettre votre
nom dans chaque fichier qui est votre oeuvre ou auquel vous avez
particip�, pour qu'on sache qui a fait quoi. Pas de fausse modestie,
c'est plus pour des raisons pratiques que pour la gloire.
. rajout de -lthreads pour que �a linke sous Hurd
. rajout de quelques #include pour que �a compile sous FreeBSD
(d'ailleurs �a compile mais �a ne linke pas, je ne sais pas comment
linker avec la libpthread sur la machine de Dae)
Sam Hocevar [Fri, 3 Mar 2000 00:59:56 +0000 (00:59 +0000)]
. portage des vlc_threads aux cthreads de Mach pour GNU/Hurd
. rajout de #ifdef SYS_LINUX autour du code concernant les interfaces
. suppression de quelques #include <sys/soundcard.h> qui trainaient encore
. option PPRO dans le Makefile (si vous avez des erreurs
'Illegal instruction', �a venait probablement de l�)
. rajout de quelques commentaires pour expliquer en quoi certains #include
sont n�cessaires, aux endroits o� je ne comprenais pas, et suppression
de #include qui semblaient inutiles.
Separation du decodeur ac3 et de la partie specifique a videolan
Les interfaces du deco ac3 ne sont pas encore bien propres et documentees
mais ca viendra dans un second temps. Les fichiers ac3 ne dependent plus
d'includes videolan. C'est deja une bonne premiere etape.
Au niveau du bitstream compresse, l'interface avec le decodeur ac3 ne se fait
plus par le fichier decoder_fifo.h. En effet, le decodeur ac3 a besoin de
connaitre la structure exact d'un bitstream_t, donc cette interface n'etait
pas la plus propre. La nouvelle interface se compose d'une fonction
ac3_byte_stream_next (ac3_byte_stream_t * p_byte_stream) que le decodeur
ac3 appelle lorsqu'il a besoin d'un nouveau buffer de donnees compressees.
ac3_byte_stream_t est une structure comprenant les champs
u8 * p_byte (pointeur sur le debut du buffer),
u8 * p_end (pointeur sur la fin du buffer),
void * info (utilisation libre pour implementer ac3_byte_stream_next)
L'implementation actuelle de ac3_byte_stream_next () dans ac3_decoder_thread.c
fait un peu double emploi avec misc/decoder_fifo.c mais je reglerai tout ca
plus tard.
vdec_motion_inner contient le code plus ou moins bourin qui calcule les pixels
(je pense que c'est la que la majorite du temps est ecoulee, et qu'il y aurait
eventuellement un avantage a rechercher des optimisations particulieres pour
ce fichier, genre debouclage de boucles ou quelque chose du genre)
Le code dans vdec_motion contient quand a lui des tests sur le type exact
de prediction a effectuer, des calculs de pointeurs en fonction des motion
vectors, et les appels a vdec_motion_inner.
La fonction MotionComponent de vdec_motion a ete modifiee pour appeler
directement la bonne fonction de vdec_motion_inner en fonction des parametres.
La encore en raison de la gestion d'inlines faite a la compilation, pour chaque
appel les parametres i_width, i_height et b_average sont deja connus et
donc l'appel de MotionComponent devrait s'etendre a un simple switch (i_select)
et un appel de la fonction correspondante dans vdec_motion_inner.
Le code dans vdec_motion presente toujours une apparence contestable mais
je n'ai pas modifie son fonctionnement (seulement la fonction MotionComponent).