]> git.sesse.net Git - vlc/blobdiff - include/vlc_demux.h
Remove useless vlc_object parameter when creating an input item
[vlc] / include / vlc_demux.h
index e2858e8e2b6a5cd97d111af1637b0e0f18a4c1b7..248289b2c0ab5c82556ac06f1acaa533dd73d01d 100644 (file)
@@ -48,7 +48,8 @@ struct demux_t
     /* eg informative but needed (we can have access+demux) */
     char        *psz_access;
     char        *psz_demux;
-    char        *psz_path;
+    char        *psz_location;
+    char        *psz_file;
 
     /* input stream */
     stream_t    *s;     /* NULL in case of a access+demux in one */
@@ -71,17 +72,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
 {
@@ -153,22 +161,25 @@ enum demux_query_e
     DEMUX_CAN_SEEK,            /* arg1= bool*    can fail (assume false)*/
 };
 
-VLC_EXPORT( int,       demux_vaControlHelper, ( stream_t *, int64_t i_start, int64_t i_end, int64_t i_bitrate, int i_align, int i_query, va_list args ) );
+VLC_API int demux_vaControlHelper( stream_t *, int64_t i_start, int64_t i_end, int64_t i_bitrate, int i_align, int i_query, va_list args );
 
 /*************************************************************************
  * Miscellaneous helpers for demuxers
  *************************************************************************/
 
-LIBVLC_USED
+VLC_USED
 static inline bool demux_IsPathExtension( demux_t *p_demux, const char *psz_extension )
 {
-    const char *psz_ext = strrchr ( p_demux->psz_path, '.' );
+    if( !p_demux->psz_file )
+        return false;
+
+    const char *psz_ext = strrchr ( p_demux->psz_file, '.' );
     if( !psz_ext || strcasecmp( psz_ext, psz_extension ) )
         return false;
     return true;
 }
 
-LIBVLC_USED
+VLC_USED
 static inline bool demux_IsForced( demux_t *p_demux, const char *psz_name )
 {
    if( !p_demux->psz_demux || strcmp( p_demux->psz_demux, psz_name ) )
@@ -183,12 +194,18 @@ static inline bool demux_IsForced( demux_t *p_demux, const char *psz_name )
  * The provided es_format_t will be cleaned on error or by
  * demux_PacketizerDestroy.
  */
-VLC_EXPORT( decoder_t *,demux_PacketizerNew, ( demux_t *p_demux, es_format_t *p_fmt, const char *psz_msg ) );
+VLC_API decoder_t * demux_PacketizerNew( demux_t *p_demux, es_format_t *p_fmt, const char *psz_msg ) VLC_USED;
 
 /**
  * This function will destroy a packetizer create by demux_PacketizerNew.
  */
-VLC_EXPORT( void, demux_PacketizerDestroy, ( decoder_t *p_packetizer ) );
+VLC_API void demux_PacketizerDestroy( decoder_t *p_packetizer );
+
+/**
+ * This function will return the parent input of this demux.
+ * It is retained. Can return NULL.
+ */
+VLC_API input_thread_t * demux_GetParentInput( demux_t *p_demux ) VLC_USED;
 
 /* */
 #define DEMUX_INIT_COMMON() do {            \