Commit 575c056a authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Complete rewrite of vlc_symbols.h generation (closes #155)

New VLC_EXPORTs are now added at the end of module_symbols_t so that
offsets of other function pointers are preserved.

Deleted VLC_EXPORTs are replaced with dummy pointers for padding.

Of course, it doesn't solve the problem with changing shared structures
format :/ and it may cause SVN conflicts when multiple people changes
VLC_EXPORT. I doubt it can be avoided though.
parent cab65491
...@@ -23,6 +23,7 @@ EXTRA_DIST = \ ...@@ -23,6 +23,7 @@ EXTRA_DIST = \
bootstrap \ bootstrap \
src/extras/COPYING \ src/extras/COPYING \
toolbox \ toolbox \
vlc-api.pl \
vlc-config.in.in \ vlc-config.in.in \
vlc.spec \ vlc.spec \
vlc.spec.mdk \ vlc.spec.mdk \
...@@ -45,9 +46,7 @@ AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects ...@@ -45,9 +46,7 @@ AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects
BUILT_SOURCES += \ BUILT_SOURCES += \
stamp-api \ stamp-api \
include/vlc_symbols.h \
src/misc/modules_builtin.h \ src/misc/modules_builtin.h \
src/misc/modules_plugin.h \
$(NULL) $(NULL)
pkgincludedir = $(includedir)/vlc pkgincludedir = $(includedir)/vlc
...@@ -63,7 +62,7 @@ dist_pkginclude_HEADERS = \ ...@@ -63,7 +62,7 @@ dist_pkginclude_HEADERS = \
include/vlc/control.h \ include/vlc/control.h \
$(NULL) $(NULL)
noinst_HEADERS = $(HEADERS_include) $(HEADERS_include_built) noinst_HEADERS = $(HEADERS_include)
HEADERS_include = \ HEADERS_include = \
include/aout_internal.h \ include/aout_internal.h \
...@@ -114,6 +113,7 @@ HEADERS_include = \ ...@@ -114,6 +113,7 @@ HEADERS_include = \
include/vlc_playlist.h \ include/vlc_playlist.h \
include/vlc_spu.h \ include/vlc_spu.h \
include/vlc_stream.h \ include/vlc_stream.h \
include/vlc_symbols.h \
include/vlc_threads_funcs.h \ include/vlc_threads_funcs.h \
include/vlc_threads.h \ include/vlc_threads.h \
include/vlc_video.h \ include/vlc_video.h \
...@@ -124,32 +124,12 @@ HEADERS_include = \ ...@@ -124,32 +124,12 @@ HEADERS_include = \
include/win32_specific.h \ include/win32_specific.h \
$(NULL) $(NULL)
HEADERS_include_built = \ src/misc/modules_builtin.h: Makefile src/misc/modules_builtin.h.in vlc-config
include/vlc_symbols.h \
$(NULL)
# Common dependencies for these 3 files : Makefile vlc-config
# Real specific dependencies :
#include/vlc_symbols.h: $(HEADERS_include)
#src/misc/modules_plugin.h: src/misc/modules_plugin.h.in $(HEADERS_include)
#src/misc/modules_builtin.h: src/misc/modules_builtin.h.in vlc-config
include/vlc_symbols.h:
srcdir=$(srcdir) $(srcdir)/toolbox --update-includes
# for some strange reasons (??) modules_plugin.h depends on vlc_symbols.h
# so we have to touch it :(
src/misc/modules_plugin.h: src/misc/modules_plugin.h.in
srcdir=$(srcdir) $(srcdir)/toolbox --update-includes
touch src/misc/modules_plugin.h
src/misc/modules_builtin.h: src/misc/modules_builtin.h.in
srcdir=$(srcdir) $(srcdir)/toolbox --update-includes srcdir=$(srcdir) $(srcdir)/toolbox --update-includes
touch $@
# These dependencies are mandatory # These dependencies are mandatory
$(SOURCES): include/vlc_symbols.h $(SOURCES_libvlc): src/misc/modules_builtin.h $(LIB_intl)
$(SOURCES_libvlc): src/misc/modules_plugin.h src/misc/modules_builtin.h $(LIB_intl)
############################################################################### ###############################################################################
# Optional libintl - FIXME, bad dependencies # Optional libintl - FIXME, bad dependencies
...@@ -285,7 +265,6 @@ CLEANFILES = $(BUILT_SOURCES) ...@@ -285,7 +265,6 @@ CLEANFILES = $(BUILT_SOURCES)
lib_LIBRARIES = lib/libvlc.a $(LIBRARIES_libvlc_pic) lib_LIBRARIES = lib/libvlc.a $(LIBRARIES_libvlc_pic)
lib_libvlc_a_SOURCES = $(SOURCES_libvlc) lib_libvlc_a_SOURCES = $(SOURCES_libvlc)
dist_lib_libvlc_a_SOURCES = src/misc/modules_plugin.h
lib_libvlc_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc` lib_libvlc_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
lib_libvlc_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc` lib_libvlc_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc`
lib_libvlc_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc` lib_libvlc_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc`
...@@ -939,8 +918,8 @@ stamp-builtin: FORCE ...@@ -939,8 +918,8 @@ stamp-builtin: FORCE
done done
@if test ! -f $@; then printf "" > $@; fi @if test ! -f $@; then printf "" > $@; fi
stamp-api: Makefile $(HEADERS_include) vlc-config src/misc/modules_plugin.h.in src/misc/modules_builtin.h.in stamp-api: Makefile.in $(HEADERS_include) vlc-config vlc-api.pl src/misc/modules_builtin.h.in
srcdir=$(srcdir) $(srcdir)/toolbox --update-includes cd $(srcdir) && cat $(HEADERS_include) | perl ./vlc-api.pl
touch stamp-api touch stamp-api
############################################################################### ###############################################################################
......
/*
* This file is automatically generated. DO NOT EDIT!
* You can force an update with "make stamp-api".
*/
#ifndef __VLC_SYMBOLS_H
# define __VLC_SYMBOLS_H
/*
* This is the big VLC API structure for plugins :
* Changing its layout breaks plugin's binary compatibility,
* so DO NOT DO THAT.
* In case of conflict with SVN, add your uncommited APIs
* at the *end* of the structure so they don't mess the other's
* offset in the structure.
*/
struct module_symbols_t
{
int (*aout_FiltersCreatePipeline_inner) (aout_instance_t * p_aout, aout_filter_t ** pp_filters, int * pi_nb_filters, const audio_sample_format_t * p_input_format, const audio_sample_format_t * p_output_format);
void (*aout_FiltersDestroyPipeline_inner) (aout_instance_t * p_aout, aout_filter_t ** pp_filters, int i_nb_filters);
void (*aout_FiltersPlay_inner) (aout_instance_t * p_aout, aout_filter_t ** pp_filters, int i_nb_filters, aout_buffer_t ** pp_input_buffer);
aout_buffer_t * (*aout_OutputNextBuffer_inner) (aout_instance_t *, mtime_t, vlc_bool_t);
unsigned int (*aout_FormatNbChannels_inner) (const audio_sample_format_t * p_format);
void (*aout_FormatPrepare_inner) (audio_sample_format_t * p_format);
void (*aout_FormatPrint_inner) (aout_instance_t * p_aout, const char * psz_text, const audio_sample_format_t * p_format);
void (*aout_FormatsPrint_inner) (aout_instance_t * p_aout, const char * psz_text, const audio_sample_format_t * p_format1, const audio_sample_format_t * p_format2);
const char * (*aout_FormatPrintChannels_inner) (const audio_sample_format_t *);
aout_buffer_t * (*aout_FifoPop_inner) (aout_instance_t * p_aout, aout_fifo_t * p_fifo);
mtime_t (*aout_FifoFirstDate_inner) (aout_instance_t *, aout_fifo_t *);
void (*aout_VolumeSoftInit_inner) (aout_instance_t *);
void (*aout_VolumeNoneInit_inner) (aout_instance_t *);
aout_instance_t * (*__aout_New_inner) (vlc_object_t *);
void (*aout_Delete_inner) (aout_instance_t *);
void (*aout_DateInit_inner) (audio_date_t *, uint32_t);
void (*aout_DateSet_inner) (audio_date_t *, mtime_t);
void (*aout_DateMove_inner) (audio_date_t *, mtime_t);
mtime_t (*aout_DateGet_inner) (const audio_date_t *);
mtime_t (*aout_DateIncrement_inner) (audio_date_t *, uint32_t);
int (*aout_CheckChannelReorder_inner) (const uint32_t *, const uint32_t *, uint32_t, int, int *);
void (*aout_ChannelReorder_inner) (uint8_t *, int, int, const int *, int);
aout_input_t * (*__aout_DecNew_inner) (vlc_object_t *, aout_instance_t **, audio_sample_format_t *);
int (*aout_DecDelete_inner) (aout_instance_t *, aout_input_t *);
aout_buffer_t * (*aout_DecNewBuffer_inner) (aout_instance_t *, aout_input_t *, size_t);
void (*aout_DecDeleteBuffer_inner) (aout_instance_t *, aout_input_t *, aout_buffer_t *);
int (*aout_DecPlay_inner) (aout_instance_t *, aout_input_t *, aout_buffer_t *);
int (*__aout_VolumeGet_inner) (vlc_object_t *, audio_volume_t *);
int (*__aout_VolumeSet_inner) (vlc_object_t *, audio_volume_t);
int (*__aout_VolumeInfos_inner) (vlc_object_t *, audio_volume_t *);
int (*__aout_VolumeUp_inner) (vlc_object_t *, int, audio_volume_t *);
int (*__aout_VolumeDown_inner) (vlc_object_t *, int, audio_volume_t *);
int (*__aout_VolumeMute_inner) (vlc_object_t *, audio_volume_t *);
int (*aout_Restart_inner) (aout_instance_t * p_aout);
int (*aout_FindAndRestart_inner) (vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void *);
int (*aout_ChannelsRestart_inner) (vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void *);
vlc_bool_t (*vlc_current_charset_inner) (char **);
int (*__config_GetType_inner) (vlc_object_t *, const char *);
int (*__config_GetInt_inner) (vlc_object_t *, const char *);
void (*__config_PutInt_inner) (vlc_object_t *, const char *, int);
float (*__config_GetFloat_inner) (vlc_object_t *, const char *);
void (*__config_PutFloat_inner) (vlc_object_t *, const char *, float);
char * (*__config_GetPsz_inner) (vlc_object_t *, const char *);
void (*__config_PutPsz_inner) (vlc_object_t *, const char *, const char *);
int (*__config_LoadCmdLine_inner) (vlc_object_t *, int *, char *[], vlc_bool_t);
char * (*config_GetHomeDir_inner) (void);
int (*__config_LoadConfigFile_inner) (vlc_object_t *, const char *);
int (*__config_SaveConfigFile_inner) (vlc_object_t *, const char *);
void (*__config_ResetAll_inner) (vlc_object_t *);
module_config_t * (*config_FindConfig_inner) (vlc_object_t *, const char *);
module_t * (*config_FindModule_inner) (vlc_object_t *, const char *);
void (*config_Duplicate_inner) (module_t *, module_config_t *);
void (*config_SetCallbacks_inner) (module_config_t *, module_config_t *);
void (*config_UnsetCallbacks_inner) (module_config_t *);
int (*__intf_Eject_inner) (vlc_object_t *, const char *);
const iso639_lang_t * (*GetLang_1_inner) (const char *);
const iso639_lang_t * (*GetLang_2T_inner) (const char *);
const iso639_lang_t * (*GetLang_2B_inner) (const char *);
const char * (*DecodeLanguage_inner) (uint16_t);
module_t * (*__module_Need_inner) (vlc_object_t *, const char *, const char *, vlc_bool_t);
void (*__module_Unneed_inner) (vlc_object_t *, module_t *);
char * (*mstrtime_inner) (char *psz_buffer, mtime_t date);
mtime_t (*mdate_inner) (void);
void (*mwait_inner) (mtime_t date);
void (*msleep_inner) (mtime_t delay);
char * (*secstotimestr_inner) (char *psz_buffer, int secs);
void (*date_Init_inner) (date_t *, uint32_t, uint32_t);
void (*date_Change_inner) (date_t *, uint32_t, uint32_t);
void (*date_Set_inner) (date_t *, mtime_t);
mtime_t (*date_Get_inner) (const date_t *);
void (*date_Move_inner) (date_t *, mtime_t);
mtime_t (*date_Increment_inner) (date_t *, uint32_t);
void *net_ConvertIPv4_deprecated;
int (*__net_OpenTCP_inner) (vlc_object_t *p_this, const char *psz_host, int i_port);
int * (*__net_ListenTCP_inner) (vlc_object_t *, const char *, int);
int (*__net_Accept_inner) (vlc_object_t *, int *, mtime_t);
int (*__net_OpenUDP_inner) (vlc_object_t *p_this, char *psz_bind, int i_bind, char *psz_server, int i_server);
void (*net_Close_inner) (int fd);
int (*__net_Read_inner) (vlc_object_t *p_this, int fd, v_socket_t *, uint8_t *p_data, int i_data, vlc_bool_t b_retry);
int (*__net_ReadNonBlock_inner) (vlc_object_t *p_this, int fd, v_socket_t *, uint8_t *p_data, int i_data, mtime_t i_wait);
int (*__net_Select_inner) (vlc_object_t *p_this, int *pi_fd, v_socket_t **, int i_fd, uint8_t *p_data, int i_data, mtime_t i_wait);
int (*__net_Write_inner) (vlc_object_t *p_this, int fd, v_socket_t *, uint8_t *p_data, int i_data);
char * (*__net_Gets_inner) (vlc_object_t *p_this, int fd, v_socket_t *);
int (*net_Printf_inner) (vlc_object_t *p_this, int fd, v_socket_t *, const char *psz_fmt, ...);
int (*__net_vaPrintf_inner) (vlc_object_t *p_this, int fd, v_socket_t *, const char *psz_fmt, va_list args);
int (*vout_ShowTextRelative_inner) (vout_thread_t *, int, char *, text_style_t *, int, int, int, mtime_t);
int (*vout_ShowTextAbsolute_inner) (vout_thread_t *, int, char *, text_style_t *, int, int, int, mtime_t, mtime_t);
void (*__vout_OSDMessage_inner) (vlc_object_t *, int, char *, ...);
void (*vout_OSDSlider_inner) (vlc_object_t *, int, int , short);
void (*vout_OSDIcon_inner) (vlc_object_t *, int, short);
void (*__sout_CfgParse_inner) (vlc_object_t *, char *psz_prefix, const char **ppsz_options, sout_cfg_t *);
char * (*sout_CfgCreate_inner) (char **, sout_cfg_t **, char *);
sout_instance_t * (*__sout_NewInstance_inner) (vlc_object_t *, char *);
void (*sout_DeleteInstance_inner) (sout_instance_t *);
sout_packetizer_input_t * (*sout_InputNew_inner) (sout_instance_t *, es_format_t *);
int (*sout_InputDelete_inner) (sout_packetizer_input_t *);
int (*sout_InputSendBuffer_inner) (sout_packetizer_input_t *, block_t*);
sout_access_out_t * (*sout_AccessOutNew_inner) (sout_instance_t *, char *psz_access, char *psz_name);
void (*sout_AccessOutDelete_inner) (sout_access_out_t *);
int (*sout_AccessOutSeek_inner) (sout_access_out_t *, off_t);
int (*sout_AccessOutRead_inner) (sout_access_out_t *, block_t *);
int (*sout_AccessOutWrite_inner) (sout_access_out_t *, block_t *);
sout_mux_t * (*sout_MuxNew_inner) (sout_instance_t*, char *, sout_access_out_t *);
sout_input_t * (*sout_MuxAddStream_inner) (sout_mux_t *, es_format_t *);
void (*sout_MuxDeleteStream_inner) (sout_mux_t *, sout_input_t *);
void (*sout_MuxDelete_inner) (sout_mux_t *);
void (*sout_MuxSendBuffer_inner) (sout_mux_t *, sout_input_t *, block_t *);
sout_stream_t * (*sout_StreamNew_inner) (sout_instance_t *, char *psz_chain);
void (*sout_StreamDelete_inner) (sout_stream_t *);
int (*sout_AnnounceRegister_inner) (sout_instance_t *,session_descriptor_t*, announce_method_t*);
session_descriptor_t* (*sout_AnnounceRegisterSDP_inner) (sout_instance_t *,char *, announce_method_t*);
int (*sout_AnnounceUnRegister_inner) (sout_instance_t *,session_descriptor_t*);
void (*sout_AnnounceSessionDestroy_inner) (session_descriptor_t *);
announce_method_t* (*sout_AnnounceMethodCreate_inner) (int);
int (*__var_Create_inner) (vlc_object_t *, const char *, int);
int (*__var_Destroy_inner) (vlc_object_t *, const char *);
int (*__var_Change_inner) (vlc_object_t *, const char *, int, vlc_value_t *, vlc_value_t *);
int (*__var_Type_inner) (vlc_object_t *, const char *);
int (*__var_Set_inner) (vlc_object_t *, const char *, vlc_value_t);
int (*__var_Get_inner) (vlc_object_t *, const char *, vlc_value_t *);
int (*__var_AddCallback_inner) (vlc_object_t *, const char *, vlc_callback_t, void *);
int (*__var_DelCallback_inner) (vlc_object_t *, const char *, vlc_callback_t, void *);
vout_thread_t * (*__vout_Request_inner) (vlc_object_t *, vout_thread_t *, video_format_t *);
vout_thread_t * (*__vout_Create_inner) (vlc_object_t *, video_format_t *);
void (*vout_Destroy_inner) (vout_thread_t *);
int (*vout_VarCallback_inner) (vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void *);
int (*vout_ChromaCmp_inner) (uint32_t, uint32_t);
picture_t * (*vout_CreatePicture_inner) (vout_thread_t *, vlc_bool_t, vlc_bool_t, unsigned int);
void (*vout_InitFormat_inner) (video_frame_format_t *, uint32_t, int, int, int);
void (*vout_DestroyPicture_inner) (vout_thread_t *, picture_t *);
void (*vout_DisplayPicture_inner) (vout_thread_t *, picture_t *);
void (*vout_DatePicture_inner) (vout_thread_t *, picture_t *, mtime_t);
void (*vout_LinkPicture_inner) (vout_thread_t *, picture_t *);
void (*vout_UnlinkPicture_inner) (vout_thread_t *, picture_t *);
void (*vout_PlacePicture_inner) (vout_thread_t *, unsigned int, unsigned int, unsigned int *, unsigned int *, unsigned int *, unsigned int *);
int (*vout_vaControlDefault_inner) (vout_thread_t *, int, va_list);
void * (*vout_RequestWindow_inner) (vout_thread_t *, int *, int *, unsigned int *, unsigned int *);
void (*vout_ReleaseWindow_inner) (vout_thread_t *, void *);
int (*vout_ControlWindow_inner) (vout_thread_t *, void *, int, va_list);
access_t * (*__access2_New_inner) (vlc_object_t *p_obj, char *psz_access, char *psz_demux, char *psz_path, vlc_bool_t b_quick);
access_t * (*access2_FilterNew_inner) (access_t *p_source, char *psz_access_filter);
void (*access2_Delete_inner) (access_t *);
block_t * (*__block_New_inner) (vlc_object_t *, int);
block_t * (*block_Realloc_inner) (block_t *, int i_pre, int i_body);
block_fifo_t * (*__block_FifoNew_inner) (vlc_object_t *);
void (*block_FifoRelease_inner) (block_fifo_t *);
void (*block_FifoEmpty_inner) (block_fifo_t *);
int (*block_FifoPut_inner) (block_fifo_t *, block_t *);
block_t * (*block_FifoGet_inner) (block_fifo_t *);
block_t * (*block_FifoShow_inner) (block_fifo_t *);
char * (*vlc_strdup_inner) (const char *s);
int (*vlc_vasprintf_inner) (char **, const char *, va_list);
int (*vlc_asprintf_inner) (char **, const char *, ...);
char * (*vlc_strndup_inner) (const char *s, size_t n);
double (*vlc_atof_inner) (const char *nptr);
int64_t (*vlc_atoll_inner) (const char *nptr);
int64_t (*vlc_strtoll_inner) (const char *nptr, char **endptr, int base);
char * (*vlc_getenv_inner) (const char *name);
int (*vlc_strcasecmp_inner) (const char *s1, const char *s2);
int (*vlc_strncasecmp_inner) (const char *s1, const char *s2, size_t n);
char * (*vlc_strcasestr_inner) (const char *s1, const char *s2);
void * (*vlc_opendir_inner) (const char *);
void * (*vlc_readdir_inner) (void *);
int (*vlc_closedir_inner) (void *);
vlc_bool_t (*vlc_reduce_inner) (int *, int *, int64_t, int64_t, int64_t);
char ** (*vlc_parse_cmdline_inner) (const char *, int *);
char * (*vlc_wraptext_inner) (const char *, int, vlc_bool_t);
vlc_iconv_t (*vlc_iconv_open_inner) (const char *, const char *);
size_t (*vlc_iconv_inner) (vlc_iconv_t, char **, size_t *, char **, size_t *);
int (*vlc_iconv_close_inner) (vlc_iconv_t);
char * (*vlc_dgettext_inner) (const char *package, const char *msgid);
demux_t * (*__demux2_New_inner) (vlc_object_t *p_obj, char *psz_access, char *psz_demux, char *psz_path, stream_t *s, es_out_t *out, vlc_bool_t);
void (*demux2_Delete_inner) (demux_t *);
int (*demux2_vaControlHelper_inner) (stream_t *, int64_t i_start, int64_t i_end, int i_bitrate, int i_align, int i_query, va_list args);
char const * (*vlc_error_inner) (int);
httpd_host_t * (*httpd_HostNew_inner) (vlc_object_t *, const char *psz_host, int i_port);
httpd_host_t * (*httpd_TLSHostNew_inner) (vlc_object_t *, const char *, int, const char *, const char *, const char *, const char *);
void (*httpd_HostDelete_inner) (httpd_host_t *);
httpd_url_t * (*httpd_UrlNew_inner) (httpd_host_t *, char *psz_url, char *psz_user, char *psz_password);
httpd_url_t * (*httpd_UrlNewUnique_inner) (httpd_host_t *, char *psz_url, char *psz_user, char *psz_password);
int (*httpd_UrlCatch_inner) (httpd_url_t *, int i_msg, httpd_callback_t, httpd_callback_sys_t *);
void (*httpd_UrlDelete_inner) (httpd_url_t *);
void (*httpd_ClientModeStream_inner) (httpd_client_t *cl);
void (*httpd_ClientModeBidir_inner) (httpd_client_t *cl);
char* (*httpd_ClientIP_inner) (httpd_client_t *cl);
httpd_file_t * (*httpd_FileNew_inner) (httpd_host_t *, char *psz_url, char *psz_mime, char *psz_user, char *psz_password, httpd_file_callback_t pf_fill, httpd_file_sys_t *);
void (*httpd_FileDelete_inner) (httpd_file_t *);
httpd_redirect_t * (*httpd_RedirectNew_inner) (httpd_host_t *, char *psz_url_dst, char *psz_url_src);
void (*httpd_RedirectDelete_inner) (httpd_redirect_t *);
httpd_stream_t * (*httpd_StreamNew_inner) (httpd_host_t *, char *psz_url, char *psz_mime, char *psz_user, char *psz_password);
void (*httpd_StreamDelete_inner) (httpd_stream_t *);
int (*httpd_StreamHeader_inner) (httpd_stream_t *, uint8_t *p_data, int i_data);
int (*httpd_StreamSend_inner) (httpd_stream_t *, uint8_t *p_data, int i_data);
void (*httpd_MsgInit_inner) (httpd_message_t *);
void (*httpd_MsgAdd_inner) (httpd_message_t *, char *psz_name, char *psz_value, ...);
char * (*httpd_MsgGet_inner) (httpd_message_t *, char *psz_name);
void (*httpd_MsgClean_inner) (httpd_message_t *);
tls_server_t * (*tls_ServerCreate_inner) (vlc_object_t *, const char *, const char *);
void (*tls_ServerDelete_inner) (tls_server_t *);
tls_session_t * (*tls_ClientCreate_inner) (vlc_object_t *, int, const char *);
void (*tls_ClientDelete_inner) (tls_session_t *);
image_handler_t * (*__image_HandlerCreate_inner) (vlc_object_t *);
void (*image_HandlerDelete_inner) (image_handler_t *);
char * (*vlc_input_item_GetInfo_inner) (input_item_t *p_i, const char *psz_cat,const char *psz_name);
int (*vlc_input_item_AddInfo_inner) (input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, ...);
input_thread_t * (*__input_CreateThread_inner) (vlc_object_t *, input_item_t *);
int (*__input_Preparse_inner) (vlc_object_t *, input_item_t *);
void (*input_StopThread_inner) (input_thread_t *);
void (*input_DestroyThread_inner) (input_thread_t *);
int (*input_vaControl_inner) (input_thread_t *, int i_query, va_list);
int (*input_Control_inner) (input_thread_t *, int i_query, ...);
decoder_t * (*input_DecoderNew_inner) (input_thread_t *, es_format_t *, vlc_bool_t b_force_decoder);
void (*input_DecoderDelete_inner) (decoder_t *);
void (*input_DecoderDecode_inner) (decoder_t *, block_t *);
intf_thread_t * (*__intf_Create_inner) (vlc_object_t *, const char *);
int (*intf_RunThread_inner) (intf_thread_t *);
void (*intf_StopThread_inner) (intf_thread_t *);
void (*intf_Destroy_inner) (intf_thread_t *);
void (*__msg_Generic_inner) (vlc_object_t *, int, const char *, const char *, ... ) ATTRIBUTE_FORMAT( 4, 5);
void (*__msg_GenericVa_inner) (vlc_object_t *, int, const char *, const char *, va_list args);
void (*__msg_Info_inner) (vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3);
void (*__msg_Err_inner) (vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3);
void (*__msg_Warn_inner) (vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3);
void (*__msg_Dbg_inner) (vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3);
msg_subscription_t* (*__msg_Subscribe_inner) (vlc_object_t *);
void (*__msg_Unsubscribe_inner) (vlc_object_t *, msg_subscription_t *);
void * (*__vlc_object_create_inner) (vlc_object_t *, int);
void (*__vlc_object_destroy_inner) (vlc_object_t *);
void (*__vlc_object_attach_inner) (vlc_object_t *, vlc_object_t *);
void (*__vlc_object_detach_inner) (vlc_object_t *);
void * (*__vlc_object_get_inner) (vlc_object_t *, int);
void * (*__vlc_object_find_inner) (vlc_object_t *, int, int);
void (*__vlc_object_yield_inner) (vlc_object_t *);
void (*__vlc_object_release_inner) (vlc_object_t *);
vlc_list_t * (*__vlc_list_find_inner) (vlc_object_t *, int, int);
void (*vlc_list_release_inner) (vlc_list_t *);
int (*playlist_Control_inner) (playlist_t *, int, ...);
int (*playlist_LockControl_inner) (playlist_t *, int, ...);
int (*playlist_Clear_inner) (playlist_t *);
int (*playlist_LockClear_inner) (playlist_t *);
int (*playlist_PreparseEnqueue_inner) (playlist_t *, input_item_t *);
int (*playlist_ServicesDiscoveryAdd_inner) (playlist_t *, const char *);
int (*playlist_ServicesDiscoveryRemove_inner) (playlist_t *, const char *);
int (*playlist_AddSDModules_inner) (playlist_t *, char *);
vlc_bool_t (*playlist_IsServicesDiscoveryLoaded_inner) (playlist_t *,const char *);
playlist_item_t* (*__playlist_ItemNew_inner) (vlc_object_t *,const char *,const char *);
playlist_item_t* (*__playlist_ItemCopy_inner) (vlc_object_t *,playlist_item_t*);
playlist_item_t* (*playlist_ItemNewWithType_inner) (vlc_object_t *,const char *,const char *, int);
int (*playlist_ItemDelete_inner) (playlist_item_t *);
int (*playlist_ItemAddParent_inner) (playlist_item_t *, int,playlist_item_t *);
int (*playlist_CopyParents_inner) (playlist_item_t *,playlist_item_t *);
int (*playlist_ItemSetName_inner) (playlist_item_t *, char *);
int (*playlist_ItemSetDuration_inner) (playlist_item_t *, mtime_t);
int (*playlist_ViewInsert_inner) (playlist_t *, int, char *);
int (*playlist_ViewDelete_inner) (playlist_t *,playlist_view_t*);
playlist_view_t * (*playlist_ViewFind_inner) (playlist_t *, int);
int (*playlist_ViewUpdate_inner) (playlist_t *, int);
int (*playlist_ViewDump_inner) (playlist_t *, playlist_view_t *);
int (*playlist_ViewEmpty_inner) (playlist_t *, int, vlc_bool_t);
playlist_item_t * (*playlist_NodeCreate_inner) (playlist_t *,int,char *, playlist_item_t * p_parent);
int (*playlist_NodeAppend_inner) (playlist_t *,int,playlist_item_t*,playlist_item_t *);
int (*playlist_NodeInsert_inner) (playlist_t *,int,playlist_item_t*,playlist_item_t *, int);
int (*playlist_NodeRemoveItem_inner) (playlist_t *,playlist_item_t*,playlist_item_t *);
int (*playlist_NodeChildrenCount_inner) (playlist_t *,playlist_item_t*);
playlist_item_t * (*playlist_ChildSearchName_inner) (playlist_item_t*, const char*);
int (*playlist_NodeDelete_inner) (playlist_t *, playlist_item_t *, vlc_bool_t , vlc_bool_t);
int (*playlist_NodeEmpty_inner) (playlist_t *, playlist_item_t *, vlc_bool_t);
int (*playlist_Add_inner) (playlist_t *, const char *, const char *, int, int);
int (*playlist_AddExt_inner) (playlist_t *, const char *, const char *, int, int, mtime_t, const char **,int);
int (*playlist_ItemAdd_inner) (playlist_t *, playlist_item_t *, int, int);
int (*playlist_NodeAddItem_inner) (playlist_t *, playlist_item_t *,int,playlist_item_t *,int , int);
int (*playlist_Delete_inner) (playlist_t *, int);
int (*playlist_LockDelete_inner) (playlist_t *, int);
int (*playlist_Disable_inner) (playlist_t *, playlist_item_t *);
int (*playlist_Enable_inner) (playlist_t *, playlist_item_t *);
int (*playlist_ItemToNode_inner) (playlist_t *,playlist_item_t *);
int (*playlist_LockItemToNode_inner) (playlist_t *,playlist_item_t *);
int (*playlist_Replace_inner) (playlist_t *,playlist_item_t *, input_item_t*);
int (*playlist_LockReplace_inner) (playlist_t *,playlist_item_t *, input_item_t*);
playlist_item_t * (*playlist_ItemGetById_inner) (playlist_t *, int);
playlist_item_t * (*playlist_LockItemGetById_inner) (playlist_t *, int);
playlist_item_t * (*playlist_ItemGetByPos_inner) (playlist_t *, int);
playlist_item_t * (*playlist_LockItemGetByPos_inner) (playlist_t *, int);
playlist_item_t * (*playlist_ItemGetByInput_inner) (playlist_t *,input_item_t *);
playlist_item_t * (*playlist_LockItemGetByInput_inner) (playlist_t *,input_item_t *);
int (*playlist_GetPositionById_inner) (playlist_t *,int);
int (*playlist_ItemAddOption_inner) (playlist_item_t *, const char *);
int (*playlist_Sort_inner) (playlist_t *, int, int);
int (*playlist_Move_inner) (playlist_t *, int, int);
int (*playlist_NodeGroup_inner) (playlist_t *, int,playlist_item_t *,playlist_item_t **,int, int, int);
int (*playlist_NodeSort_inner) (playlist_t *, playlist_item_t *,int, int);
int (*playlist_RecursiveNodeSort_inner) (playlist_t *, playlist_item_t *,int, int);
int (*playlist_Import_inner) (playlist_t *, const char *);
int (*playlist_Export_inner) (playlist_t *, const char *, const char *);
spu_t * (*__spu_Create_inner) (vlc_object_t *);
int (*spu_Init_inner) (spu_t *);
void (*spu_Destroy_inner) (spu_t *);
subpicture_t * (*spu_CreateSubpicture_inner) (spu_t *);
void (*spu_DestroySubpicture_inner) (spu_t *, subpicture_t *);
void (*spu_DisplaySubpicture_inner) (spu_t *, subpicture_t *);
subpicture_region_t * (*__spu_CreateRegion_inner) (vlc_object_t *, video_format_t *);
subpicture_region_t * (*__spu_MakeRegion_inner) (vlc_object_t *, video_format_t *, picture_t *);
void (*__spu_DestroyRegion_inner) (vlc_object_t *, subpicture_region_t *);
subpicture_t * (*spu_SortSubpictures_inner) (spu_t *, mtime_t);
void (*spu_RenderSubpictures_inner) (spu_t *, video_format_t *, picture_t *, picture_t *, subpicture_t *, int, int);
char * (*stream_ReadLine_inner) (stream_t *);
stream_t * (*__stream_DemuxNew_inner) (vlc_object_t *p_obj, char *psz_demux, es_out_t *out);
void (*stream_DemuxSend_inner) (stream_t *s, block_t *p_block);
void (*stream_DemuxDelete_inner) (stream_t *s);
stream_t * (*__stream_MemoryNew_inner) (vlc_object_t *p_obj, uint8_t *p_buffer, int64_t i_size, vlc_bool_t i_preserve_memory);
stream_t * (*__stream_UrlNew_inner) (vlc_object_t *p_this, const char *psz_url);
int (*__vlc_threads_init_inner) (vlc_object_t *);
int (*__vlc_threads_end_inner) (vlc_object_t *);
int (*__vlc_mutex_init_inner) (vlc_object_t *, vlc_mutex_t *);
int (*__vlc_mutex_destroy_inner) (char *, int, vlc_mutex_t *);
int (*__vlc_cond_init_inner) (vlc_object_t *, vlc_cond_t *);
int (*__vlc_cond_destroy_inner) (char *, int, vlc_cond_t *);
int (*__vlc_thread_create_inner) (vlc_object_t *, char *, int, char *, void * ( * ) ( void * ), int, vlc_bool_t);
int (*__vlc_thread_set_priority_inner) (vlc_object_t *, char *, int, int);
void (*__vlc_thread_ready_inner) (vlc_object_t *);
void (*__vlc_thread_join_inner) (vlc_object_t *, char *, int);
void (*__vout_CopyPicture_inner) (vlc_object_t *p_this, picture_t *p_dst, picture_t *p_src);
int (*__vout_InitPicture_inner) (vlc_object_t *p_this, picture_t *p_pic, uint32_t i_chroma, int i_width, int i_height, int i_aspect);
int (*__vout_AllocatePicture_inner) (vlc_object_t *p_this, picture_t *p_pic, uint32_t i_chroma, int i_width, int i_height, int i_aspect);
vlm_t * (*__vlm_New_inner) (vlc_object_t *);
void (*vlm_Delete_inner) (vlm_t *);
int (*vlm_ExecuteCommand_inner) (vlm_t *, char *, vlm_message_t **);
void (*vlm_MessageDelete_inner) (vlm_message_t *);
vlm_media_t * (*vlm_MediaNew_inner) (vlm_t *, char *, int);
void (*vlm_MediaDelete_inner) (vlm_t *, vlm_media_t *, char *);
int (*vlm_MediaSetup_inner) (vlm_t *, vlm_media_t *, char *, char *);
int (*vlm_MediaControl_inner) (vlm_t *, vlm_media_t *, char *, char *, char *);
vlm_schedule_t * (*vlm_ScheduleNew_inner) (vlm_t *, char *);
void (*vlm_ScheduleDelete_inner) (vlm_t *, vlm_schedule_t *, char *);
int (*vlm_ScheduleSetup_inner) (vlm_schedule_t *, char *, char *);
int (*vlm_MediaVodControl_inner) (void *, vod_media_t *, char *, int, va_list);
int (*vlm_Save_inner) (vlm_t *, char *);
int (*vlm_Load_inner) (vlm_t *, char *);
xml_t * (*__xml_Create_inner) (vlc_object_t *);
void (*xml_Delete_inner) (xml_t *);
vout_synchro_t * (*__vout_SynchroInit_inner) (vlc_object_t *, int);
void (*vout_SynchroRelease_inner) (vout_synchro_t *);
void (*vout_SynchroReset_inner) (vout_synchro_t *);
vlc_bool_t (*vout_SynchroChoose_inner) (vout_synchro_t *, int, int, vlc_bool_t);
void (*vout_SynchroTrash_inner) (vout_synchro_t *);
void (*vout_SynchroDecode_inner) (vout_synchro_t *);
void (*vout_SynchroEnd_inner) (vout_synchro_t *, int, vlc_bool_t);
mtime_t (*vout_SynchroDate_inner) (vout_synchro_t *);
void (*vout_SynchroNewPicture_inner) (vout_synchro_t *, int, int, mtime_t, mtime_t, int, vlc_bool_t);
int (*vlc_getaddrinfo_inner) (vlc_object_t *, const char *, const char *, const struct addrinfo *, struct addrinfo **);
int (*vlc_getnameinfo_inner) (vlc_object_t *, const struct sockaddr *, int, char *, int, char *, int, int);
void (*InitMD5_inner) (struct md5_s *);
void (*EndMD5_inner) (struct md5_s *);
void (*vlc_freeaddrinfo_inner) (struct addrinfo *);
void (*AddMD5_inner) (struct md5_s *, const uint8_t *, uint32_t);
const char * (*vlc_gai_strerror_inner) (int);
void (*net_ListenClose_inner) (int *fd);
void (*DigestMD5_inner) (struct md5_s *, uint32_t *);
};
# if defined (__PLUGIN__)
# define aout_FiltersCreatePipeline (p_symbols)->aout_FiltersCreatePipeline_inner
# define aout_FiltersDestroyPipeline (p_symbols)->aout_FiltersDestroyPipeline_inner
# define aout_FiltersPlay (p_symbols)->aout_FiltersPlay_inner
# define aout_OutputNextBuffer (p_symbols)->aout_OutputNextBuffer_inner
# define aout_FormatNbChannels (p_symbols)->aout_FormatNbChannels_inner
# define aout_FormatPrepare (p_symbols)->aout_FormatPrepare_inner
# define aout_FormatPrint (p_symbols)->aout_FormatPrint_inner
# define aout_FormatsPrint (p_symbols)->aout_FormatsPrint_inner
# define aout_FormatPrintChannels (p_symbols)->aout_FormatPrintChannels_inner
# define aout_FifoPop (p_symbols)->aout_FifoPop_inner
# define aout_FifoFirstDate (p_symbols)->aout_FifoFirstDate_inner
# define aout_VolumeSoftInit (p_symbols)->aout_VolumeSoftInit_inner
# define aout_VolumeNoneInit (p_symbols)->aout_VolumeNoneInit_inner
# define __aout_New (p_symbols)->__aout_New_inner
# define aout_Delete (p_symbols)->aout_Delete_inner
# define aout_DateInit (p_symbols)->aout_DateInit_inner
# define aout_DateSet (p_symbols)->aout_DateSet_inner
# define aout_DateMove (p_symbols)->aout_DateMove_inner
# define aout_DateGet (p_symbols)->aout_DateGet_inner
# define aout_DateIncrement (p_symbols)->aout_DateIncrement_inner
# define aout_CheckChannelReorder (p_symbols)->aout_CheckChannelReorder_inner
# define aout_ChannelReorder (p_symbols)->aout_ChannelReorder_inner
# define __aout_DecNew (p_symbols)->__aout_DecNew_inner
# define aout_DecDelete (p_symbols)->aout_DecDelete_inner
# define aout_DecNewBuffer (p_symbols)->aout_DecNewBuffer_inner
# define aout_DecDeleteBuffer (p_symbols)->aout_DecDeleteBuffer_inner
# define aout_DecPlay (p_symbols)->aout_DecPlay_inner
# define __aout_VolumeGet (p_symbols)->__aout_VolumeGet_inner
# define __aout_VolumeSet (p_symbols)->__aout_VolumeSet_inner
# define __aout_VolumeInfos (p_symbols)->__aout_VolumeInfos_inner
# define __aout_VolumeUp (p_symbols)->__aout_VolumeUp_inner
# define __aout_VolumeDown (p_symbols)->__aout_VolumeDown_inner
# define __aout_VolumeMute (p_symbols)->__aout_VolumeMute_inner
# define aout_Restart (p_symbols)->aout_Restart_inner
# define aout_FindAndRestart (p_symbols)->aout_FindAndRestart_inner
# define aout_ChannelsRestart (p_symbols)->aout_ChannelsRestart_inner
# define vlc_current_charset (p_symbols)->vlc_current_charset_inner
# define __config_GetType (p_symbols)->__config_GetType_inner
# define __config_GetInt (p_symbols)->__config_GetInt_inner
# define __config_PutInt (p_symbols)->__config_PutInt_inner
# define __config_GetFloat (p_symbols)->__config_GetFloat_inner
# define __config_PutFloat (p_symbols)->__config_PutFloat_inner
# define __config_GetPsz (p_symbols)->__config_GetPsz_inner
# define __config_PutPsz (p_symbols)->__config_PutPsz_inner
# define __config_LoadCmdLine (p_symbols)->__config_LoadCmdLine_inner
# define config_GetHomeDir (p_symbols)->config_GetHomeDir_inner
# define __config_LoadConfigFile (p_symbols)->__config_LoadConfigFile_inner
# define __config_SaveConfigFile (p_symbols)->__config_SaveConfigFile_inner
# define __config_ResetAll (p_symbols)->__config_ResetAll_inner
# define config_FindConfig (p_symbols)->config_FindConfig_inner
# define config_FindModule (p_symbols)->config_FindModule_inner
# define config_Duplicate (p_symbols)->config_Duplicate_inner
# define config_SetCallbacks (p_symbols)->config_SetCallbacks_inner
# define config_UnsetCallbacks (p_symbols)->config_UnsetCallbacks_inner
# define __intf_Eject (p_symbols)->__intf_Eject_inner
# define GetLang_1 (p_symbols)->GetLang_1_inner
# define GetLang_2T (p_symbols)->GetLang_2T_inner
# define GetLang_2B (p_symbols)->GetLang_2B_inner
# define DecodeLanguage (p_symbols)->DecodeLanguage_inner
# define __module_Need (p_symbols)->__module_Need_inner
# define __module_Unneed (p_symbols)->__module_Unneed_inner
# define mstrtime (p_symbols)->mstrtime_inner
# define mdate (p_symbols)->mdate_inner
# define mwait (p_symbols)->mwait_inner
# define msleep (p_symbols)->msleep_inner
# define secstotimestr (p_symbols)->secstotimestr_inner
# define date_Init (p_symbols)->date_Init_inner
# define date_Change (p_symbols)->date_Change_inner
# define date_Set (p_symbols)->date_Set_inner
# define date_Get (p_symbols)->date_Get_inner
# define date_Move (p_symbols)->date_Move_inner
# define date_Increment (p_symbols)->date_Increment_inner
# define __net_OpenTCP (p_symbols)->__net_OpenTCP_inner
# define __net_ListenTCP (p_symbols)->__net_ListenTCP_inner
# define __net_Accept (p_symbols)->__net_Accept_inner
# define __net_OpenUDP (p_symbols)->__net_OpenUDP_inner
# define net_Close (p_symbols)->net_Close_inner
# define __net_Read (p_symbols)->__net_Read_inner
# define __net_ReadNonBlock (p_symbols)->__net_ReadNonBlock_inner
# define __net_Select (p_symbols)->__net_Select_inner
# define __net_Write (p_symbols)->__net_Write_inner
# define __net_Gets (p_symbols)->__net_Gets_inner
# define net_Printf (p_symbols)->net_Printf_inner
# define __net_vaPrintf (p_symbols)->__net_vaPrintf_inner
# define vout_ShowTextRelative (p_symbols)->vout_ShowTextRelative_inner
# define vout_ShowTextAbsolute (p_symbols)->vout_ShowTextAbsolute_inner
# define __vout_OSDMessage (p_symbols)->__vout_OSDMessage_inner
# define vout_OSDSlider (p_symbols)->vout_OSDSlider_inner
# define vout_OSDIcon (p_symbols)->vout_OSDIcon_inner
# define __sout_CfgParse (p_symbols)->__sout_CfgParse_inner
# define sout_CfgCreate (p_symbols)->sout_CfgCreate_inner
# define __sout_NewInstance (p_symbols)->__sout_NewInstance_inner
# define sout_DeleteInstance (p_symbols)->sout_DeleteInstance_inner
# define sout_InputNew (p_symbols)->sout_InputNew_inner
# define sout_InputDelete (p_symbols)->sout_InputDelete_inner
# define sout_InputSendBuffer (p_symbols)->sout_InputSendBuffer_inner
# define sout_AccessOutNew (p_symbols)->sout_AccessOutNew_inner
# define sout_AccessOutDelete (p_symbols)->sout_AccessOutDelete_inner
# define sout_AccessOutSeek (p_symbols)->sout_AccessOutSeek_inner
# define sout_AccessOutRead (p_symbols)->sout_AccessOutRead_inner
# define sout_AccessOutWrite (p_symbols)->sout_AccessOutWrite_inner
# define sout_MuxNew (p_symbols)->sout_MuxNew_inner
# define sout_MuxAddStream (p_symbols)->sout_MuxAddStream_inner
# define sout_MuxDeleteStream (p_symbols)->sout_MuxDeleteStream_inner
# define sout_MuxDelete (p_symbols)->sout_MuxDelete_inner
# define sout_MuxSendBuffer (p_symbols)->sout_MuxSendBuffer_inner
# define sout_StreamNew (p_symbols)->sout_StreamNew_inner
# define sout_StreamDelete (p_symbols)->sout_StreamDelete_inner
# define sout_AnnounceRegister (p_symbols)->sout_AnnounceRegister_inner
# define sout_AnnounceRegisterSDP (p_symbols)->sout_AnnounceRegisterSDP_inner
# define sout_AnnounceUnRegister (p_symbols)->sout_AnnounceUnRegister_inner
# define sout_AnnounceSessionDestroy (p_symbols)->sout_AnnounceSessionDestroy_inner
# define sout_AnnounceMethodCreate (p_symbols)->sout_AnnounceMethodCreate_inner
# define __var_Create (p_symbols)->__var_Create_inner
# define __var_Destroy (p_symbols)->__var_Destroy_inner
# define __var_Change (p_symbols)->__var_Change_inner
# define __var_Type (p_symbols)->__var_Type_inner
# define __var_Set (p_symbols)->__var_Set_inner
# define __var_Get (p_symbols)->__var_Get_inner
# define __var_AddCallback (p_symbols)->__var_AddCallback_inner
# define __var_DelCallback (p_symbols)->__var_DelCallback_inner
# define __vout_Request (p_symbols)->__vout_Request_inner
# define __vout_Create (p_symbols)->__vout_Create_inner
# define vout_Destroy (p_symbols)->vout_Destroy_inner
# define vout_VarCallback (p_symbols)->vout_VarCallback_inner
# define vout_ChromaCmp (p_symbols)->vout_ChromaCmp_inner
# define vout_CreatePicture (p_symbols)->vout_CreatePicture_inner
# define vout_InitFormat (p_symbols)->vout_InitFormat_inner
# define vout_DestroyPicture (p_symbols)->vout_DestroyPicture_inner
# define vout_DisplayPicture (p_symbols)->vout_DisplayPicture_inner
# define vout_DatePicture (p_symbols)->vout_DatePicture_inner
# define vout_LinkPicture (p_symbols)->vout_LinkPicture_inner
# define vout_UnlinkPicture (p_symbols)->vout_UnlinkPicture_inner
# define vout_PlacePicture (p_symbols)->vout_PlacePicture_inner
# define vout_vaControlDefault (p_symbols)->vout_vaControlDefault_inner
# define vout_RequestWindow (p_symbols)->vout_RequestWindow_inner
# define vout_ReleaseWindow (p_symbols)->vout_ReleaseWindow_inner
# define vout_ControlWindow (p_symbols)->vout_ControlWindow_inner
# define __access2_New (p_symbols)->__access2_New_inner
# define access2_FilterNew (p_symbols)->access2_FilterNew_inner
# define access2_Delete (p_symbols)->access2_Delete_inner
# define __block_New (p_symbols)->__block_New_inner
# define block_Realloc (p_symbols)->block_Realloc_inner
# define __block_FifoNew (p_symbols)->__block_FifoNew_inner
# define block_FifoRelease (p_symbols)->block_FifoRelease_inner
# define block_FifoEmpty (p_symbols)->block_FifoEmpty_inner
# define block_FifoPut (p_symbols)->block_FifoPut_inner
# define block_FifoGet (p_symbols)->block_FifoGet_inner
# define block_FifoShow (p_symbols)->block_FifoShow_inner
# define vlc_strdup (p_symbols)->vlc_strdup_inner
# define vlc_vasprintf (p_symbols)->vlc_vasprintf_inner
# define vlc_asprintf (p_symbols)->vlc_asprintf_inner
# define vlc_strndup (p_symbols)->vlc_strndup_inner
# define vlc_atof (p_symbols)->vlc_atof_inner
# define vlc_atoll (p_symbols)->vlc_atoll_inner
# define vlc_strtoll (p_symbols)->vlc_strtoll_inner
# define vlc_getenv (p_symbols)->vlc_getenv_inner
# define vlc_strcasecmp (p_symbols)->vlc_strcasecmp_inner
# define vlc_strncasecmp (p_symbols)->vlc_strncasecmp_inner
# define vlc_strcasestr (p_symbols)->vlc_strcasestr_inner
# define vlc_opendir (p_symbols)->vlc_opendir_inner
# define vlc_readdir (p_symbols)->vlc_readdir_inner
# define vlc_closedir (p_symbols)->vlc_closedir_inner
# define vlc_reduce (p_symbols)->vlc_reduce_inner
# define vlc_parse_cmdline (p_symbols)->vlc_parse_cmdline_inner
# define vlc_wraptext (p_symbols)->vlc_wraptext_inner
# define vlc_iconv_open (p_symbols)->vlc_iconv_open_inner
# define vlc_iconv (p_symbols)->vlc_iconv_inner
# define vlc_iconv_close (p_symbols)->vlc_iconv_close_inner
# define vlc_dgettext (p_symbols)->vlc_dgettext_inner
# define __demux2_New (p_symbols)->__demux2_New_inner
# define demux2_Delete (p_symbols)->demux2_Delete_inner
# define demux2_vaControlHelper (p_symbols)->demux2_vaControlHelper_inner
# define vlc_error (p_symbols)->vlc_error_inner
# define httpd_HostNew (p_symbols)->httpd_HostNew_inner
# define httpd_TLSHostNew (p_symbols)->httpd_TLSHostNew_inner
# define httpd_HostDelete (p_symbols)->httpd_HostDelete_inner
# define httpd_UrlNew (p_symbols)->httpd_UrlNew_inner
# define httpd_UrlNewUnique (p_symbols)->httpd_UrlNewUnique_inner
# define httpd_UrlCatch (p_symbols)->httpd_UrlCatch_inner
# define httpd_UrlDelete (p_symbols)->httpd_UrlDelete_inner
# define httpd_ClientModeStream (p_symbols)->httpd_ClientModeStream_inner
# define httpd_ClientModeBidir (p_symbols)->httpd_ClientModeBidir_inner
# define httpd_ClientIP (p_symbols)->httpd_ClientIP_inner
# define httpd_FileNew (p_symbols)->httpd_FileNew_inner
# define httpd_FileDelete (p_symbols)->httpd_FileDelete_inner
# define httpd_RedirectNew (p_symbols)->httpd_RedirectNew_inner
# define httpd_RedirectDelete (p_symbols)->httpd_RedirectDelete_inner
# define httpd_StreamNew (p_symbols)->httpd_StreamNew_inner
# define httpd_StreamDelete (p_symbols)->httpd_StreamDelete_inner
# define httpd_StreamHeader (p_symbols)->httpd_StreamHeader_inner
# define httpd_StreamSend (p_symbols)->httpd_StreamSend_inner
# define httpd_MsgInit (p_symbols)->httpd_MsgInit_inner
# define httpd_MsgAdd (p_symbols)->httpd_MsgAdd_inner
# define httpd_MsgGet (p_symbols)->httpd_MsgGet_inner
# define httpd_MsgClean (p_symbols)->httpd_MsgClean_inner
# define tls_ServerCreate (p_symbols)->tls_ServerCreate_inner
# define tls_ServerDelete (p_symbols)->tls_ServerDelete_inner
# define tls_ClientCreate (p_symbols)->tls_ClientCreate_inner
# define tls_ClientDelete (p_symbols)->tls_ClientDelete_inner
# define __image_HandlerCreate (p_symbols)->__image_HandlerCreate_inner
# define image_HandlerDelete (p_symbols)->image_HandlerDelete_inner
# define vlc_input_item_GetInfo (p_symbols)->vlc_input_item_GetInfo_inner
# define vlc_input_item_AddInfo (p_symbols)->vlc_input_item_AddInfo_inner
# define __input_CreateThread (p_symbols)->__input_CreateThread_inner
# define __input_Preparse (p_symbols)->__input_Preparse_inner
# define input_StopThread (p_symbols)->input_StopThread_inner
# define input_DestroyThread (p_symbols)->input_DestroyThread_inner
# define input_vaControl (p_symbols)->input_vaControl_inner
# define input_Control (p_symbols)->input_Control_inner
# define input_DecoderNew (p_symbols)->input_DecoderNew_inner
# define input_DecoderDelete (p_symbols)->input_DecoderDelete_inner
# define input_DecoderDecode (p_symbols)->input_DecoderDecode_inner
# define __intf_Create (p_symbols)->__intf_Create_inner
# define intf_RunThread (p_symbols)->intf_RunThread_inner
# define intf_StopThread (p_symbols)->intf_StopThread_inner
# define intf_Destroy (p_symbols)->intf_Destroy_inner
# define __msg_Generic (p_symbols)->__msg_Generic_inner
# define __msg_GenericVa (p_symbols)->__msg_GenericVa_inner
# define __msg_Info (p_symbols)->__msg_Info_inner
# define __msg_Err (p_symbols)->__msg_Err_inner
# define __msg_Warn (p_symbols)->__msg_Warn_inner
# define __msg_Dbg (p_symbols)->__msg_Dbg_inner
# define __msg_Subscribe (p_symbols)->__msg_Subscribe_inner
# define __msg_Unsubscribe (p_symbols)->__msg_Unsubscribe_inner
# define __vlc_object_create (p_symbols)->__vlc_object_create_inner
# define __vlc_object_destroy (p_symbols)->__vlc_object_destroy_inner
# define __vlc_object_attach (p_symbols)->__vlc_object_attach_inner
# define __vlc_object_detach (p_symbols)->__vlc_object_detach_inner
# define __vlc_object_get (p_symbols)->__vlc_object_get_inner
# define __vlc_object_find (p_symbols)->__vlc_object_find_inner
# define __vlc_object_yield (p_symbols)->__vlc_object_yield_inner
# define __vlc_object_release (p_symbols)->__vlc_object_release_inner
# define __vlc_list_find (p_symbols)->__vlc_list_find_inner
# define vlc_list_release (p_symbols)->vlc_list_release_inner
# define playlist_Control (p_symbols)->playlist_Control_inner
# define playlist_LockControl (p_symbols)->playlist_LockControl_inner
# define playlist_Clear (p_symbols)->playlist_Clear_inner
# define playlist_LockClear (p_symbols)->playlist_LockClear_inner
# define playlist_PreparseEnqueue (p_symbols)->playlist_PreparseEnqueue_inner
# define playlist_ServicesDiscoveryAdd (p_symbols)->playlist_ServicesDiscoveryAdd_inner
# define playlist_ServicesDiscoveryRemove (p_symbols)->playlist_ServicesDiscoveryRemove_inner
# define playlist_AddSDModules (p_symbols)->playlist_AddSDModules_inner
# define playlist_IsServicesDiscoveryLoaded (p_symbols)->playlist_IsServicesDiscoveryLoaded_inner
# define __playlist_ItemNew (p_symbols)->__playlist_ItemNew_inner
# define __playlist_ItemCopy (p_symbols)->__playlist_ItemCopy_inner
# define playlist_ItemNewWithType (p_symbols)->playlist_ItemNewWithType_inner
# define playlist_ItemDelete (p_symbols)->playlist_ItemDelete_inner
# define playlist_ItemAddParent (p_symbols)->playlist_ItemAddParent_inner
# define playlist_CopyParents (p_symbols)->playlist_CopyParents_inner
# define playlist_ItemSetName (p_symbols)->playlist_ItemSetName_inner
# define playlist_ItemSetDuration (p_symbols)->playlist_ItemSetDuration_inner
# define playlist_ViewInsert (p_symbols)->playlist_ViewInsert_inner
# define playlist_ViewDelete (p_symbols)->playlist_ViewDelete_inner
# define playlist_ViewFind (p_symbols)->playlist_ViewFind_inner
# define playlist_ViewUpdate (p_symbols)->playlist_ViewUpdate_inner
# define playlist_ViewDump (p_symbols)->playlist_ViewDump_inner
# define playlist_ViewEmpty (p_symbols)->playlist_ViewEmpty_inner
# define playlist_NodeCreate (p_symbols)->playlist_NodeCreate_inner
# define playlist_NodeAppend (p_symbols)->playlist_NodeAppend_inner
# define playlist_NodeInsert (p_symbols)->playlist_NodeInsert_inner
# define playlist_NodeRemoveItem (p_symbols)->playlist_NodeRemoveItem_inner
# define playlist_NodeChildrenCount (p_symbols)->playlist_NodeChildrenCount_inner
# define playlist_ChildSearchName (p_symbols)->playlist_ChildSearchName_inner
# define playlist_NodeDelete (p_symbols)->playlist_NodeDelete_inner
# define playlist_NodeEmpty (p_symbols)->playlist_NodeEmpty_inner
# define playlist_Add (p_symbols)->playlist_Add_inner
# define playlist_AddExt (p_symbols)->playlist_AddExt_inner
# define playlist_ItemAdd (p_symbols)->playlist_ItemAdd_inner
# define playlist_NodeAddItem (p_symbols)->playlist_NodeAddItem_inner
# define playlist_Delete (p_symbols)->playlist_Delete_inner
# define playlist_LockDelete (p_symbols)->playlist_LockDelete_inner
# define playlist_Disable (p_symbols)->playlist_Disable_inner
# define playlist_Enable (p_symbols)->playlist_Enable_inner
# define playlist_ItemToNode (p_symbols)->playlist_ItemToNode_inner
# define playlist_LockItemToNode (p_symbols)->playlist_LockItemToNode_inner
# define playlist_Replace (p_symbols)->playlist_Replace_inner
# define playlist_LockReplace (p_symbols)->playlist_LockReplace_inner
# define playlist_ItemGetById (p_symbols)->playlist_ItemGetById_inner
# define playlist_LockItemGetById (p_symbols)->playlist_LockItemGetById_inner
# define playlist_ItemGetByPos (p_symbols)->playlist_ItemGetByPos_inner
# define playlist_LockItemGetByPos (p_symbols)->playlist_LockItemGetByPos_inner
# define playlist_ItemGetByInput (p_symbols)->playlist_ItemGetByInput_inner
# define playlist_LockItemGetByInput (p_symbols)->playlist_LockItemGetByInput_inner
# define playlist_GetPositionById (p_symbols)->playlist_GetPositionById_inner
# define playlist_ItemAddOption (p_symbols)->playlist_ItemAddOption_inner
# define playlist_Sort (p_symbols)->playlist_Sort_inner
# define playlist_Move (p_symbols)->playlist_Move_inner
# define playlist_NodeGroup (p_symbols)->playlist_NodeGroup_inner
# define playlist_NodeSort (p_symbols)->playlist_NodeSort_inner
# define playlist_RecursiveNodeSort (p_symbols)->playlist_RecursiveNodeSort_inner
# define playlist_Import (p_symbols)->playlist_Import_inner
# define playlist_Export (p_symbols)->playlist_Export_inner
# define __spu_Create (p_symbols)->__spu_Create_inner
# define spu_Init (p_symbols)->spu_Init_inner
# define spu_Destroy (p_symbols)->spu_Destroy_inner
# define spu_CreateSubpicture (p_symbols)->spu_CreateSubpicture_inner
# define spu_DestroySubpicture (p_symbols)->spu_DestroySubpicture_inner
# define spu_DisplaySubpicture (p_symbols)->spu_DisplaySubpicture_inner
# define __spu_CreateRegion (p_symbols)->__spu_CreateRegion_inner
# define __spu_MakeRegion (p_symbols)->__spu_MakeRegion_inner
# define __spu_DestroyRegion (p_symbols)->__spu_DestroyRegion_inner
# define spu_SortSubpictures (p_symbols)->spu_SortSubpictures_inner
# define spu_RenderSubpictures (p_symbols)->spu_RenderSubpictures_inner
# define stream_ReadLine (p_symbols)->stream_ReadLine_inner
# define __stream_DemuxNew (p_symbols)->__stream_DemuxNew_inner
# define stream_DemuxSend (p_symbols)->stream_DemuxSend_inner
# define stream_DemuxDelete (p_symbols)->stream_DemuxDelete_inner
# define __stream_MemoryNew (p_symbols)->__stream_MemoryNew_inner
# define __stream_UrlNew (p_symbols)->__stream_UrlNew_inner
# define __vlc_threads_init (p_symbols)->__vlc_threads_init_inner
# define __vlc_threads_end (p_symbols)->__vlc_threads_end_inner
# define __vlc_mutex_init (p_symbols)->__vlc_mutex_init_inner
# define __vlc_mutex_destroy (p_symbols)->__vlc_mutex_destroy_inner
# define __vlc_cond_init (p_symbols)->__vlc_cond_init_inner
# define __vlc_cond_destroy (p_symbols)->__vlc_cond_destroy_inner
# define __vlc_thread_create (p_symbols)->__vlc_thread_create_inner
# define __vlc_thread_set_priority (p_symbols)->__vlc_thread_set_priority_inner
# define __vlc_thread_ready (p_symbols)->__vlc_thread_ready_inner
# define __vlc_thread_join (p_symbols)->__vlc_thread_join_inner
# define __vout_CopyPicture (p_symbols)->__vout_CopyPicture_inner
# define __vout_InitPicture (p_symbols)->__vout_InitPicture_inner
# define __vout_AllocatePicture (p_symbols)->__vout_AllocatePicture_inner
# define __vlm_New (p_symbols)->__vlm_New_inner
# define vlm_Delete (p_symbols)->vlm_Delete_inner
# define vlm_ExecuteCommand (p_symbols)->vlm_ExecuteCommand_inner
# define vlm_MessageDelete (p_symbols)->vlm_MessageDelete_inner
# define vlm_MediaNew (p_symbols)->vlm_MediaNew_inner
# define vlm_MediaDelete (p_symbols)->vlm_MediaDelete_inner
# define vlm_MediaSetup (p_symbols)->vlm_MediaSetup_inner
# define vlm_MediaControl (p_symbols)->vlm_MediaControl_inner
# define vlm_ScheduleNew (p_symbols)->vlm_ScheduleNew_inner
# define vlm_ScheduleDelete (p_symbols)->vlm_ScheduleDelete_inner
# define vlm_ScheduleSetup (p_symbols)->vlm_ScheduleSetup_inner
# define vlm_MediaVodControl (p_symbols)->vlm_MediaVodControl_inner
# define vlm_Save (p_symbols)->vlm_Save_inner
# define vlm_Load (p_symbols)->vlm_Load_inner
# define __xml_Create (p_symbols)->__xml_Create_inner
# define xml_Delete (p_symbols)->xml_Delete_inner
# define __vout_SynchroInit (p_symbols)->__vout_SynchroInit_inner
# define vout_SynchroRelease (p_symbols)->vout_SynchroRelease_inner
# define vout_SynchroReset (p_symbols)->vout_SynchroReset_inner
# define vout_SynchroChoose (p_symbols)->vout_SynchroChoose_inner
# define vout_SynchroTrash (p_symbols)->vout_SynchroTrash_inner
# define vout_SynchroDecode (p_symbols)->vout_SynchroDecode_inner
# define vout_SynchroEnd (p_symbols)->vout_SynchroEnd_inner
# define vout_SynchroDate (p_symbols)->vout_SynchroDate_inner
# define vout_SynchroNewPicture (p_symbols)->vout_SynchroNewPicture_inner
# define vlc_getaddrinfo (p_symbols)->vlc_getaddrinfo_inner
# define vlc_getnameinfo (p_symbols)->vlc_getnameinfo_inner
# define InitMD5 (p_symbols)->InitMD5_inner
# define EndMD5 (p_symbols)->EndMD5_inner
# define vlc_freeaddrinfo (p_symbols)->vlc_freeaddrinfo_inner
# define AddMD5 (p_symbols)->AddMD5_inner
# define vlc_gai_strerror (p_symbols)->vlc_gai_strerror_inner
# define net_ListenClose (p_symbols)->net_ListenClose_inner
# define DigestMD5 (p_symbols)->DigestMD5_inner
# elif defined (HAVE_DYNAMIC_PLUGINS) && !defined (__BUILTIN__)
/******************************************************************
* STORE_SYMBOLS: store VLC APIs into p_symbols for plugin access.
******************************************************************/
# define STORE_SYMBOLS( p_symbols ) \
((p_symbols)->aout_FiltersCreatePipeline_inner) = aout_FiltersCreatePipeline; \
((p_symbols)->aout_FiltersDestroyPipeline_inner) = aout_FiltersDestroyPipeline; \
((p_symbols)->aout_FiltersPlay_inner) = aout_FiltersPlay; \
((p_symbols)->aout_OutputNextBuffer_inner) = aout_OutputNextBuffer; \
((p_symbols)->aout_FormatNbChannels_inner) = aout_FormatNbChannels; \
((p_symbols)->aout_FormatPrepare_inner) = aout_FormatPrepare; \
((p_symbols)->aout_FormatPrint_inner) = aout_FormatPrint; \
((p_symbols)->aout_FormatsPrint_inner) = aout_FormatsPrint; \
((p_symbols)->aout_FormatPrintChannels_inner) = aout_FormatPrintChannels; \
((p_symbols)->aout_FifoPop_inner) = aout_FifoPop; \
((p_symbols)->aout_FifoFirstDate_inner) = aout_FifoFirstDate; \
((p_symbols)->aout_VolumeSoftInit_inner) = aout_VolumeSoftInit; \
((p_symbols)->aout_VolumeNoneInit_inner) = aout_VolumeNoneInit; \
((p_symbols)->__aout_New_inner) = __aout_New; \
((p_symbols)->aout_Delete_inner) = aout_Delete; \
((p_symbols)->aout_DateInit_inner) = aout_DateInit; \
((p_symbols)->aout_DateSet_inner) = aout_DateSet; \
((p_symbols)->aout_DateMove_inner) = aout_DateMove; \
((p_symbols)->aout_DateGet_inner) = aout_DateGet; \
((p_symbols)->aout_DateIncrement_inner) = aout_DateIncrement; \
((p_symbols)->aout_CheckChannelReorder_inner) = aout_CheckChannelReorder; \
((p_symbols)->aout_ChannelReorder_inner) = aout_ChannelReorder; \
((p_symbols)->__aout_DecNew_inner) = __aout_DecNew; \
((p_symbols)->aout_DecDelete_inner) = aout_DecDelete; \
((p_symbols)->aout_DecNewBuffer_inner) = aout_DecNewBuffer; \
((p_symbols)->aout_DecDeleteBuffer_inner) = aout_DecDeleteBuffer; \
((p_symbols)->aout_DecPlay_inner) = aout_DecPlay; \
((p_symbols)->__aout_VolumeGet_inner) = __aout_VolumeGet; \
((p_symbols)->__aout_VolumeSet_inner) = __aout_VolumeSet; \
((p_symbols)->__aout_VolumeInfos_inner) = __aout_VolumeInfos; \
((p_symbols)->__aout_VolumeUp_inner) = __aout_VolumeUp; \
((p_symbols)->__aout_VolumeDown_inner) = __aout_VolumeDown; \
((p_symbols)->__aout_VolumeMute_inner) = __aout_VolumeMute; \
((p_symbols)->aout_Restart_inner) = aout_Restart; \
((p_symbols)->aout_FindAndRestart_inner) = aout_FindAndRestart; \
((p_symbols)->aout_ChannelsRestart_inner) = aout_ChannelsRestart; \
((p_symbols)->vlc_current_charset_inner) = vlc_current_charset; \
((p_symbols)->__config_GetType_inner) = __config_GetType; \
((p_symbols)->__config_GetInt_inner) = __config_GetInt; \
((p_symbols)->__config_PutInt_inner) = __config_PutInt; \
((p_symbols)->__config_GetFloat_inner) = __config_GetFloat; \
((p_symbols)->__config_PutFloat_inner) = __config_PutFloat; \
((p_symbols)->__config_GetPsz_inner) = __config_GetPsz; \
((p_symbols)->__config_PutPsz_inner) = __config_PutPsz; \
((p_symbols)->__config_LoadCmdLine_inner) = __config_LoadCmdLine; \
((p_symbols)->config_GetHomeDir_inner) = config_GetHomeDir; \
((p_symbols)->__config_LoadConfigFile_inner) = __config_LoadConfigFile; \
((p_symbols)->__config_SaveConfigFile_inner) = __config_SaveConfigFile; \
((p_symbols)->__config_ResetAll_inner) = __config_ResetAll; \
((p_symbols)->config_FindConfig_inner) = config_FindConfig; \
((p_symbols)->config_FindModule_inner) = config_FindModule; \
((p_symbols)->config_Duplicate_inner) = config_Duplicate; \
((p_symbols)->config_SetCallbacks_inner) = config_SetCallbacks; \
((p_symbols)->config_UnsetCallbacks_inner) = config_UnsetCallbacks; \
((p_symbols)->__intf_Eject_inner) = __intf_Eject; \
((p_symbols)->GetLang_1_inner) = GetLang_1; \
((p_symbols)->GetLang_2T_inner) = GetLang_2T; \
((p_symbols)->GetLang_2B_inner) = GetLang_2B; \
((p_symbols)->DecodeLanguage_inner) = DecodeLanguage; \
((p_symbols)->__module_Need_inner) = __module_Need; \
((p_symbols)->__module_Unneed_inner) = __module_Unneed; \
((p_symbols)->mstrtime_inner) = mstrtime; \
((p_symbols)->mdate_inner) = mdate; \
((p_symbols)->mwait_inner) = mwait; \
((p_symbols)->msleep_inner) = msleep; \
((p_symbols)->secstotimestr_inner) = secstotimestr; \
((p_symbols)->date_Init_inner) = date_Init; \
((p_symbols)->date_Change_inner) = date_Change; \
((p_symbols)->date_Set_inner) = date_Set; \
((p_symbols)->date_Get_inner) = date_Get; \
((p_symbols)->date_Move_inner) = date_Move; \
((p_symbols)->date_Increment_inner) = date_Increment; \
((p_symbols)->__net_OpenTCP_inner) = __net_OpenTCP; \
((p_symbols)->__net_ListenTCP_inner) = __net_ListenTCP; \
((p_symbols)->__net_Accept_inner) = __net_Accept; \
((p_symbols)->__net_OpenUDP_inner) = __net_OpenUDP; \
((p_symbols)->net_Close_inner) = net_Close; \
((p_symbols)->__net_Read_inner) = __net_Read; \
((p_symbols)->__net_ReadNonBlock_inner) = __net_ReadNonBlock; \
((p_symbols)->__net_Select_inner) = __net_Select; \
((p_symbols)->__net_Write_inner) = __net_Write; \
((p_symbols)->__net_Gets_inner) = __net_Gets; \
((p_symbols)->net_Printf_inner) = net_Printf; \
((p_symbols)->__net_vaPrintf_inner) = __net_vaPrintf; \
((p_symbols)->vout_ShowTextRelative_inner) = vout_ShowTextRelative; \
((p_symbols)->vout_ShowTextAbsolute_inner) = vout_ShowTextAbsolute; \
((p_symbols)->__vout_OSDMessage_inner) = __vout_OSDMessage; \
((p_symbols)->vout_OSDSlider_inner) = vout_OSDSlider; \
((p_symbols)->vout_OSDIcon_inner) = vout_OSDIcon; \
((p_symbols)->__sout_CfgParse_inner) = __sout_CfgParse; \
((p_symbols)->sout_CfgCreate_inner) = sout_CfgCreate; \
((p_symbols)->__sout_NewInstance_inner) = __sout_NewInstance; \
((p_symbols)->sout_DeleteInstance_inner) = sout_DeleteInstance; \
((p_symbols)->sout_InputNew_inner) = sout_InputNew; \
((p_symbols)->sout_InputDelete_inner) = sout_InputDelete; \
((p_symbols)->sout_InputSendBuffer_inner) = sout_InputSendBuffer; \
((p_symbols)->sout_AccessOutNew_inner) = sout_AccessOutNew; \
((p_symbols)->sout_AccessOutDelete_inner) = sout_AccessOutDelete; \
((p_symbols)->sout_AccessOutSeek_inner) = sout_AccessOutSeek; \
((p_symbols)->sout_AccessOutRead_inner) = sout_AccessOutRead; \
((p_symbols)->sout_AccessOutWrite_inner) = sout_AccessOutWrite; \
((p_symbols)->sout_MuxNew_inner) = sout_MuxNew; \
((p_symbols)->sout_MuxAddStream_inner) = sout_MuxAddStream; \
((p_symbols)->sout_MuxDeleteStream_inner) = sout_MuxDeleteStream; \
((p_symbols)->sout_MuxDelete_inner) = sout_MuxDelete; \
((p_symbols)->sout_MuxSendBuffer_inner) = sout_MuxSendBuffer; \
((p_symbols)->sout_StreamNew_inner) = sout_StreamNew; \
((p_symbols)->sout_StreamDelete_inner) = sout_StreamDelete; \
((p_symbols)->sout_AnnounceRegister_inner) = sout_AnnounceRegister; \
((p_symbols)->sout_AnnounceRegisterSDP_inner) = sout_AnnounceRegisterSDP; \
((p_symbols)->sout_AnnounceUnRegister_inner) = sout_AnnounceUnRegister; \
((p_symbols)->sout_AnnounceSessionDestroy_inner) = sout_AnnounceSessionDestroy; \
((p_symbols)->sout_AnnounceMethodCreate_inner) = sout_AnnounceMethodCreate; \
((p_symbols)->__var_Create_inner) = __var_Create; \
((p_symbols)->__var_Destroy_inner) = __var_Destroy; \
((p_symbols)->__var_Change_inner) = __var_Change; \
((p_symbols)->__var_Type_inner) = __var_Type; \
((p_symbols)->__var_Set_inner) = __var_Set; \
((p_symbols)->__var_Get_inner) = __var_Get; \
((p_symbols)->__var_AddCallback_inner) = __var_AddCallback; \
((p_symbols)->__var_DelCallback_inner) = __var_DelCallback; \
((p_symbols)->__vout_Request_inner) = __vout_Request; \
((p_symbols)->__vout_Create_inner) = __vout_Create; \
((p_symbols)->vout_Destroy_inner) = vout_Destroy; \
((p_symbols)->vout_VarCallback_inner) = vout_VarCallback; \
((p_symbols)->vout_ChromaCmp_inner) = vout_ChromaCmp; \
((p_symbols)->vout_CreatePicture_inner) = vout_CreatePicture; \
((p_symbols)->vout_InitFormat_inner) = vout_InitFormat; \
((p_symbols)->vout_DestroyPicture_inner) = vout_DestroyPicture; \
((p_symbols)->vout_DisplayPicture_inner) = vout_DisplayPicture; \
((p_symbols)->vout_DatePicture_inner) = vout_DatePicture; \
((p_symbols)->vout_LinkPicture_inner) = vout_LinkPicture; \
((p_symbols)->vout_UnlinkPicture_inner) = vout_UnlinkPicture; \
((p_symbols)->vout_PlacePicture_inner) = vout_PlacePicture; \
((p_symbols)->vout_vaControlDefault_inner) = vout_vaControlDefault; \
((p_symbols)->vout_RequestWindow_inner) = vout_RequestWindow; \
((p_symbols)->vout_ReleaseWindow_inner) = vout_ReleaseWindow; \
((p_symbols)->vout_ControlWindow_inner) = vout_ControlWindow; \
((p_symbols)->__access2_New_inner) = __access2_New; \
((p_symbols)->access2_FilterNew_inner) = access2_FilterNew; \
((p_symbols)->access2_Delete_inner) = access2_Delete; \
((p_symbols)->__block_New_inner) = __block_New; \
((p_symbols)->block_Realloc_inner) = block_Realloc; \
((p_symbols)->__block_FifoNew_inner) = __block_FifoNew; \
((p_symbols)->block_FifoRelease_inner) = block_FifoRelease; \
((p_symbols)->block_FifoEmpty_inner) = block_FifoEmpty; \
((p_symbols)->block_FifoPut_inner) = block_FifoPut; \
((p_symbols)->block_FifoGet_inner) = block_FifoGet; \
((p_symbols)->block_FifoShow_inner) = block_FifoShow; \
((p_symbols)->vlc_strdup_inner) = vlc_strdup; \
((p_symbols)->vlc_vasprintf_inner) = vlc_vasprintf; \
((p_symbols)->vlc_asprintf_inner) = vlc_asprintf; \
((p_symbols)->vlc_strndup_inner) = vlc_strndup; \
((p_symbols)->vlc_atof_inner) = vlc_atof; \
((p_symbols)->vlc_atoll_inner) = vlc_atoll; \
((p_symbols)->vlc_strtoll_inner) = vlc_strtoll; \
((p_symbols)->vlc_getenv_inner) = vlc_getenv; \
((p_symbols)->vlc_strcasecmp_inner) = vlc_strcasecmp; \
((p_symbols)->vlc_strncasecmp_inner) = vlc_strncasecmp; \
((p_symbols)->vlc_strcasestr_inner) = vlc_strcasestr; \
((p_symbols)->vlc_opendir_inner) = vlc_opendir; \
((p_symbols)->vlc_readdir_inner) = vlc_readdir; \
((p_symbols)->vlc_closedir_inner) = vlc_closedir; \
((p_symbols)->vlc_reduce_inner) = vlc_reduce; \
((p_symbols)->vlc_parse_cmdline_inner) = vlc_parse_cmdline; \
((p_symbols)->vlc_wraptext_inner) = vlc_wraptext; \
((p_symbols)->vlc_iconv_open_inner) = vlc_iconv_open; \
((p_symbols)->vlc_iconv_inner) = vlc_iconv; \
((p_symbols)->vlc_iconv_close_inner) = vlc_iconv_close; \
((p_symbols)->vlc_dgettext_inner) = vlc_dgettext; \
((p_symbols)->__demux2_New_inner) = __demux2_New; \
((p_symbols)->demux2_Delete_inner) = demux2_Delete; \
((p_symbols)->demux2_vaControlHelper_inner) = demux2_vaControlHelper; \
((p_symbols)->vlc_error_inner) = vlc_error; \
((p_symbols)->httpd_HostNew_inner) = httpd_HostNew; \
((p_symbols)->httpd_TLSHostNew_inner) = httpd_TLSHostNew; \
((p_symbols)->httpd_HostDelete_inner) = httpd_HostDelete; \
((p_symbols)->httpd_UrlNew_inner) = httpd_UrlNew; \
((p_symbols)->httpd_UrlNewUnique_inner) = httpd_UrlNewUnique; \
((p_symbols)->httpd_UrlCatch_inner) = httpd_UrlCatch; \
((p_symbols)->httpd_UrlDelete_inner) = httpd_UrlDelete; \
((p_symbols)->httpd_ClientModeStream_inner) = httpd_ClientModeStream; \
((p_symbols)->httpd_ClientModeBidir_inner) = httpd_ClientModeBidir; \
((p_symbols)->httpd_ClientIP_inner) = httpd_ClientIP; \
((p_symbols)->httpd_FileNew_inner) = httpd_FileNew; \
((p_symbols)->httpd_FileDelete_inner) = httpd_FileDelete; \
((p_symbols)->httpd_RedirectNew_inner) = httpd_RedirectNew; \
((p_symbols)->httpd_RedirectDelete_inner) = httpd_RedirectDelete; \
((p_symbols)->httpd_StreamNew_inner) = httpd_StreamNew; \
((p_symbols)->httpd_StreamDelete_inner) = httpd_StreamDelete; \
((p_symbols)->httpd_StreamHeader_inner) = httpd_StreamHeader; \
((p_symbols)->httpd_StreamSend_inner) = httpd_StreamSend; \
((p_symbols)->httpd_MsgInit_inner) = httpd_MsgInit; \
((p_symbols)->httpd_MsgAdd_inner) = httpd_MsgAdd; \
((p_symbols)->httpd_MsgGet_inner) = httpd_MsgGet; \
((p_symbols)->httpd_MsgClean_inner) = httpd_MsgClean; \
((p_symbols)->tls_ServerCreate_inner) = tls_ServerCreate; \
((p_symbols)->tls_ServerDelete_inner) = tls_ServerDelete; \
((p_symbols)->tls_ClientCreate_inner) = tls_ClientCreate; \
((p_symbols)->tls_ClientDelete_inner) = tls_ClientDelete; \
((p_symbols)->__image_HandlerCreate_inner) = __image_HandlerCreate; \
((p_symbols)->image_HandlerDelete_inner) = image_HandlerDelete; \
((p_symbols)->vlc_input_item_GetInfo_inner) = vlc_input_item_GetInfo; \
((p_symbols)->vlc_input_item_AddInfo_inner) = vlc_input_item_AddInfo; \
((p_symbols)->__input_CreateThread_inner) = __input_CreateThread; \
((p_symbols)->__input_Preparse_inner) = __input_Preparse; \
((p_symbols)->input_StopThread_inner) = input_StopThread; \
((p_symbols)->input_DestroyThread_inner) = input_DestroyThread; \
((p_symbols)->input_vaControl_inner) = input_vaControl; \
((p_symbols)->input_Control_inner) = input_Control; \
((p_symbols)->input_DecoderNew_inner) = input_DecoderNew; \
((p_symbols)->input_DecoderDelete_inner) = input_DecoderDelete; \
((p_symbols)->input_DecoderDecode_inner) = input_DecoderDecode; \
((p_symbols)->__intf_Create_inner) = __intf_Create; \
((p_symbols)->intf_RunThread_inner) = intf_RunThread; \
((p_symbols)->intf_StopThread_inner) = intf_StopThread; \
((p_symbols)->intf_Destroy_inner) = intf_Destroy; \
((p_symbols)->__msg_Generic_inner) = __msg_Generic; \
((p_symbols)->__msg_GenericVa_inner) = __msg_GenericVa; \
((p_symbols)->__msg_Info_inner) = __msg_Info; \
((p_symbols)->__msg_Err_inner) = __msg_Err; \
((p_symbols)->__msg_Warn_inner) = __msg_Warn; \
((p_symbols)->__msg_Dbg_inner) = __msg_Dbg; \
((p_symbols)->__msg_Subscribe_inner) = __msg_Subscribe; \
((p_symbols)->__msg_Unsubscribe_inner) = __msg_Unsubscribe; \
((p_symbols)->__vlc_object_create_inner) = __vlc_object_create; \
((p_symbols)->__vlc_object_destroy_inner) = __vlc_object_destroy; \
((p_symbols)->__vlc_object_attach_inner) = __vlc_object_attach; \
((p_symbols)->__vlc_object_detach_inner) = __vlc_object_detach; \
((p_symbols)->__vlc_object_get_inner) = __vlc_object_get; \
((p_symbols)->__vlc_object_find_inner) = __vlc_object_find; \
((p_symbols)->__vlc_object_yield_inner) = __vlc_object_yield; \
((p_symbols)->__vlc_object_release_inner) = __vlc_object_release; \
((p_symbols)->__vlc_list_find_inner) = __vlc_list_find; \
((p_symbols)->vlc_list_release_inner) = vlc_list_release; \
((p_symbols)->playlist_Control_inner) = playlist_Control; \
((p_symbols)->playlist_LockControl_inner) = playlist_LockControl; \
((p_symbols)->playlist_Clear_inner) = playlist_Clear; \
((p_symbols)->playlist_LockClear_inner) = playlist_LockClear; \
((p_symbols)->playlist_PreparseEnqueue_inner) = playlist_PreparseEnqueue; \
((p_symbols)->playlist_ServicesDiscoveryAdd_inner) = playlist_ServicesDiscoveryAdd; \
((p_symbols)->playlist_ServicesDiscoveryRemove_inner) = playlist_ServicesDiscoveryRemove; \
((p_symbols)->playlist_AddSDModules_inner) = playlist_AddSDModules; \
((p_symbols)->playlist_IsServicesDiscoveryLoaded_inner) = playlist_IsServicesDiscoveryLoaded; \
((p_symbols)->__playlist_ItemNew_inner) = __playlist_ItemNew; \
((p_symbols)->__playlist_ItemCopy_inner) = __playlist_ItemCopy; \
((p_symbols)->playlist_ItemNewWithType_inner) = playlist_ItemNewWithType; \
((p_symbols)->playlist_ItemDelete_inner) = playlist_ItemDelete; \
((p_symbols)->playlist_ItemAddParent_inner) = playlist_ItemAddParent; \
((p_symbols)->playlist_CopyParents_inner) = playlist_CopyParents; \
((p_symbols)->playlist_ItemSetName_inner) = playlist_ItemSetName; \
((p_symbols)->playlist_ItemSetDuration_inner) = playlist_ItemSetDuration; \
((p_symbols)->playlist_ViewInsert_inner) = playlist_ViewInsert; \
((p_symbols)->playlist_ViewDelete_inner) = playlist_ViewDelete; \
((p_symbols)->playlist_ViewFind_inner) = playlist_ViewFind; \
((p_symbols)->playlist_ViewUpdate_inner) = playlist_ViewUpdate; \
((p_symbols)->playlist_ViewDump_inner) = playlist_ViewDump; \
((p_symbols)->playlist_ViewEmpty_inner) = playlist_ViewEmpty; \
((p_symbols)->playlist_NodeCreate_inner) = playlist_NodeCreate; \
((p_symbols)->playlist_NodeAppend_inner) = playlist_NodeAppend; \
((p_symbols)->playlist_NodeInsert_inner) = playlist_NodeInsert; \
((p_symbols)->playlist_NodeRemoveItem_inner) = playlist_NodeRemoveItem; \
((p_symbols)->playlist_NodeChildrenCount_inner) = playlist_NodeChildrenCount; \
((p_symbols)->playlist_ChildSearchName_inner) = playlist_ChildSearchName; \
((p_symbols)->playlist_NodeDelete_inner) = playlist_NodeDelete; \
((p_symbols)->playlist_NodeEmpty_inner) = playlist_NodeEmpty; \
((p_symbols)->playlist_Add_inner) = playlist_Add; \
((p_symbols)->playlist_AddExt_inner) = playlist_AddExt; \
((p_symbols)->playlist_ItemAdd_inner) = playlist_ItemAdd; \
((p_symbols)->playlist_NodeAddItem_inner) = playlist_NodeAddItem; \
((p_symbols)->playlist_Delete_inner) = playlist_Delete; \
((p_symbols)->playlist_LockDelete_inner) = playlist_LockDelete; \
((p_symbols)->playlist_Disable_inner) = playlist_Disable; \
((p_symbols)->playlist_Enable_inner) = playlist_Enable; \
((p_symbols)->playlist_ItemToNode_inner) = playlist_ItemToNode; \
((p_symbols)->playlist_LockItemToNode_inner) = playlist_LockItemToNode; \
((p_symbols)->playlist_Replace_inner) = playlist_Replace; \
((p_symbols)->playlist_LockReplace_inner) = playlist_LockReplace; \
((p_symbols)->playlist_ItemGetById_inner) = playlist_ItemGetById; \
((p_symbols)->playlist_LockItemGetById_inner) = playlist_LockItemGetById; \
((p_symbols)->playlist_ItemGetByPos_inner) = playlist_ItemGetByPos; \
((p_symbols)->playlist_LockItemGetByPos_inner) = playlist_LockItemGetByPos; \
((p_symbols)->playlist_ItemGetByInput_inner) = playlist_ItemGetByInput; \
((p_symbols)->playlist_LockItemGetByInput_inner) = playlist_LockItemGetByInput; \
((p_symbols)->playlist_GetPositionById_inner) = playlist_GetPositionById; \
((p_symbols)->playlist_ItemAddOption_inner) = playlist_ItemAddOption; \
((p_symbols)->playlist_Sort_inner) = playlist_Sort; \
((p_symbols)->playlist_Move_inner) = playlist_Move; \
((p_symbols)->playlist_NodeGroup_inner) = playlist_NodeGroup; \
((p_symbols)->playlist_NodeSort_inner) = playlist_NodeSort; \
((p_symbols)->playlist_RecursiveNodeSort_inner) = playlist_RecursiveNodeSort; \
((p_symbols)->playlist_Import_inner) = playlist_Import; \
((p_symbols)->playlist_Export_inner) = playlist_Export; \
((p_symbols)->__spu_Create_inner) = __spu_Create; \
((p_symbols)->spu_Init_inner) = spu_Init; \
((p_symbols)->spu_Destroy_inner) = spu_Destroy; \
((p_symbols)->spu_CreateSubpicture_inner) = spu_CreateSubpicture; \
((p_symbols)->spu_DestroySubpicture_inner) = spu_DestroySubpicture; \
((p_symbols)->spu_DisplaySubpicture_inner) = spu_DisplaySubpicture; \
((p_symbols)->__spu_CreateRegion_inner) = __spu_CreateRegion; \
((p_symbols)->__spu_MakeRegion_inner) = __spu_MakeRegion; \
((p_symbols)->__spu_DestroyRegion_inner) = __spu_DestroyRegion; \
((p_symbols)->spu_SortSubpictures_inner) = spu_SortSubpictures; \
((p_symbols)->spu_RenderSubpictures_inner) = spu_RenderSubpictures; \
((p_symbols)->stream_ReadLine_inner) = stream_ReadLine; \
((p_symbols)->__stream_DemuxNew_inner) = __stream_DemuxNew; \
((p_symbols)->stream_DemuxSend_inner) = stream_DemuxSend; \
((p_symbols)->stream_DemuxDelete_inner) = stream_DemuxDelete; \
((p_symbols)->__stream_MemoryNew_inner) = __stream_MemoryNew; \
((p_symbols)->__stream_UrlNew_inner) = __stream_UrlNew; \
((p_symbols)->__vlc_threads_init_inner) = __vlc_threads_init; \
((p_symbols)->__vlc_threads_end_inner) = __vlc_threads_end; \
((p_symbols)->__vlc_mutex_init_inner) = __vlc_mutex_init; \
((p_symbols)->__vlc_mutex_destroy_inner) = __vlc_mutex_destroy; \
((p_symbols)->__vlc_cond_init_inner) = __vlc_cond_init; \
((p_symbols)->__vlc_cond_destroy_inner) = __vlc_cond_destroy; \
((p_symbols)->__vlc_thread_create_inner) = __vlc_thread_create; \
((p_symbols)->__vlc_thread_set_priority_inner) = __vlc_thread_set_priority; \
((p_symbols)->__vlc_thread_ready_inner) = __vlc_thread_ready; \
((p_symbols)->__vlc_thread_join_inner) = __vlc_thread_join; \
((p_symbols)->__vout_CopyPicture_inner) = __vout_CopyPicture; \
((p_symbols)->__vout_InitPicture_inner) = __vout_InitPicture; \
((p_symbols)->__vout_AllocatePicture_inner) = __vout_AllocatePicture; \
((p_symbols)->__vlm_New_inner) = __vlm_New; \
((p_symbols)->vlm_Delete_inner) = vlm_Delete; \
((p_symbols)->vlm_ExecuteCommand_inner) = vlm_ExecuteCommand; \
((p_symbols)->vlm_MessageDelete_inner) = vlm_MessageDelete; \
((p_symbols)->vlm_MediaNew_inner) = vlm_MediaNew; \
((p_symbols)->vlm_MediaDelete_inner) = vlm_MediaDelete; \
((p_symbols)->vlm_MediaSetup_inner) = vlm_MediaSetup; \
((p_symbols)->vlm_MediaControl_inner) = vlm_MediaControl; \
((p_symbols)->vlm_ScheduleNew_inner) = vlm_ScheduleNew; \
((p_symbols)->vlm_ScheduleDelete_inner) = vlm_ScheduleDelete; \
((p_symbols)->vlm_ScheduleSetup_inner) = vlm_ScheduleSetup; \
((p_symbols)->vlm_MediaVodControl_inner) = vlm_MediaVodControl; \
((p_symbols)->vlm_Save_inner) = vlm_Save; \
((p_symbols)->vlm_Load_inner) = vlm_Load; \
((p_symbols)->__xml_Create_inner) = __xml_Create; \
((p_symbols)->xml_Delete_inner) = xml_Delete; \
((p_symbols)->__vout_SynchroInit_inner) = __vout_SynchroInit; \
((p_symbols)->vout_SynchroRelease_inner) = vout_SynchroRelease; \
((p_symbols)->vout_SynchroReset_inner) = vout_SynchroReset; \
((p_symbols)->vout_SynchroChoose_inner) = vout_SynchroChoose; \
((p_symbols)->vout_SynchroTrash_inner) = vout_SynchroTrash; \
((p_symbols)->vout_SynchroDecode_inner) = vout_SynchroDecode; \
((p_symbols)->vout_SynchroEnd_inner) = vout_SynchroEnd; \
((p_symbols)->vout_SynchroDate_inner) = vout_SynchroDate; \
((p_symbols)->vout_SynchroNewPicture_inner) = vout_SynchroNewPicture; \
((p_symbols)->vlc_getaddrinfo_inner) = vlc_getaddrinfo; \
((p_symbols)->vlc_getnameinfo_inner) = vlc_getnameinfo; \
((p_symbols)->InitMD5_inner) = InitMD5; \
((p_symbols)->EndMD5_inner) = EndMD5; \
((p_symbols)->vlc_freeaddrinfo_inner) = vlc_freeaddrinfo; \
((p_symbols)->AddMD5_inner) = AddMD5; \
((p_symbols)->vlc_gai_strerror_inner) = vlc_gai_strerror; \
((p_symbols)->net_ListenClose_inner) = net_ListenClose; \
((p_symbols)->DigestMD5_inner) = DigestMD5; \
(p_symbols)->net_ConvertIPv4_deprecated = NULL; \
# endif /* __PLUGIN__ */
#endif /* __VLC_SYMBOLS_H */
DIST_SUBDIRS = interface playlist input audio_output video_output stream_output misc DIST_SUBDIRS = interface playlist input audio_output video_output stream_output misc
EXTRA_DIST = misc/modules_builtin.h.in misc/modules_plugin.h.in EXTRA_DIST = misc/modules_builtin.h.in
...@@ -107,10 +107,6 @@ ...@@ -107,10 +107,6 @@
#include "vlc_image.h" #include "vlc_image.h"
#ifdef HAVE_DYNAMIC_PLUGINS
# include "modules_plugin.h"
#endif
#if defined( _MSC_VER ) && defined( UNDER_CE ) #if defined( _MSC_VER ) && defined( UNDER_CE )
# include "modules_builtin_evc.h" # include "modules_builtin_evc.h"
#elif defined( _MSC_VER ) #elif defined( _MSC_VER )
......
/*****************************************************************************
* modules_plugin.h : Plugin management functions used by the core application.
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id$
*
* 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.
*****************************************************************************/
/*****************************************************************************
* STORE_SYMBOLS: store known symbols into p_symbols for plugin access.
*****************************************************************************/
...@@ -403,44 +403,8 @@ then ...@@ -403,44 +403,8 @@ then
if test -z "${builddir}"; then if test -z "${builddir}"; then
builddir="`sed -ne 's/^top_builddir *= *//p' < Makefile`" builddir="`sed -ne 's/^top_builddir *= *//p' < Makefile`"
fi fi
mkdir -p "${builddir}/include"
LIBVLC_HEADERS=`getfiles HEADERS_include`
BUILTINS=`sed -ne 's/.*builtins *= *" *\([^"]*\)".*/\1/p' vlc-config` BUILTINS=`sed -ne 's/.*builtins *= *" *\([^"]*\)".*/\1/p' vlc-config`
file="${builddir}/include/vlc_symbols.h"
rm -f ${file}.in
echo '/* DO NOT EDIT THIS FILE! See Makefile.am */' >> ${file}.in
echo 'struct module_symbols_t {' >> ${file}.in
cat ${LIBVLC_HEADERS} | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/ \1 (* \2_inner) \3;/' >> ${file}.in
echo '};' >> ${file}.in
echo '#ifdef __PLUGIN__' >> ${file}.in
cat ${LIBVLC_HEADERS} | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/# define \2 p_symbols->\2_inner/' >> ${file}.in
echo '#endif /* __PLUGIN__ */' >> ${file}.in
if diff >/dev/null 2>&1 ${file} ${file}.in
then
rm -f ${file}.in
else
echo "creating new ${file}"
mv -f ${file}.in ${file}
fi
file="${builddir}/src/misc/modules_plugin.h"
rm -f ${file}.tmp
sed -e 's#.*\$[I][d]:.*# * Automatically generated from '${file}'.in by bootstrap#' < ${srcdir}/src/misc/modules_plugin.h.in > ${file}.tmp
echo '#define STORE_SYMBOLS( p_symbols ) \' >> ${file}.tmp
cat ${LIBVLC_HEADERS} | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/ (p_symbols)->\2_inner = \2; \\/' >> ${file}.tmp
echo '' >> ${file}.tmp
if diff >/dev/null 2>&1 ${file} ${file}.tmp
then
rm -f ${file}.tmp
else
echo "creating new ${file}"
mv -f ${file}.tmp ${file}
fi
file="${builddir}/src/misc/modules_builtin.h" file="${builddir}/src/misc/modules_builtin.h"
rm -f ${file}.tmp && cp ${srcdir}/src/misc/modules_builtin.h.in ${file}.tmp rm -f ${file}.tmp && cp ${srcdir}/src/misc/modules_builtin.h.in ${file}.tmp
......
#!/usr/bin/perl
#*****************************************************************************
#* vlc-api.pl: VLC API maintenance script
#*****************************************************************************
#* Copyright (C) 2005 VideoLAN
#* $Id$
#*
#* Authors: Rémi Denis-Courmont <rem # videolan.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.
#*****************************************************************************/
use strict;
#
# Reads to-be exported APIs
#
my %new_APIs;
while (<STDIN>)
{
if (/VLC_EXPORT\(\s*(\w.*\S)\s*,\s*(\w*)\s*,\s*\(\s*(\w.*\S)\s*\)\s*\)[^)]*$/)
{
$new_APIs{$2} = [ ( $1, $3 ) ];
}
}
#
# Write header's header
#
open my $new_sym, '> include/vlc_symbols.h.new' or die "$!";
print { $new_sym }
"/*\n".
" * This file is automatically generated. DO NOT EDIT!\n".
" * You can force an update with \"make stamp-api\".\n".
" */\n".
"\n".
"#ifndef __VLC_SYMBOLS_H\n".
"# define __VLC_SYMBOLS_H\n".
"\n".
"/*\n".
" * This is the big VLC API structure for plugins :\n".
" * Changing its layout breaks plugin's binary compatibility,\n".
" * so DO NOT DO THAT.\n".
" * In case of conflict with SVN, add your uncommited APIs\n".
" * at the *end* of the structure so they don't mess the other's\n".
" * offset in the structure.\n".
" */\n".
"struct module_symbols_t\n".
"{\n";
my $changes = 0;
#
# Compares new APIs with currently exported APIs
#
my @API;
my @deprecated_API;
open my $oldfd, '< include/vlc_symbols.h';
while (<$oldfd>)
{
if (/^ void \*(\w*)_deprecated;$/)
{
if (defined $new_APIs{$2})
{
print "[info] $2 was RESTORED!\n";
print { $new_sym }
" ".$new_APIs{$1}[0]." (*$1_inner) (".$new_APIs{$1}[1].");\n";
delete $new_APIs{$1};
push (@API, $1);
$changes++;
}
else
{
print { $new_sym } $_;
push (@deprecated_API, $1);
}
}
elsif (/^\s*(\w.*\S)\s*\(\*\s*(\w*)_inner\)\s*\(\s*(\w.*\S)\s*\)\s*;\s*$/)
{
if (!defined $new_APIs{$2})
{
print "[warn] $2 was REMOVED!\n";
print { $new_sym } " void *$2_deprecated;\n";
push (@deprecated_API, $2);
$changes++;
}
elsif (($new_APIs{$2}[0] ne $1)
|| ($new_APIs{$2}[1] ne $3))
{
print
"[warn] $2 was CHANGED!\n".
" Old argument(s) : \"$3\"\n".
" New argument(s) : \"".$new_APIs{$2}[1]."\"\n".
" Old return type : \"$1\"\n".
" New return type : \"".$new_APIs{$2}[0]."\"\n";
print { $new_sym }
" ".$new_APIs{$2}[0]." (*$2_inner) (".$new_APIs{$2}[1].");\n";
delete $new_APIs{$2};
push (@API, $2);
$changes++;
}
else
{
print { $new_sym } " $1 (*$2_inner) ($3);\n";
push (@API, $2);
delete $new_APIs{$2};
}
}
}
close $oldfd;
#
# Adds brand-new APIs
#
foreach (keys %new_APIs)
{
print "[info] $_ was ADDED!\n";
print { $new_sym }
" ".$new_APIs{$_}[0]." (*${_}_inner) (".$new_APIs{$_}[1].");\n";
push (@API, $_);
$changes++;
}
#
# Writes #defines
#
print { $new_sym }
"};\n".
"# if defined (__PLUGIN__)\n";
foreach (@API)
{
print { $new_sym } "# define $_ (p_symbols)->${_}_inner\n";
}
print { $new_sym }
"# elif defined (HAVE_DYNAMIC_PLUGINS) && !defined (__BUILTIN__)\n".
"/******************************************************************\n".
" * STORE_SYMBOLS: store VLC APIs into p_symbols for plugin access.\n".
" ******************************************************************/\n".
"# define STORE_SYMBOLS( p_symbols ) \\\n";
foreach (@API)
{
print { $new_sym } " ((p_symbols)->${_}_inner) = $_; \\\n";
}
foreach (@deprecated_API)
{
print { $new_sym } " (p_symbols)->${_}_deprecated = NULL; \\\n";
}
print { $new_sym }
"\n".
"# endif /* __PLUGIN__ */\n".
"#endif /* __VLC_SYMBOLS_H */\n";
close $new_sym;
#
# Replace headers if needed
#
if ($changes != 0)
{
rename 'include/vlc_symbols.h.new', 'include/vlc_symbols.h';
print "$changes API(s) changed.\n";
}
else
{
unlink 'include/vlc_symbols.h.new';
}
...@@ -85,7 +85,7 @@ if test "${top_builddir}" != ""; then ...@@ -85,7 +85,7 @@ if test "${top_builddir}" != ""; then
elif test "${TOP_BUILDDIR}" != ""; then elif test "${TOP_BUILDDIR}" != ""; then
top_builddir="${TOP_BUILDDIR}/" top_builddir="${TOP_BUILDDIR}/"
fi fi
includes="${includes} -I${top_builddir}include" includes="${includes}"
cppflags="${includes}" cppflags="${includes}"
libs="-L@libdir@" libs="-L@libdir@"
module="" module=""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment