[vlc-devel] [PATCH] vout: android: don't allocate a picture to get the pitch of the first plane

Thomas Guillem thomas at gllm.fr
Wed Jul 31 13:26:45 CEST 2019


LGTM

On Wed, Jul 31, 2019, at 12:21, Steve Lhomme wrote:
> We can get it from the chroma description.
> ---
>  modules/video_output/android/display.c | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/modules/video_output/android/display.c 
> b/modules/video_output/android/display.c
> index 798aaeef9a..edf335a8c7 100644
> --- a/modules/video_output/android/display.c
> +++ b/modules/video_output/android/display.c
> @@ -417,14 +417,15 @@ static int AndroidWindow_Setup(vout_display_sys_t 
> *sys,
>          p_window->i_pic_count = i_pic_count;
>  
>      if (!p_window->b_opaque) {
> -        int align_pixels;
> -        picture_t *p_pic = PictureAlloc(sys, &p_window->fmt, false);
> -
> -        // For RGB (32 or 16) we need to align on 8 or 4 pixels, 16 
> pixels for YUV
> -        align_pixels = (16 / p_pic->p[0].i_pixel_pitch) - 1;
> -        p_window->fmt.i_height = p_pic->format.i_height;
> -        p_window->fmt.i_width = (p_pic->format.i_width + align_pixels) 
> & ~align_pixels;
> -        picture_Release(p_pic);
> +        const vlc_chroma_description_t *p_dsc =
> +            vlc_fourcc_GetChromaDescription( p_window->fmt.i_chroma );
> +        if (p_dsc)
> +        {
> +            assert(p_dsc->pixel_size != 0);
> +            // For RGB (32 or 16) we need to align on 8 or 4 pixels, 
> 16 pixels for YUV
> +            unsigned align_pixels = (16 / p_dsc->pixel_size) - 1;
> +            p_window->fmt.i_width = (p_window->fmt.i_width + 
> align_pixels) & ~align_pixels;
> +        }
>  
>          if (AndroidWindow_SetupANW(sys, p_window) != 0)
>              return -1;
> -- 
> 2.17.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