]> git.sesse.net Git - vlc/blobdiff - include/vlc_access.h
* modules/audio_output/directx.c: backport of directx audio changes (13374). Needs...
[vlc] / include / vlc_access.h
index de70f429756d23e29119b25d6d0254d95cfdd197..26dcac11acb95a1e5da1ff3a5c80d6f21e8a0f0d 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * vlc_access.h
  *****************************************************************************
- * Copyright (C) 1999-2004 VideoLAN
+ * Copyright (C) 1999-2004 the VideoLAN team
  * $Id$
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
@@ -54,7 +54,9 @@ enum access_query_e
 
     /* Special mode for access/demux communication
      * XXX: avoid to use it unless you can't */
-    ACCESS_SET_PRIVATE_ID_STATE,    /* arg1= vlc_bool_t b_selected, int i_private_data can fail */
+    ACCESS_SET_PRIVATE_ID_STATE,    /* arg1= int i_private_data, vlc_bool_t b_selected can fail */
+    ACCESS_SET_PRIVATE_ID_CA,    /* arg1= int i_program_number, uint16_t i_vpid, uint16_t i_apid1, uint16_t i_apid2, uint16_t i_apid3, uint8_t i_length, uint8_t *p_data */
+    ACCESS_GET_PRIVATE_ID_STATE     /* arg1=int i_private_data arg2=vlc_bool_t *  res=can fail */
 };
 
 struct access_t
@@ -68,6 +70,8 @@ struct access_t
     char        *psz_access;
     /* Access path/url/filename/.... */
     char        *psz_path;
+    /* Access source for access_filter (NULL for regular access) */
+    access_t    *p_source;
 
     /* Access can fill this entry to force a demuxer
      * XXX: fill it once you know for sure you will succed
@@ -99,16 +103,20 @@ struct access_t
 
         int          i_title;    /* idem, start from 0 (could be menu) */
         int          i_seekpoint;/* idem, start from 0 */
+
+        vlc_bool_t   b_prebuffered; /* Read only for input */ 
     } info;
     access_sys_t *p_sys;
 };
 
-#define access2_New( a, b, c, d ) __access2_New(VLC_OBJECT(a), b, c, d )
-VLC_EXPORT( access_t *, __access2_New,  ( vlc_object_t *p_obj, char *psz_access, char *psz_demux, char *psz_path ) );
+#define access2_New( a, b, c, d, e ) __access2_New(VLC_OBJECT(a), b, c, d, e )
+VLC_EXPORT( access_t *, __access2_New,  ( vlc_object_t *p_obj, char *psz_access, char *psz_demux, char *psz_path, vlc_bool_t b_quick ) );
+VLC_EXPORT( access_t *, access2_FilterNew, ( access_t *p_source, char *psz_access_filter ) );
 VLC_EXPORT( void,      access2_Delete, ( access_t * ) );
 
 static inline int access2_vaControl( access_t *p_access, int i_query, va_list args )
 {
+    if( !p_access ) return VLC_EGENERIC;
     return p_access->pf_control( p_access, i_query, args );
 }
 static inline int access2_Control( access_t *p_access, int i_query, ... )