[vlc-devel] [PATCH] input: input_source_t doesn't need to be a vlc_object

Steve Lhomme robux4 at ycbcr.xyz
Wed Oct 17 11:40:26 CEST 2018


seems legit

On 17/10/2018 09:33, Thomas Guillem wrote:
> ---
>   src/input/input.c          | 31 +++++++++++++++----------------
>   src/input/input_internal.h |  2 --
>   2 files changed, 15 insertions(+), 18 deletions(-)
>
> diff --git a/src/input/input.c b/src/input/input.c
> index a21111ff32..cd8e34db44 100644
> --- a/src/input/input.c
> +++ b/src/input/input.c
> @@ -2456,20 +2456,20 @@ static void UpdateTitleListfromDemux( input_thread_t *p_input )
>   }
>   
>   static int
> -InputStreamHandleAnchor( input_source_t *source, stream_t **stream,
> -                         char const *anchor )
> +InputStreamHandleAnchor( input_thread_t *p_input, input_source_t *source,
> +                         stream_t **stream, char const *anchor )
>   {
>       char const* extra;
>       if( stream_extractor_AttachParsed( stream, anchor, &extra ) )
>       {
> -        msg_Err( source, "unable to attach stream-extractors for %s",
> +        msg_Err( p_input, "unable to attach stream-extractors for %s",
>               (*stream)->psz_url );
>   
>           return VLC_EGENERIC;
>       }
>   
>       if( vlc_stream_directory_Attach( stream, NULL ) )
> -        msg_Dbg( source, "attachment of directory-extractor failed for %s",
> +        msg_Dbg( p_input, "attachment of directory-extractor failed for %s",
>               (*stream)->psz_url );
>   
>       MRLSections( extra ? extra : "",
> @@ -2484,7 +2484,7 @@ static demux_t *InputDemuxNew( input_thread_t *p_input,
>                                  const char *psz_demux, const char *psz_anchor )
>   {
>       input_thread_private_t *priv = input_priv(p_input );
> -    vlc_object_t *obj = VLC_OBJECT(p_source);
> +    vlc_object_t *obj = VLC_OBJECT(p_input);
>   
>       /* create the underlying access stream */
>       stream_t *p_stream = stream_AccessNew( obj, p_input, priv->p_es_out,
> @@ -2504,7 +2504,7 @@ static demux_t *InputDemuxNew( input_thread_t *p_input,
>       }
>   
>       /* attach explicit stream filters to stream */
> -    char *psz_filters = var_InheritString( obj, "stream-filter" );
> +    char *psz_filters = var_InheritString( p_input, "stream-filter" );
>       if( psz_filters )
>       {
>           p_stream = stream_FilterChainNew( p_stream, psz_filters );
> @@ -2512,11 +2512,11 @@ static demux_t *InputDemuxNew( input_thread_t *p_input,
>       }
>   
>       /* handle anchors */
> -    if( InputStreamHandleAnchor( p_source, &p_stream, psz_anchor ) )
> +    if( InputStreamHandleAnchor( p_input, p_source, &p_stream, psz_anchor ) )
>           goto error;
>   
>       /* attach conditional record stream-filter */
> -    if( var_InheritBool( obj, "input-record-native" ) )
> +    if( var_InheritBool( p_input, "input-record-native" ) )
>           p_stream = stream_FilterChainNew( p_stream, "record" );
>   
>       /* create a regular demux with the access stream created */
> @@ -2542,8 +2542,7 @@ static input_source_t *InputSourceNew( input_thread_t *p_input,
>                                          bool b_in_can_fail )
>   {
>       input_thread_private_t *priv = input_priv(p_input);
> -    input_source_t *in = vlc_custom_create( p_input, sizeof( *in ),
> -                                            "input source" );
> +    input_source_t *in = calloc(1, sizeof(*in) );
>       if( unlikely(in == NULL) )
>           return NULL;
>   
> @@ -2555,7 +2554,7 @@ static input_source_t *InputSourceNew( input_thread_t *p_input,
>   
>       if( psz_dup == NULL )
>       {
> -        vlc_object_release( in );
> +        free( in );
>           return NULL;
>       }
>   
> @@ -2563,7 +2562,7 @@ static input_source_t *InputSourceNew( input_thread_t *p_input,
>       input_SplitMRL( &psz_access, &psz_demux, &psz_path, &psz_anchor, psz_dup );
>   
>       if( psz_demux == NULL || psz_demux[0] == '\0' )
> -        psz_demux = psz_demux_var = var_InheritString( in, "demux" );
> +        psz_demux = psz_demux_var = var_InheritString( p_input, "demux" );
>   
>       if( psz_forced_demux != NULL )
>           psz_demux = psz_forced_demux;
> @@ -2644,7 +2643,7 @@ static input_source_t *InputSourceNew( input_thread_t *p_input,
>               vlc_dialog_display_error( p_input, _("Your input can't be opened"),
>                                         _("VLC is unable to open the MRL '%s'."
>                                         " Check the log for details."), psz_mrl );
> -        vlc_object_release( in );
> +        free( in );
>           return NULL;
>       }
>   
> @@ -2666,7 +2665,7 @@ static input_source_t *InputSourceNew( input_thread_t *p_input,
>           if( in->p_demux == NULL )
>           {
>               msg_Err(p_input, "Failed to create demux filter");
> -            vlc_object_release( in );
> +            free( in );
>               return NULL;
>           }
>       }
> @@ -2784,7 +2783,7 @@ static void InputSourceDestroy( input_source_t *in )
>           TAB_CLEAN( in->i_title, in->title );
>       }
>   
> -    vlc_object_release( in );
> +    free( in );
>   }
>   
>   /*****************************************************************************
> @@ -2814,7 +2813,7 @@ static void InputSourceMeta( input_thread_t *p_input,
>           return;
>   
>       demux_meta_t *p_demux_meta =
> -        vlc_custom_create( p_source, sizeof( *p_demux_meta ), "demux meta" );
> +        vlc_custom_create( p_input, sizeof( *p_demux_meta ), "demux meta" );
>       if( unlikely(p_demux_meta == NULL) )
>           return;
>       p_demux_meta->p_item = input_priv(p_input)->p_item;
> diff --git a/src/input/input_internal.h b/src/input/input_internal.h
> index d1eaa2911e..bcc8f06a91 100644
> --- a/src/input/input_internal.h
> +++ b/src/input/input_internal.h
> @@ -46,8 +46,6 @@ struct input_stats;
>   /* input_source_t: gathers all information per input source */
>   typedef struct
>   {
> -    struct vlc_common_members obj;
> -
>       demux_t  *p_demux; /**< Demux object (most downstream) */
>   
>       /* Title infos for that input */
> -- 
> 2.19.1
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list