[FFmpeg-devel] [PATCH] swscale/output: don't leave the alpha channel undefined in vuyx and xv36le

Michael Niedermayer michael at niedermayer.cc
Wed Aug 14 00:27:11 EEST 2024


On Tue, Aug 13, 2024 at 11:25:17AM -0300, James Almer wrote:
> It's non-determistic, as shown by poisoning avfilter buffers instead of zeroing them.
> 
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libswscale/output.c                      | 6 +++---
>  tests/ref/fate/filter-pixfmts-copy       | 4 ++--
>  tests/ref/fate/filter-pixfmts-crop       | 4 ++--
>  tests/ref/fate/filter-pixfmts-field      | 4 ++--
>  tests/ref/fate/filter-pixfmts-fieldorder | 4 ++--
>  tests/ref/fate/filter-pixfmts-hflip      | 4 ++--
>  tests/ref/fate/filter-pixfmts-il         | 4 ++--
>  tests/ref/fate/filter-pixfmts-null       | 4 ++--
>  tests/ref/fate/filter-pixfmts-pad        | 2 +-
>  tests/ref/fate/filter-pixfmts-scale      | 4 ++--
>  tests/ref/fate/filter-pixfmts-transpose  | 4 ++--
>  tests/ref/fate/filter-pixfmts-vflip      | 4 ++--
>  12 files changed, 24 insertions(+), 24 deletions(-)
> 
> diff --git a/libswscale/output.c b/libswscale/output.c
> index e8dd2145ce..fb21e79f47 100644
> --- a/libswscale/output.c
> +++ b/libswscale/output.c
> @@ -2650,7 +2650,7 @@ yuv2xv36le_X_c(SwsContext *c, const int16_t *lumFilter,
>  {
>      int i;
>      for (i = 0; i < dstW; i++) {
> -        int Y = 1 << 14, U = 1 << 14, V = 1 << 14;
> +        int Y = 1 << 14, U = 1 << 14, V = 1 << 14, A = 255;
>          int j;
>  
>          for (j = 0; j < lumFilterSize; j++)
> @@ -2664,6 +2664,7 @@ yuv2xv36le_X_c(SwsContext *c, const int16_t *lumFilter,
>          AV_WL16(dest + 8 * i + 2, av_clip_uintp2(Y >> 15, 12) << 4);
>          AV_WL16(dest + 8 * i + 0, av_clip_uintp2(U >> 15, 12) << 4);
>          AV_WL16(dest + 8 * i + 4, av_clip_uintp2(V >> 15, 12) << 4);
> +        AV_WL16(dest + 8 * i + 6, A);
>      }
>  }
>  
> @@ -2718,8 +2719,7 @@ yuv2vuyX_X_c(SwsContext *c, const int16_t *lumFilter,
>          dest[4 * i    ] = V;
>          dest[4 * i + 1] = U;
>          dest[4 * i + 2] = Y;
> -        if (destHasAlpha)
> -            dest[4 * i + 3] = A;
> +        dest[4 * i + 3] = A;
>      }
>  }

probably ok

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The day soldiers stop bringing you their problems is the day you have stopped 
leading them. They have either lost confidence that you can help or concluded 
you do not care. Either case is a failure of leadership. - Colin Powell
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240813/e36e3d01/attachment.sig>


More information about the ffmpeg-devel mailing list