Commit 8eb065ff authored by Julien 'Lta' BALLET's avatar Julien 'Lta' BALLET Committed by Jean-Baptiste Kempf

Add a default implementation for pf_readdir for StreamFilter. Use it in stream_filter/record.c

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 4371ecfc
...@@ -101,7 +101,7 @@ enum stream_query_e ...@@ -101,7 +101,7 @@ enum stream_query_e
STREAM_GET_SIZE, /**< arg1= uint64_t * res=cannot fail (0 if no sense)*/ STREAM_GET_SIZE, /**< arg1= uint64_t * res=cannot fail (0 if no sense)*/
/* You should update size of source if any and then update size /* You should update size of source if any and then update size
* FIXME find a way to avoid it */ * FIXME find a way to avoid it */
STREAM_UPDATE_SIZE, STREAM_UPDATE_SIZE,
...@@ -225,6 +225,19 @@ VLC_API stream_t * stream_UrlNew(vlc_object_t *p_this, const char *psz_url ); ...@@ -225,6 +225,19 @@ 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. * @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 ); VLC_API stream_t* stream_FilterNew( stream_t *p_source, const char *psz_stream_filter );
/**
* Default ReadDir implementation for stream Filter. This implementation just
* forward the pf_readdir call to the p_source stream.
*/
VLC_API int stream_FilterDefaultReadDir( stream_t *s, input_item_node_t *p_node );
/**
* Sets stream_FilterDefaultReadDir as the pf_readdir callback for this stream filter
*/
#define stream_FilterSetDefaultReadDir(p_stream) \
p_stream->pf_readdir = stream_FilterDefaultReadDir;
/** /**
* @} * @}
*/ */
......
...@@ -91,6 +91,7 @@ static int Open ( vlc_object_t *p_this ) ...@@ -91,6 +91,7 @@ static int Open ( vlc_object_t *p_this )
s->pf_read = Read; s->pf_read = Read;
s->pf_peek = Peek; s->pf_peek = Peek;
s->pf_control = Control; s->pf_control = Control;
stream_FilterSetDefaultReadDir( s );
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
...@@ -127,3 +127,11 @@ static void StreamDelete( stream_t *s ) ...@@ -127,3 +127,11 @@ static void StreamDelete( stream_t *s )
stream_CommonDelete( s ); stream_CommonDelete( s );
} }
int stream_FilterDefaultReadDir( stream_t *s, input_item_node_t *p_node )
{
if( s != NULL && s->p_source != NULL )
return stream_ReadDir( s->p_source, p_node );
else
return VLC_ENOITEM;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment