[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