|
|
|
|
/*****************************************************************************
|
|
|
|
|
* modules_inner.h : Macros used from within a module.
|
|
|
|
|
*****************************************************************************
|
|
|
|
|
* Copyright (C) 2001 VideoLAN
|
|
|
|
|
* $Id: modules_inner.h,v 1.38 2003/06/16 21:55:58 gbazin Exp $
|
|
|
|
|
*
|
|
|
|
|
* Authors: Samuel Hocevar <sam@zoy.org>
|
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************
|
* ALL: the first libvlc commit.
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.
25 years ago
|
|
|
* If we are not within a module, assume we're in the vlc core.
|
|
|
|
|
*****************************************************************************/
|
* ALL: the first libvlc commit.
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.
25 years ago
|
|
|
#if !defined( __PLUGIN__ ) && !defined( __BUILTIN__ )
|
|
|
|
|
# define MODULE_NAME main
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
|
* Add a few defines. You do not want to read this section. Really.
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
/* Explanation:
|
|
|
|
|
*
|
|
|
|
|
* if user has #defined MODULE_NAME foo, then we will need:
|
|
|
|
|
* #define MODULE_STRING "foo"
|
|
|
|
|
*
|
|
|
|
|
* and, if __BUILTIN__ is set, we will also need:
|
|
|
|
|
* #define MODULE_FUNC( zog ) module_foo_zog
|
|
|
|
|
*
|
|
|
|
|
* this can't easily be done with the C preprocessor, thus a few ugly hacks.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* I can't believe I need to do this to change � foo � to � "foo" � */
|
|
|
|
|
#define STRINGIFY( z ) UGLY_KLUDGE( z )
|
|
|
|
|
#define UGLY_KLUDGE( z ) #z
|
|
|
|
|
/* And I need to do _this_ to change � foo bar � to � module_foo_bar � ! */
|
|
|
|
|
#define CONCATENATE( y, z ) CRUDE_HACK( y, z )
|
|
|
|
|
#define CRUDE_HACK( y, z ) y##__##z
|
|
|
|
|
|
|
|
|
|
/* If the module is built-in, then we need to define foo_InitModule instead
|
|
|
|
|
* of InitModule. Same for Activate- and DeactivateModule. */
|
* ALL: the first libvlc commit.
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.
25 years ago
|
|
|
#if defined( __BUILTIN__ )
|
|
|
|
|
# define E_( function ) CONCATENATE( function, MODULE_NAME )
|
|
|
|
|
# define __VLC_SYMBOL( symbol ) CONCATENATE( symbol, MODULE_NAME )
|
|
|
|
|
# define DECLARE_SYMBOLS struct _u_n_u_s_e_d_
|
|
|
|
|
# define STORE_SYMBOLS struct _u_n_u_s_e_d_
|
* ALL: the first libvlc commit.
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.
25 years ago
|
|
|
#elif defined( __PLUGIN__ )
|
|
|
|
|
# define E_( function ) function
|
|
|
|
|
# define __VLC_SYMBOL( symbol ) CONCATENATE( symbol, MODULE_SYMBOL )
|
|
|
|
|
# define DECLARE_SYMBOLS module_symbols_t* p_symbols
|
|
|
|
|
# define STORE_SYMBOLS p_symbols = p_module->p_symbols
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined( __PLUGIN__ ) && ( defined( WIN32 ) || defined( UNDER_CE ) )
|
|
|
|
|
# define DLL_SYMBOL __declspec(dllexport)
|
|
|
|
|
# define CDECL_SYMBOL __cdecl
|
|
|
|
|
#else
|
|
|
|
|
# define DLL_SYMBOL
|
|
|
|
|
# define CDECL_SYMBOL
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined( __cplusplus )
|
|
|
|
|
# define EXTERN_SYMBOL extern "C"
|
|
|
|
|
#else
|
|
|
|
|
# define EXTERN_SYMBOL
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define MODULE_STRING STRINGIFY( MODULE_NAME )
|
|
|
|
|
|
Some heavy changes today:
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
25 years ago
|
|
|
/*
|
|
|
|
|
* InitModule: this function is called once and only once, when the module
|
|
|
|
|
* is looked at for the first time. We get the useful data from it, for
|
|
|
|
|
* instance the module name, its shortcuts, its capabilities... we also create
|
|
|
|
|
* a copy of its config because the module can be unloaded at any time.
|
Some heavy changes today:
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
25 years ago
|
|
|
*/
|
|
|
|
|
#define vlc_module_begin( ) \
|
|
|
|
|
DECLARE_SYMBOLS; \
|
|
|
|
|
EXTERN_SYMBOL DLL_SYMBOL int CDECL_SYMBOL \
|
|
|
|
|
__VLC_SYMBOL(vlc_entry) ( module_t *p_module ) \
|
Some heavy changes today:
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
25 years ago
|
|
|
{ \
|
|
|
|
|
int i_shortcut = 1, i_config = 0; \
|
|
|
|
|
module_config_t p_config[ 100 ]; \
|
|
|
|
|
STORE_SYMBOLS; \
|
|
|
|
|
p_module->b_submodule = VLC_FALSE; \
|
|
|
|
|
p_module->b_unloadable = VLC_TRUE; \
|
|
|
|
|
p_module->b_reentrant = VLC_TRUE; \
|
* ALL: the first libvlc commit.
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.
25 years ago
|
|
|
p_module->psz_object_name = MODULE_STRING; \
|
|
|
|
|
p_module->psz_longname = MODULE_STRING; \
|
|
|
|
|
p_module->pp_shortcuts[ 0 ] = MODULE_STRING; \
|
|
|
|
|
p_module->i_cpu = 0; \
|
|
|
|
|
p_module->psz_program = NULL; \
|
|
|
|
|
p_module->psz_capability = ""; \
|
|
|
|
|
p_module->i_score = 1; \
|
|
|
|
|
p_module->pf_activate = NULL; \
|
|
|
|
|
p_module->pf_deactivate = NULL; \
|
|
|
|
|
{ \
|
|
|
|
|
module_t *p_submodule = p_module /* the ; gets added */
|
Some heavy changes today:
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
25 years ago
|
|
|
|
|
|
|
|
#define vlc_module_end( ) \
|
|
|
|
|
p_submodule->pp_shortcuts[ i_shortcut ] = NULL; \
|
|
|
|
|
} \
|
|
|
|
|
{ \
|
|
|
|
|
static module_config_t tmp = { CONFIG_HINT_END }; \
|
|
|
|
|
p_config[ i_config ] = tmp; \
|
|
|
|
|
} \
|
* ALL: the first libvlc commit.
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.
25 years ago
|
|
|
config_Duplicate( p_module, p_config ); \
|
|
|
|
|
if( p_module->p_config == NULL ) \
|
|
|
|
|
{ \
|
|
|
|
|
return VLC_EGENERIC; \
|
|
|
|
|
} \
|
|
|
|
|
return VLC_SUCCESS && i_shortcut; \
|
|
|
|
|
} \
|
|
|
|
|
struct _u_n_u_s_e_d_ /* the ; gets added */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define add_submodule( ) \
|
|
|
|
|
p_submodule->pp_shortcuts[ i_shortcut ] = NULL; \
|
|
|
|
|
p_submodule = \
|
|
|
|
|
(module_t *)vlc_object_create( p_module, VLC_OBJECT_MODULE ); \
|
|
|
|
|
vlc_object_attach( p_submodule, p_module ); \
|
|
|
|
|
p_submodule->b_submodule = VLC_TRUE; \
|
|
|
|
|
/* Nuahahaha! Heritage! Polymorphism! Ugliness!! */ \
|
|
|
|
|
for( i_shortcut = 0; p_module->pp_shortcuts[ i_shortcut ]; i_shortcut++ ) \
|
|
|
|
|
{ \
|
|
|
|
|
p_submodule->pp_shortcuts[ i_shortcut ] = \
|
|
|
|
|
p_module->pp_shortcuts[ i_shortcut ]; \
|
|
|
|
|
} \
|
|
|
|
|
p_submodule->psz_object_name = p_module->psz_object_name; \
|
|
|
|
|
p_submodule->psz_longname = p_module->psz_longname; \
|
|
|
|
|
p_submodule->psz_program = p_module->psz_program; \
|
|
|
|
|
p_submodule->psz_capability = p_module->psz_capability; \
|
|
|
|
|
p_submodule->i_score = p_module->i_score; \
|
|
|
|
|
p_submodule->i_cpu = p_module->i_cpu; \
|
|
|
|
|
p_submodule->pf_activate = NULL; \
|
|
|
|
|
p_submodule->pf_deactivate = NULL
|
|
|
|
|
|
|
|
|
|
#define add_requirement( cap ) \
|
|
|
|
|
p_module->i_cpu |= CPU_CAPABILITY_##cap
|
|
|
|
|
|
|
|
|
|
#define add_shortcut( shortcut ) \
|
|
|
|
|
p_submodule->pp_shortcuts[ i_shortcut ] = shortcut; \
|
|
|
|
|
i_shortcut++
|
|
|
|
|
|
|
|
|
|
#define set_description( desc ) \
|
|
|
|
|
p_submodule->psz_longname = desc
|
|
|
|
|
|
|
|
|
|
#define set_capability( cap, score ) \
|
|
|
|
|
p_submodule->psz_capability = cap; \
|
|
|
|
|
p_submodule->i_score = score
|
|
|
|
|
|
|
|
|
|
#define set_program( program ) \
|
|
|
|
|
p_submodule->psz_program = program
|
|
|
|
|
|
|
|
|
|
#define set_callbacks( activate, deactivate ) \
|
|
|
|
|
p_submodule->pf_activate = activate; \
|
|
|
|
|
p_submodule->pf_deactivate = deactivate
|
Some heavy changes today:
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
25 years ago
|
|
|
|
|
|
|
|
#define linked_with_a_crap_library_which_uses_atexit( ) \
|
|
|
|
|
p_module->b_unloadable = VLC_FALSE
|
|
|
|
|
|