]> git.sesse.net Git - vlc/commitdiff
Add pf_control to access_output
authorRémi Denis-Courmont <rem@videolan.org>
Sat, 10 Feb 2007 14:43:45 +0000 (14:43 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Sat, 10 Feb 2007 14:43:45 +0000 (14:43 +0000)
include/vlc_sout.h
src/stream_output/stream_output.c

index 9bd385bbf1c62da33506b88ead3315c593491a43..74926ea01d4372400b62ef17cb5e476fd152d7d3 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * stream_output.h : stream output module
  *****************************************************************************
- * Copyright (C) 2002-2005 the VideoLAN team
+ * Copyright (C) 2002-2007 the VideoLAN team
  * $Id$
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
@@ -69,11 +69,7 @@ struct sout_access_out_t
     VLC_COMMON_MEMBERS
 
     module_t                *p_module;
-
-    sout_instance_t         *p_sout;
-
     char                    *psz_access;
-    config_chain_t              *p_cfg;
 
     int                      i_writes;
     /** Local counter reset each time it is transferred to stats */
@@ -84,6 +80,10 @@ struct sout_access_out_t
     int                     (*pf_seek)( sout_access_out_t *, off_t );
     int                     (*pf_read)( sout_access_out_t *, block_t * );
     int                     (*pf_write)( sout_access_out_t *, block_t * );
+    int                     (*pf_control)( sout_access_out_t *, int, va_list);
+
+    config_chain_t              *p_cfg;
+    sout_instance_t         *p_sout;
 };
 
 VLC_EXPORT( sout_access_out_t *,sout_AccessOutNew, ( sout_instance_t *, char *psz_access, char *psz_name ) );
@@ -91,6 +91,7 @@ VLC_EXPORT( void,               sout_AccessOutDelete, ( sout_access_out_t * ) );
 VLC_EXPORT( int,                sout_AccessOutSeek,   ( sout_access_out_t *, off_t ) );
 VLC_EXPORT( int,                sout_AccessOutRead,   ( sout_access_out_t *, block_t * ) );
 VLC_EXPORT( int,                sout_AccessOutWrite,  ( sout_access_out_t *, block_t * ) );
+VLC_EXPORT( int,                sout_AccessOutControl,( sout_access_out_t *, int, va_list ) );
 
 /** Muxer structure */
 struct  sout_mux_t
index b76aa56653d00da71289985ad7b730cfba370af6..c878b22ae74a614cb646904a435a905f3f279a0e 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * stream_output.c : stream output module
  *****************************************************************************
- * Copyright (C) 2002-2004 the VideoLAN team
+ * Copyright (C) 2002-2007 the VideoLAN team
  * $Id$
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
@@ -299,6 +299,7 @@ sout_access_out_t *sout_AccessOutNew( sout_instance_t *p_sout,
     p_access->pf_seek    = NULL;
     p_access->pf_read    = NULL;
     p_access->pf_write   = NULL;
+    p_access->pf_control = NULL;
     p_access->p_module   = NULL;
 
     p_access->i_writes = 0;
@@ -385,6 +386,15 @@ int sout_AccessOutWrite( sout_access_out_t *p_access, block_t *p_buffer )
     return p_access->pf_write( p_access, p_buffer );
 }
 
+/**
+ * sout_AccessOutControl
+ */
+int sout_AccessOutControl (sout_access_out_t *access, int query, va_list args)
+{
+    return (access->pf_control) ? access->pf_control (access, query, args)
+                                : VLC_EGENERIC;
+}
+
 /*****************************************************************************
  * sout_MuxNew: create a new mux
  *****************************************************************************/