]> git.sesse.net Git - vlc/blobdiff - include/vlc_demux.h
Fix spelling.
[vlc] / include / vlc_demux.h
index 11444e24ea47721c17c4c60e4c06f94baca3247a..38351b88dc3f99cce1abffdbec9e9b622005c592 100644 (file)
@@ -71,17 +71,24 @@ struct demux_t
         int          i_seekpoint;   /* idem, start from 0 */
     } info;
     demux_sys_t *p_sys;
+
+    /* Weak link to parent input */
+    input_thread_t *p_input;
 };
 
 
 /* demux_meta_t is returned by "meta reader" module to the demuxer */
-struct demux_meta_t
+typedef struct demux_meta_t
 {
+    VLC_COMMON_MEMBERS
+    demux_t *p_demux; /** FIXME: use stream_t instead? */
+    input_item_t *p_item; /***< the input item that is being read */
+
     vlc_meta_t *p_meta;                 /**< meta data */
 
     int i_attachments;                  /**< number of attachments */
     input_attachment_t **attachments;    /**< array of attachments */
-};
+} demux_meta_t;
 
 enum demux_query_e
 {
@@ -190,13 +197,19 @@ VLC_EXPORT( decoder_t *,demux_PacketizerNew, ( demux_t *p_demux, es_format_t *p_
  */
 VLC_EXPORT( void, demux_PacketizerDestroy, ( decoder_t *p_packetizer ) );
 
+/**
+ * This function will return the parent input of this demux.
+ * It is retained. Can return NULL.
+ */
+VLC_EXPORT( input_thread_t *, demux_GetParentInput, ( demux_t *p_demux ) );
+
 /* */
 #define DEMUX_INIT_COMMON() do {            \
     p_demux->pf_control = Control;          \
     p_demux->pf_demux = Demux;              \
-    p_demux->p_sys = malloc( sizeof( demux_sys_t ) ); \
+    p_demux->p_sys = calloc( 1, sizeof( demux_sys_t ) ); \
     if( !p_demux->p_sys ) return VLC_ENOMEM;\
-    memset( p_demux->p_sys, 0, sizeof( demux_sys_t ) ); } while(0)
+    } while(0)
 
 /**
  * @}