[vlc-devel] [PATCH 1/5] goom: use a local picture pool to output pictures
Steve Lhomme
robux4 at ycbcr.xyz
Fri Aug 14 10:27:37 CEST 2020
This patchset comes on top of the 3 patches to remove the private pool.
On 2020-08-14 10:25, Steve Lhomme wrote:
> ---
> modules/visualization/goom.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/modules/visualization/goom.c b/modules/visualization/goom.c
> index fa8f2cc197a..dfdde6d6222 100644
> --- a/modules/visualization/goom.c
> +++ b/modules/visualization/goom.c
> @@ -34,6 +34,7 @@
> #include <vlc_aout.h> /* aout_FormatNbChannels, AOUT_FMTS_SIMILAR */
> #include <vlc_vout.h> /* vout_*Picture, aout_filter_..tVout */
> #include <vlc_filter.h>
> +#include <vlc_picture_pool.h>
>
> #include <goom/goom.h>
>
> @@ -81,6 +82,8 @@ typedef struct
> vlc_thread_t thread;
> video_format_t fmt;
>
> + picture_pool_t *pool;
> +
> vout_thread_t *p_vout;
> int i_speed;
>
> @@ -123,10 +126,19 @@ static int Open( vlc_object_t *p_this )
> p_thread->fmt.i_chroma = VLC_CODEC_RGB32;
> p_thread->fmt.i_sar_num = p_thread->fmt.i_sar_den = 1;
>
> + p_thread->pool = picture_pool_NewFromFormat(&p_thread->fmt, 3);
> + if (unlikely(p_thread->pool == NULL))
> + {
> + msg_Err( p_filter, "no suitable vout module" );
> + free( p_thread );
> + return VLC_EGENERIC;
> + }
> +
> p_thread->p_vout = aout_filter_GetVout( p_filter, &p_thread->fmt );
> if( p_thread->p_vout == NULL )
> {
> msg_Err( p_filter, "no suitable vout module" );
> + picture_pool_Release( p_thread->pool );
> free( p_thread );
> return VLC_EGENERIC;
> }
> @@ -148,6 +160,7 @@ static int Open( vlc_object_t *p_this )
> {
> msg_Err( p_filter, "cannot launch goom thread" );
> vout_Close( p_thread->p_vout );
> + picture_pool_Release( p_thread->pool );
> free( p_thread );
> return VLC_EGENERIC;
> }
> @@ -317,7 +330,7 @@ static void *Thread( void *p_thread_data )
> plane = goom_update( p_plugin_info, p_data, 0, 0.0,
> NULL, NULL );
>
> - p_pic = vout_GetPicture( p_thread->p_vout );
> + p_pic = picture_pool_Wait( p_thread->pool );
> if( unlikely(p_pic == NULL) )
> continue;
>
> @@ -356,6 +369,7 @@ static void Close( vlc_object_t *p_this )
> {
> block_Release( p_thread->pp_blocks[p_thread->i_blocks] );
> }
> + picture_pool_Release( p_thread->pool );
>
> free( p_thread );
> }
> --
> 2.26.2
>
> _______________________________________________
> 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