+ * input_area_t
+ *****************************************************************************
+ * Attributes for current area (title for DVD)
+ *****************************************************************************/
+struct input_area_t
+{
+ /* selected area attributes */
+ unsigned int i_id; /* identificator for area */
+ off_t i_start; /* start offset of area */
+ off_t i_size; /* total size of the area
+ * (in arbitrary units) */
+
+ /* navigation parameters */
+ off_t i_tell; /* actual location in the area
+ * (in arbitrary units) */
+ off_t i_seek; /* next requested location
+ * (changed by the interface thread */
+
+ /* area subdivision */
+ unsigned int i_part_nb; /* number of parts (chapter for DVD)*/
+ unsigned int i_part; /* currently selected part */
+
+
+ /* offset to plugin related data */
+ off_t i_plugin_data;
+};
+
+/**
+ * \brief A list of info items.
+ *
+ * Composes a linked list of name/value pairs intended to inform the
+ * user about the current stream
+ * \see input_AddInfo
+ */
+struct input_info_t {
+ /**
+ * Name of this item
+ */
+ char * psz_name;
+
+ /**
+ * Value of this item
+ */
+ char * psz_value;
+
+ /**
+ * Pointer to next item in list, or NULL it at end of list
+ */
+ input_info_t * p_next;
+};
+
+/**
+ * \brief A list of info categories.
+ *
+ * Composes a NULL terminated linked list of categories in which to
+ * place info about the stream.
+ *
+ * \see input_InfoCategory
+ */
+struct input_info_category_t {
+ /**
+ * The name of this category
+ */
+ char * psz_name;
+
+ /**
+ * first element of a linked list containing info items
+ */
+ input_info_t * p_info;
+
+ /**
+ * Pointer to next element in this list, or NULL if at end of list
+ */
+ input_info_category_t * p_next;
+};
+
+/*****************************************************************************
+* stream_descriptor_t