+#include <vlc_charset.h>
+
+/*****************************************************************************
+ * Module descriptor
+ *****************************************************************************/
+static int Open ( vlc_object_t * );
+static void Close( vlc_object_t * );
+
+#define CACHING_TEXT N_("Caching value in ms")
+#define CACHING_LONGTEXT N_( \
+ "Caching value for files. This " \
+ "value should be set in milliseconds." )
+#define CAT_TEXT N_("Concatenate with additional files")
+#define CAT_LONGTEXT N_( \
+ "Play split files as if they were part of a unique file. " \
+ "You need to specify a comma-separated list of files." )
+
+vlc_module_begin();
+ set_description( _("File input") );
+ set_shortname( _("File") );
+ set_category( CAT_INPUT );
+ set_subcategory( SUBCAT_INPUT_ACCESS );
+ add_integer( "file-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT, VLC_TRUE );
+ add_obsolete_string( "file-cat" );
+ set_capability( "access2", 50 );
+ add_shortcut( "file" );
+ add_shortcut( "stream" );
+ add_shortcut( "kfir" );
+ set_callbacks( Open, Close );
+vlc_module_end();
+
+
+/*****************************************************************************
+ * Exported prototypes
+ *****************************************************************************/
+static int Seek( access_t *, int64_t );
+static int Read( access_t *, uint8_t *, int );
+static int Control( access_t *, int, va_list );
+
+static int open_file( access_t *, const char * );
+
+struct access_sys_t
+{
+ unsigned int i_nb_reads;
+ vlc_bool_t b_kfir;
+
+ int fd;
+
+ /* */
+ vlc_bool_t b_seekable;
+ vlc_bool_t b_pace_control;
+};
+