[vlc-commits] demux: use common stream helpers to instantiate
Rémi Denis-Courmont
git at videolan.org
Fri Mar 30 10:31:31 CEST 2018
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Mar 29 22:40:57 2018 +0300| [615b945fb664bc81684d6a59137988313139d8bc] | committer: Rémi Denis-Courmont
demux: use common stream helpers to instantiate
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=615b945fb664bc81684d6a59137988313139d8bc
---
src/input/demux.c | 35 +++++++++++------------------------
1 file changed, 11 insertions(+), 24 deletions(-)
diff --git a/src/input/demux.c b/src/input/demux.c
index 1b32703d1b..16e747aad9 100644
--- a/src/input/demux.c
+++ b/src/input/demux.c
@@ -146,12 +146,6 @@ demux_t *demux_New( vlc_object_t *p_obj, const char *psz_name,
psz_location, s, out, false );
}
-typedef struct demux_priv_t
-{
- demux_t demux;
- void (*destroy)(demux_t *);
-} demux_priv_t;
-
static void demux_DestroyDemux(demux_t *demux)
{
module_unneed(demux, demux->p_module);
@@ -207,11 +201,12 @@ demux_t *demux_NewAdvanced( vlc_object_t *p_obj, input_thread_t *p_parent_input,
const char *psz_location,
stream_t *s, es_out_t *out, bool b_preparsing )
{
- demux_priv_t *priv = vlc_custom_create(p_obj, sizeof (*priv), "demux");
- if (unlikely(priv == NULL))
- return NULL;
+ void (*destroy)(stream_t *) =
+ (s != NULL) ? demux_DestroyDemux : demux_DestroyAccessDemux;
+ demux_t *p_demux = vlc_stream_CommonNew(p_obj, destroy);
- demux_t *p_demux = &priv->demux;
+ if (unlikely(p_demux == NULL))
+ return NULL;
if( s != NULL && (!strcasecmp( psz_demux, "any" ) || !psz_demux[0]) )
{ /* Look up demux by mime-type for hard to detect formats */
@@ -249,7 +244,6 @@ demux_t *demux_NewAdvanced( vlc_object_t *p_obj, input_thread_t *p_parent_input,
p_demux->pf_demux = NULL;
p_demux->pf_control = NULL;
p_demux->p_sys = NULL;
- priv->destroy = s ? demux_DestroyDemux : demux_DestroyAccessDemux;
if( s != NULL )
{
@@ -278,14 +272,13 @@ demux_t *demux_NewAdvanced( vlc_object_t *p_obj, input_thread_t *p_parent_input,
if( p_demux->p_module == NULL )
{
free( p_demux->psz_filepath );
- free( p_demux->psz_url );
goto error;
}
return p_demux;
error:
free( p_demux->psz_name );
- vlc_object_release( p_demux );
+ stream_CommonDelete( p_demux );
return NULL;
}
@@ -294,11 +287,7 @@ error:
*****************************************************************************/
void demux_Delete( demux_t *p_demux )
{
- demux_priv_t *priv = (demux_priv_t *)p_demux;
-
- priv->destroy(p_demux);
- free( p_demux->psz_url );
- vlc_object_release( p_demux );
+ vlc_stream_Delete( p_demux );
}
#define static_control_match(foo) \
@@ -519,12 +508,11 @@ int demux_GetSeekpoint( demux_t *p_demux )
static demux_t *demux_FilterNew( demux_t *p_next, const char *p_name )
{
- demux_priv_t *priv = vlc_custom_create(p_next, sizeof (*priv), "demux_filter");
- if (unlikely(priv == NULL))
+ demux_t *p_demux = vlc_stream_CommonNew(VLC_OBJECT(p_next),
+ demux_DestroyDemuxFilter);
+ if (unlikely(p_demux == NULL))
return NULL;
- demux_t *p_demux = &priv->demux;
-
p_demux->p_next = p_next;
p_demux->p_input = NULL;
p_demux->p_sys = NULL;
@@ -533,7 +521,6 @@ static demux_t *demux_FilterNew( demux_t *p_next, const char *p_name )
p_demux->psz_location = NULL;
p_demux->psz_filepath = NULL;
p_demux->out = NULL;
- priv->destroy = demux_DestroyDemuxFilter;
p_demux->p_module =
module_need( p_demux, "demux_filter", p_name, p_name != NULL );
@@ -542,7 +529,7 @@ static demux_t *demux_FilterNew( demux_t *p_next, const char *p_name )
return p_demux;
error:
- vlc_object_release( p_demux );
+ stream_CommonDelete( p_demux );
return NULL;
}
More information about the vlc-commits
mailing list