+/* Opaque definition for text reader context */
+typedef struct stream_text_t stream_text_t;
+
+/**
+ * stream_t definition
+ */
+
+struct stream_t
+{
+ VLC_COMMON_MEMBERS
+ bool b_error;
+
+ /* Module properties for stream filter */
+ module_t *p_module;
+
+ /* Real or virtual path (it can only be changed during stream_t opening) */
+ char *psz_path;
+
+ /* Stream source for stream filter */
+ stream_t *p_source;
+
+ /* */
+ int (*pf_read) ( stream_t *, void *p_read, unsigned int i_read );
+ int (*pf_peek) ( stream_t *, const uint8_t **pp_peek, unsigned int i_peek );
+ int (*pf_control)( stream_t *, int i_query, va_list );
+
+ /* */
+ void (*pf_destroy)( stream_t *);
+
+ /* Private data for module */
+ stream_sys_t *p_sys;
+
+ /* Text reader state */
+ stream_text_t *p_text;
+
+ /* Weak link to parent input */
+ input_thread_t *p_input;
+};
+