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: Jean-Baptiste Kempf's avatarJean-Baptiste Kempf <jb@videolan.org>
parent 4371ecfc
......@@ -101,7 +101,7 @@ enum stream_query_e
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 */
STREAM_UPDATE_SIZE,
......@@ -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.
**/
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 )
s->pf_read = Read;
s->pf_peek = Peek;
s->pf_control = Control;
stream_FilterSetDefaultReadDir( s );
return VLC_SUCCESS;
}
......
......@@ -127,3 +127,11 @@ static void StreamDelete( stream_t *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