On 5/18/2025 6:14 PM, James Almer wrote: > On 5/18/2025 5:52 PM, Ramiro Polla wrote: >> Currently, packed16togbra16() always sets the alpha value to 0xFFFF, >> without taking the bit depth into consideration. >> >> This commit restricts the alpha value to the bit depth. > > packed16togbra16() seems to only be called for BGR48 and BGRA64, both of > which are 16bits, so this change is superfluous. Ah, nevermind, i was looking at the src formats, not dst. Are there no tests that cover these paths? I added a bunch a couple months ago, so maybe it could be extended. > >> --- >>   libswscale/swscale_unscaled.c | 8 ++++---- >>   1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/libswscale/swscale_unscaled.c b/libswscale/ >> swscale_unscaled.c >> index 8d71a88c23..488db43e0b 100644 >> --- a/libswscale/swscale_unscaled.c >> +++ b/libswscale/swscale_unscaled.c >> @@ -699,7 +699,7 @@ static void packed16togbra16(const uint8_t *src, >> int srcStride, >>                       dst[0][x] = av_bswap16(av_bswap16(*src_line++) >> >> shift); >>                       dst[1][x] = av_bswap16(av_bswap16(*src_line++) >> >> shift); >>                       dst[2][x] = av_bswap16(av_bswap16(*src_line++) >> >> shift); >> -                    dst[3][x] = 0xFFFF; >> +                    dst[3][x] = av_bswap16(0xFFFF >> shift); >>                   } >>               } else if (src_alpha) { >>                   for (x = 0; x < width; x++) { >> @@ -729,7 +729,7 @@ static void packed16togbra16(const uint8_t *src, >> int srcStride, >>                       dst[0][x] = av_bswap16(*src_line++ >> shift); >>                       dst[1][x] = av_bswap16(*src_line++ >> shift); >>                       dst[2][x] = av_bswap16(*src_line++ >> shift); >> -                    dst[3][x] = 0xFFFF; >> +                    dst[3][x] = av_bswap16(0xFFFF >> shift); >>                   } >>               } else if (src_alpha) { >>                   for (x = 0; x < width; x++) { >> @@ -759,7 +759,7 @@ static void packed16togbra16(const uint8_t *src, >> int srcStride, >>                       dst[0][x] = av_bswap16(*src_line++) >> shift; >>                       dst[1][x] = av_bswap16(*src_line++) >> shift; >>                       dst[2][x] = av_bswap16(*src_line++) >> shift; >> -                    dst[3][x] = 0xFFFF; >> +                    dst[3][x] = 0xFFFF >> shift; >>                   } >>               } else if (src_alpha) { >>                   for (x = 0; x < width; x++) { >> @@ -789,7 +789,7 @@ static void packed16togbra16(const uint8_t *src, >> int srcStride, >>                       dst[0][x] = *src_line++ >> shift; >>                       dst[1][x] = *src_line++ >> shift; >>                       dst[2][x] = *src_line++ >> shift; >> -                    dst[3][x] = 0xFFFF; >> +                    dst[3][x] = 0xFFFF >> shift; >>                   } >>               } else if (src_alpha) { >>                   for (x = 0; x < width; x++) { >