vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri Jan 18 21:30:52 2019 +0200| [0ea1fd7f164eb80b59a2e030506bbb6593a8a00c] | committer: Rémi Denis-Courmont
aout: always create visualization callbacks This provides bug compatibility with the SDI stream output and, on error, the transcode stream output, which were incorrectly passing a non-NULL first parameter to aout_FiltersDelete(). > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0ea1fd7f164eb80b59a2e030506bbb6593a8a00c --- modules/stream_out/transcode/audio.c | 2 +- src/audio_output/filters.c | 25 ++++++++----------------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/modules/stream_out/transcode/audio.c b/modules/stream_out/transcode/audio.c index 7b3f666102..95f22a6208 100644 --- a/modules/stream_out/transcode/audio.c +++ b/modules/stream_out/transcode/audio.c @@ -218,7 +218,7 @@ void transcode_audio_clean( sout_stream_t *p_stream, sout_stream_id_sys_t *id ) /* Close filters */ if( id->p_af_chain != NULL ) - aout_FiltersDelete( (vlc_object_t *)NULL, id->p_af_chain ); + aout_FiltersDelete( p_stream, id->p_af_chain ); } static bool transcode_audio_format_IsSimilar( const audio_format_t *a, diff --git a/src/audio_output/filters.c b/src/audio_output/filters.c index 9127c99f15..ce21c477a4 100644 --- a/src/audio_output/filters.c +++ b/src/audio_output/filters.c @@ -517,8 +517,7 @@ aout_filters_t *aout_FiltersNew (vlc_object_t *obj, audio_sample_format_t output_format = *outfmt; /* Callbacks (before reading values and also before return statement) */ - if (request_vout != NULL) - var_AddCallback (obj, "visual", VisualizationCallback, NULL); + var_AddCallback (obj, "visual", VisualizationCallback, NULL); if (!AOUT_FMT_LINEAR(outfmt)) { /* Non-linear output: just convert formats, no filters/visu */ @@ -617,14 +616,11 @@ aout_filters_t *aout_FiltersNew (vlc_object_t *obj, free (str); } - if (request_vout != NULL) - { - char *visual = var_InheritString (obj, "audio-visual"); - if (visual != NULL && strcasecmp (visual, "none")) - AppendFilter(obj, "visualization", visual, filters, - &input_format, &output_format, NULL); - free (visual); - } + char *visual = var_InheritString(obj, "audio-visual"); + if (visual != NULL && strcasecmp(visual, "none")) + AppendFilter(obj, "visualization", visual, filters, + &input_format, &output_format, NULL); + free(visual); /* convert to the output format (minus resampling) if necessary */ output_format.i_rate = input_format.i_rate; @@ -653,8 +649,7 @@ aout_filters_t *aout_FiltersNew (vlc_object_t *obj, error: aout_FiltersPipelineDestroy (filters->tab, filters->count); - if (request_vout != NULL) - var_DelCallback (obj, "visual", VisualizationCallback, NULL); + var_DelCallback(obj, "visual", VisualizationCallback, NULL); free (filters); return NULL; } @@ -664,17 +659,13 @@ error: * Destroys a chain of audio filters. * \param obj object used with aout_FiltersNew() * \param filters chain to be destroyed - * \bug - * obj must be NULL iff request_vout was NULL in aout_FiltersNew() - * (this implies obj is an audio_output_t pointer if non NULL). */ void aout_FiltersDelete (vlc_object_t *obj, aout_filters_t *filters) { if (filters->resampler != NULL) aout_FiltersPipelineDestroy (&filters->resampler, 1); aout_FiltersPipelineDestroy (filters->tab, filters->count); - if (obj != NULL) - var_DelCallback (obj, "visual", VisualizationCallback, NULL); + var_DelCallback(obj, "visual", VisualizationCallback, NULL); free (filters); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
