[vlc-devel] [PATCH 3/6] Add a default implementation for pf_readdir for StreamFilter. Use it in stream_filter/record.c

Julien 'Lta' BALLET elthariel at gmail.com
Fri Jun 20 19:53:05 CEST 2014


From: Julien 'Lta' BALLET <contact at lta.io>

---
 include/vlc_stream.h           |  7 +++++++
 modules/stream_filter/record.c |  1 +
 src/input/stream_filter.c      | 14 ++++++++++++++
 3 files changed, 22 insertions(+)

diff --git a/include/vlc_stream.h b/include/vlc_stream.h
index db247bc..88153ee 100644
--- a/include/vlc_stream.h
+++ b/include/vlc_stream.h
@@ -225,6 +225,13 @@ VLC_API stream_t * stream_UrlNew(vlc_object_t *p_this, const char *psz_url );
  * @return New stream to use, or NULL if the filter could not be added.
  **/
 VLC_API stream_t* stream_FilterNew( stream_t *p_source, const char *psz_stream_filter );
+
+/**
+ * This function sets the default ReadDir implementation for stream Filter. This
+ * implementation just forward the pf_readdir call to the p_source stream.
+ */
+VLC_API void stream_FilterSetDefaultReadDir( stream_t *s );
+
 /**
  * @}
  */
diff --git a/modules/stream_filter/record.c b/modules/stream_filter/record.c
index 538d506..8bcef68 100644
--- a/modules/stream_filter/record.c
+++ b/modules/stream_filter/record.c
@@ -91,6 +91,7 @@ static int Open ( vlc_object_t *p_this )
     s->pf_read = Read;
     s->pf_peek = Peek;
     s->pf_control = Control;
+    stream_FilterSetDefaultReadDir( s );
 
     return VLC_SUCCESS;
 }
diff --git a/src/input/stream_filter.c b/src/input/stream_filter.c
index adcfb58..9a969c5 100644
--- a/src/input/stream_filter.c
+++ b/src/input/stream_filter.c
@@ -127,3 +127,17 @@ static void StreamDelete( stream_t *s )
 
     stream_CommonDelete( s );
 }
+
+static int stream_FilterDefaultReadDir( stream_t *s, input_item_node_t *p_node )
+{
+    if( s != NULL )
+        return stream_ReadDir( s->p_source, p_node );
+    else
+        return VLC_ENOITEM;
+}
+
+VLC_API void stream_FilterSetDefaultReadDir( stream_t *s )
+{
+    if( s != NULL )
+        s->pf_readdir = stream_FilterDefaultReadDir;
+}
-- 
2.0.0




More information about the vlc-devel mailing list