"interface" variable to "dvdplay" (Closes: #178, #210, and probably a
bunch of others).
* ./src/interface/interface.c: added a safety check to circumvent the bug,
allowing a smooth upgrade.
* ./include/vlc/vlc.h: changed the naming conventions for libvlc. Now
exported functions start with VLC_ instead of vlc_ to avoid conflicts.
* ./include/vlc/vlc.h: removed the vlc_object_t, vlc_list_t, vlc_error_t
and vlc_t types; they are now internal types only.
* ./include/vlc/vlc.h: merged the reentrant and non-reentrant libvlc
calls. In non-reentrant mode, we just use 0 as the first argument. In
reentrant mode, we use an object's ID. (see below)
Internal changes:
* ./src/libvlc.c, ./src/misc/objects.c: instead of manipulating vlc_object_t
pointers, we manipulate their i_object_id. When needed, an object is
retrieved using vlc_object_get (I hope the lookup isn't too expensive,
that's why I designed the pp_objects layout to allow log2(n) seeks).
* ./src/misc/objects.c: activated the per-object variable storage. Unused
yet, unless you want to try "getfoo" and "setfoo blablah" in vlc -I rc.
* ./include/vlc_objects.h: moved the vlc_object_t and vlc_list_t definitions
here.
Misc:
* ./src/vlc.c, ./mozilla/vlcshell.cpp: removed inclusion of config.h in
code portions not part of libvlc; it was just required for the
COPYRIGHT_MESSAGE string which is now available from VLC_Version().
* ./src/libvlc.c, ./include/vlc/vlc.h: created reentrant versions of the
libvlc API.
* ./src/vlc.c: vlc uses the non-reentrant libvlc functions.
* ./mozilla/vlcplugin.c: the mozilla plugin uses the reentrant functions.
* ./debian/*: created packages for libvlc0-dev.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
* Updated config.guess and config.sub from GNU's latest versions (bozo,
you may want to update them in vls as well).
* Added vlc.pot skeleton for translators.
* --enable-sdl and some others are now --with-sdl[=name] to supply an
optional library name ;
* deleted all unnecessary #include <sys/uio.h> ;
* /usr/include is now searched when looking for libraries and headers.
It seems to compile and run on BSD. Under Linux Sam's latest commit makes
vlc crash on startup, so I can't really tell, but hey it compiles.
intf_WarnMsgImm
.on active les messages de warning au lancement avec l'option --warning
.le i_level par d�fault est 12 (on ne montre pas les messages de niveau
inf�rieur � 12
J'esp�re que �a correspond � ce qui a �t� discut� dans videolan-devel.
Some news things:
. I am still going on modifiying the key event handling method to make it more flexible. I still have a few things to get what I'd like to
. added a keystrokes.h include which contains a generic name of all the VLC keys binding
. modified some of the core interface routines to allow the passing of an extra parameter with a keystroke (VLC_CHANNEL).
. next step: move all the interface dependent parts (such as the getKey function) to the plugins.
Hope this will run on your boxes...
. The interface part:
. created intf_AssignKey, intf_getKey and intf_AssignNormalKeys
these new function are a first abstraction of the the key handling system. It makes use of a new structure in the interface : p_keys.
. AssignNormalKeys is commonly used in all the interface plugins.
AssignKey is used to allow the SDL interface to react nicely.
. Now the plugin struct element psz_filename is filled (and freed
at the end of the program).
. the SDL plugin:
works but does only display a green screen for now. so don't use it !
. Please try and compile the client on your box with this version.
I've tried a few output plugin but not all.
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
- 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
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.
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)
. quelques #ifdef SYS_BSD �� et l�.
utilisation: c'est tout con, �a marche comme avant. pour le moment
il n'y a pas de v�rification des symboles mais �a viendra.
seule restriction, il faut �tre dans le r�pertoire vlc quand on lance
le client, parce que le chemin des plugins est relatif, mais �a aussi
�a va changer.
le Makefile devient pas tr�s beau, il faudra songer � passer � automake
. *3dfx* devient *glide*
. suppression de tabulations dans quelques fichiers
. suppression des 2 warnings dans sam_synchro
. video_* devient vout_* quand ce sont des m�thodes de vout
. tentative de correction de la d�tection de MMX pour BeOS
. nouvelle option vlc_vout_method (faute de mieux pour le moment)
. modification du Makefile pour supporter plusieurs VIDEO_*
dor�navant on peut compiler plusieurs output diff�rents dans le
client. la pr�f�rence se fait dans l'ordre x11, fb, ggi, glide...
si on le compile avec x11 et fb, par d�faut il se lancera en X.
pour le lancer en framebuffer :
./vlc vlc_vout_method=fb
(il faut que je proprifie un peu le choix de l'output, et que je
facilite l'ajout d'un nouveau vout_*)
D�sol� pour le flood. Les en-t�tes de fonctions ne font plus 81
caract�res, et il n'y a plus d'espaces inutiles, Tous les trailing
spaces ont disparu, j'ai essay� de v�rifier que �a ne p�tait rien,
mais j'ai pu oublier un truc con. J'accepte tous types de ch�timents
� base d'orties fra�ches.
D�sol� d'avoir aussi modifi� les fichiers de ceux qui formataient
bien proprement leurs en-t�tes � 80 et pas 79 sans emb�ter personne,
mais j'ai d� choisir entre les deux.
Dor�navant ce serait bien de formater les en-t�tes et les commentaires
justifi�s � droite � 79 colonnes, ou au pire � 80.
. 1343 moronic long lines destroyed
. 12893 trailing spaces eradicated
. 115 ugly macros fixed
. 959 innocent a_bit_long lines shortened
But hey, 40054 lines were OK !
Toutes les r�f�rences aux pthread que ce soit les thread, les mutex ou
les variables conditionnelles, ont �t� remplac�es par leur �quivalent
vlc_thread. Les vlc_thread sont une version tr�s simplifi�e des pthread et
fonctionnent exactement de la m�me fa�on. Ceci devrait grandement faciliter
le portage vers d'autres OS.
Polux