From 575c056a1c46f037ab33366b4999eb8eb1a96cd5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Thu, 2 Jun 2005 12:47:30 +0000 Subject: [PATCH] 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. --- Makefile.am | 37 +- include/vlc_symbols.h | 1101 ++++++++++++++++++++++++++++++++++ src/Makefile.am | 2 +- src/misc/modules.c | 4 - src/misc/modules_plugin.h.in | 26 - toolbox | 36 -- vlc-api.pl | 184 ++++++ vlc-config.in.in | 2 +- 8 files changed, 1295 insertions(+), 97 deletions(-) create mode 100644 include/vlc_symbols.h delete mode 100644 src/misc/modules_plugin.h.in create mode 100755 vlc-api.pl diff --git a/Makefile.am b/Makefile.am index 521c08109f..691e54863b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,6 +23,7 @@ EXTRA_DIST = \ bootstrap \ src/extras/COPYING \ toolbox \ + vlc-api.pl \ vlc-config.in.in \ vlc.spec \ vlc.spec.mdk \ @@ -45,9 +46,7 @@ AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects BUILT_SOURCES += \ stamp-api \ - include/vlc_symbols.h \ src/misc/modules_builtin.h \ - src/misc/modules_plugin.h \ $(NULL) pkgincludedir = $(includedir)/vlc @@ -63,7 +62,7 @@ dist_pkginclude_HEADERS = \ include/vlc/control.h \ $(NULL) -noinst_HEADERS = $(HEADERS_include) $(HEADERS_include_built) +noinst_HEADERS = $(HEADERS_include) HEADERS_include = \ include/aout_internal.h \ @@ -114,6 +113,7 @@ HEADERS_include = \ include/vlc_playlist.h \ include/vlc_spu.h \ include/vlc_stream.h \ + include/vlc_symbols.h \ include/vlc_threads_funcs.h \ include/vlc_threads.h \ include/vlc_video.h \ @@ -124,32 +124,12 @@ HEADERS_include = \ include/win32_specific.h \ $(NULL) -HEADERS_include_built = \ - 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 +src/misc/modules_builtin.h: Makefile src/misc/modules_builtin.h.in vlc-config srcdir=$(srcdir) $(srcdir)/toolbox --update-includes + touch $@ # These dependencies are mandatory -$(SOURCES): include/vlc_symbols.h -$(SOURCES_libvlc): src/misc/modules_plugin.h src/misc/modules_builtin.h $(LIB_intl) +$(SOURCES_libvlc): src/misc/modules_builtin.h $(LIB_intl) ############################################################################### # Optional libintl - FIXME, bad dependencies @@ -285,7 +265,6 @@ CLEANFILES = $(BUILT_SOURCES) lib_LIBRARIES = lib/libvlc.a $(LIBRARIES_libvlc_pic) 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_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc` lib_libvlc_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc` @@ -939,8 +918,8 @@ stamp-builtin: FORCE done @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 - srcdir=$(srcdir) $(srcdir)/toolbox --update-includes +stamp-api: Makefile.in $(HEADERS_include) vlc-config vlc-api.pl src/misc/modules_builtin.h.in + cd $(srcdir) && cat $(HEADERS_include) | perl ./vlc-api.pl touch stamp-api ############################################################################### diff --git a/include/vlc_symbols.h b/include/vlc_symbols.h new file mode 100644 index 0000000000..06e9d3ecc0 --- /dev/null +++ b/include/vlc_symbols.h @@ -0,0 +1,1101 @@ +/* + * 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 */ diff --git a/src/Makefile.am b/src/Makefile.am index 8db19db3f2..c614c86631 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,2 +1,2 @@ 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 diff --git a/src/misc/modules.c b/src/misc/modules.c index ed11e4f5af..e292677502 100644 --- a/src/misc/modules.c +++ b/src/misc/modules.c @@ -107,10 +107,6 @@ #include "vlc_image.h" -#ifdef HAVE_DYNAMIC_PLUGINS -# include "modules_plugin.h" -#endif - #if defined( _MSC_VER ) && defined( UNDER_CE ) # include "modules_builtin_evc.h" #elif defined( _MSC_VER ) diff --git a/src/misc/modules_plugin.h.in b/src/misc/modules_plugin.h.in deleted file mode 100644 index 563569e0fc..0000000000 --- a/src/misc/modules_plugin.h.in +++ /dev/null @@ -1,26 +0,0 @@ -/***************************************************************************** - * modules_plugin.h : Plugin management functions used by the core application. - ***************************************************************************** - * Copyright (C) 2001 VideoLAN - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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. - *****************************************************************************/ diff --git a/toolbox b/toolbox index 9adb9a83e3..8658372b9f 100755 --- a/toolbox +++ b/toolbox @@ -403,44 +403,8 @@ then if test -z "${builddir}"; then builddir="`sed -ne 's/^top_builddir *= *//p' < Makefile`" fi - mkdir -p "${builddir}/include" - - LIBVLC_HEADERS=`getfiles HEADERS_include` 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" rm -f ${file}.tmp && cp ${srcdir}/src/misc/modules_builtin.h.in ${file}.tmp diff --git a/vlc-api.pl b/vlc-api.pl new file mode 100755 index 0000000000..87082403aa --- /dev/null +++ b/vlc-api.pl @@ -0,0 +1,184 @@ +#!/usr/bin/perl +#***************************************************************************** +#* vlc-api.pl: VLC API maintenance script +#***************************************************************************** +#* Copyright (C) 2005 VideoLAN +#* $Id$ +#* +#* Authors: Rémi Denis-Courmont +#* +#* 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 () +{ + 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'; +} diff --git a/vlc-config.in.in b/vlc-config.in.in index 95e0b369ef..658c893c6a 100644 --- a/vlc-config.in.in +++ b/vlc-config.in.in @@ -85,7 +85,7 @@ if test "${top_builddir}" != ""; then elif test "${TOP_BUILDDIR}" != ""; then top_builddir="${TOP_BUILDDIR}/" fi -includes="${includes} -I${top_builddir}include" +includes="${includes}" cppflags="${includes}" libs="-L@libdir@" module="" -- 2.39.2