[vlc-devel] [PATCH v2 3/3] video_output: remove the private pool

Steve Lhomme robux4 at ycbcr.xyz
Thu Aug 20 10:15:22 CEST 2020


On 2020-08-20 10:12, Rémi Denis-Courmont wrote:
> Hi,
> 
> Ok. We should probably remove picture_pool_Reserve() later.

Do you mean removing the display pool but keeping the private pool for now ?

> Le 17 août 2020 16:33:01 GMT+02:00, Steve Lhomme <robux4 at ycbcr.xyz> a 
> écrit :
> 
>     ------------------------------------------------------------------------
>       src/video_output/video_output.c |  3 +--
>       src/video_output/vout_private.h |  1 -
>       src/video_output/vout_wrapper.c | 30 +++++-------------------------
>       3 files changed, 6 insertions(+), 28 deletions(-)
> 
>     diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
>     index 09aaa10e98a..def6875cea0 100644
>     --- a/src/video_output/video_output.c
>     +++ b/src/video_output/video_output.c
>     @@ -1703,7 +1703,6 @@ static int vout_Start(vout_thread_sys_t *vout, vlc_video_context *vctx, const vo
>       
>           sys->decoder_fifo = picture_fifo_New();
>           sys->private.display_pool = NULL;
>     -    sys->private.private_pool = NULL;
>       
>           sys->filter.configuration = NULL;
>           video_format_Copy(&sys->filter.src_fmt, &sys->original);
>     @@ -1784,7 +1783,7 @@ static int vout_Start(vout_thread_sys_t *vout, vlc_video_context *vctx, const vo
>               vout_SetDisplayAspect(sys->display, num, den);
>           vlc_mutex_unlock(&sys->display_lock);
>       
>     -    assert(sys->private.display_pool != NULL && sys->private.private_pool != NULL);
>     +    assert(sys->private.display_pool != NULL);
>       
>           sys->displayed.current       = NULL;
>           sys->displayed.next          = NULL;
>     diff --git a/src/video_output/vout_private.h b/src/video_output/vout_private.h
>     index 261dcc30fe4..cb4c0bde6a8 100644
>     --- a/src/video_output/vout_private.h
>     +++ b/src/video_output/vout_private.h
>     @@ -43,7 +43,6 @@ struct vout_thread_private_t
>               vlc_tick_t  date;
>           } interlacing;
>       
>     -    picture_pool_t  *private_pool;
>           picture_pool_t  *display_pool;
>       };
>       
>     diff --git a/src/video_output/vout_wrapper.c b/src/video_output/vout_wrapper.c
>     index 6445f99b7a2..6e751f4c238 100644
>     --- a/src/video_output/vout_wrapper.c
>     +++ b/src/video_output/vout_wrapper.c
>     @@ -79,39 +79,20 @@ vout_display_t *vout_OpenWrapper(vout_thread_t *vout, vout_thread_private_t *sys
>           if (vd == NULL)
>               return NULL;
>       
>     -    sys->display_pool = NULL;
>     -
>     -    const unsigned private_picture  = 4; /* XXX 3 for filter, 1 for SPU */
>           const unsigned kept_picture     = 1; /* last displayed picture */
>           const unsigned reserved_picture = DISPLAY_PICTURE_COUNT +
>     -                                      private_picture +
>                                             kept_picture;
>       
>     -    picture_pool_t *display_pool = vout_GetPool(vd, reserved_picture);
>     -    if (display_pool == NULL)
>     +    sys->display_pool = vout_GetPool(vd, reserved_picture);
>     +    if (sys->display_pool == NULL)
>               goto error;
>       
>       #ifndef NDEBUG
>     -    if ( picture_pool_GetSize(display_pool) < reserved_picture )
>     +    if ( picture_pool_GetSize(sys->display_pool) < reserved_picture )
>               msg_Warn(vout, "Not enough display buffers in the pool, requested %u got %u",
>     -                 reserved_picture, picture_pool_GetSize(display_pool));
>     +                 reserved_picture, picture_pool_GetSize(sys->display_pool));
>       #endif
>       
>     -    if (!vout_IsDisplayFiltered(vd) &&
>     -        picture_pool_GetSize(display_pool) >= reserved_picture) {
>     -        sys->private_pool = picture_pool_Reserve(display_pool, private_picture);
>     -    } else {
>     -        sys->private_pool =
>     -            picture_pool_NewFromFormat(&vd->source,
>     -                                       __MAX(VOUT_MAX_PICTURES,
>     -                                             reserved_picture - DISPLAY_PICTURE_COUNT));
>     -    }
>     -    if (sys->private_pool == NULL) {
>     -        picture_pool_Release(display_pool);
>     -        goto error;
>     -    }
>     -    sys->display_pool = display_pool;
>     -
>       #ifdef _WIN32
>           var_Create(vout, "video-wallpaper", VLC_VAR_BOOL|VLC_VAR_DOINHERIT);
>           var_AddCallback(vout, "video-wallpaper", Forward, vd);
>     @@ -130,9 +111,8 @@ error:
>        *****************************************************************************/
>       void vout_CloseWrapper(vout_thread_t *vout, vout_thread_private_t *sys, vout_display_t *vd)
>       {
>     -    assert(sys->display_pool && sys->private_pool);
>     +    assert(sys->display_pool);
>       
>     -    picture_pool_Release(sys->private_pool);
>           sys->display_pool = NULL;
>       
>       #ifdef _WIN32
> 
> 
> -- 
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser 
> ma brièveté.
> 
> _______________________________________________
> 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