-#ifndef PLUGIN
-void input_InitBank ( void );
-void input_EndBank ( void );
-
-struct input_thread_s * input_CreateThread ( struct playlist_item_s *,
- int *pi_status );
-void input_StopThread ( struct input_thread_s *, int *pi_status );
-void input_DestroyThread ( struct input_thread_s * );
-
-void input_SetStatus ( struct input_thread_s *, int );
-void input_Seek ( struct input_thread_s *, off_t );
-void input_DumpStream ( struct input_thread_s * );
-char * input_OffsetToTime ( struct input_thread_s *, char *, off_t );
-int input_ChangeES ( struct input_thread_s *,
- struct es_descriptor_s *, u8 );
-int input_ToggleES ( struct input_thread_s *,
- struct es_descriptor_s *, boolean_t );
-int input_ChangeArea ( struct input_thread_s *, struct input_area_s * );
-int input_ToggleGrayscale( struct input_thread_s * );
-int input_ToggleMute ( struct input_thread_s * );
-int input_SetSMP ( struct input_thread_s *, int );
-#else
-# define input_SetStatus p_symbols->input_SetStatus
-# define input_Seek p_symbols->input_Seek
-# define input_DumpStream p_symbols->input_DumpStream
-# define input_OffsetToTime p_symbols->input_OffsetToTime
-# define input_ChangeES p_symbols->input_ChangeES
-# define input_ToggleES p_symbols->input_ToggleES
-# define input_ChangeArea p_symbols->input_ChangeArea
-#endif
+#define input_CreateThread(a,b) __input_CreateThread(VLC_OBJECT(a),b)
+VLC_EXPORT( input_thread_t *, __input_CreateThread, ( vlc_object_t *, input_item_t * ) );
+VLC_EXPORT( void, input_StopThread, ( input_thread_t * ) );
+VLC_EXPORT( void, input_DestroyThread, ( input_thread_t * ) );
+
+#define input_SetStatus(a,b) __input_SetStatus(VLC_OBJECT(a),b)
+VLC_EXPORT( void, __input_SetStatus, ( vlc_object_t *, int ) );
+
+#define input_SetRate(a,b) __input_SetRate(VLC_OBJECT(a),b)
+VLC_EXPORT( void, __input_SetRate, ( vlc_object_t *, int ) );
+
+#define input_Seek(a,b,c) __input_Seek(VLC_OBJECT(a),b,c)
+VLC_EXPORT( void, __input_Seek, ( vlc_object_t *, off_t, int ) );
+
+#define input_Tell(a,b) __input_Tell(VLC_OBJECT(a),b)
+VLC_EXPORT( void, __input_Tell, ( vlc_object_t *, stream_position_t * ) );
+
+VLC_EXPORT( void, input_DumpStream, ( input_thread_t * ) );
+VLC_EXPORT( char *, input_OffsetToTime, ( input_thread_t *, char *, off_t ) );
+VLC_EXPORT( int, input_ToggleES, ( input_thread_t *, es_descriptor_t *, vlc_bool_t ) );
+VLC_EXPORT( int, input_ChangeArea, ( input_thread_t *, input_area_t * ) );
+VLC_EXPORT( int, input_ChangeProgram, ( input_thread_t *, uint16_t ) );
+
+int input_ToggleGrayscale( input_thread_t * );
+int input_ToggleMute ( input_thread_t * );