mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
swscale/rgb2rgb_template: use shuffle macro on big-endian arches
Fixes fate-qtrle-32bit on big-endian. The macro does a simple byte swap on uint8 array without any casts, so it's valid on big-endian arches. The mentioned test was failing because the byteswap function shuffle_bytes_3210_c() is used in the pixel format conversion (argb->bgra). Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
This commit is contained in:
parent
0320dab265
commit
1200264fc4
@ -342,7 +342,6 @@ static inline void shuffle_bytes_0321_c(const uint8_t *src, uint8_t *dst,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !HAVE_BIGENDIAN
|
|
||||||
#define DEFINE_SHUFFLE_BYTES(name, a, b, c, d) \
|
#define DEFINE_SHUFFLE_BYTES(name, a, b, c, d) \
|
||||||
static void shuffle_bytes_##name (const uint8_t *src, \
|
static void shuffle_bytes_##name (const uint8_t *src, \
|
||||||
uint8_t *dst, int src_size) \
|
uint8_t *dst, int src_size) \
|
||||||
@ -360,7 +359,6 @@ static void shuffle_bytes_##name (const uint8_t *src, \
|
|||||||
DEFINE_SHUFFLE_BYTES(1230_c, 1, 2, 3, 0)
|
DEFINE_SHUFFLE_BYTES(1230_c, 1, 2, 3, 0)
|
||||||
DEFINE_SHUFFLE_BYTES(3012_c, 3, 0, 1, 2)
|
DEFINE_SHUFFLE_BYTES(3012_c, 3, 0, 1, 2)
|
||||||
DEFINE_SHUFFLE_BYTES(3210_c, 3, 2, 1, 0)
|
DEFINE_SHUFFLE_BYTES(3210_c, 3, 2, 1, 0)
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline void rgb24tobgr24_c(const uint8_t *src, uint8_t *dst, int src_size)
|
static inline void rgb24tobgr24_c(const uint8_t *src, uint8_t *dst, int src_size)
|
||||||
{
|
{
|
||||||
@ -969,10 +967,10 @@ static av_cold void rgb2rgb_init_c(void)
|
|||||||
#else
|
#else
|
||||||
shuffle_bytes_0321 = shuffle_bytes_0321_c;
|
shuffle_bytes_0321 = shuffle_bytes_0321_c;
|
||||||
shuffle_bytes_2103 = shuffle_bytes_2103_c;
|
shuffle_bytes_2103 = shuffle_bytes_2103_c;
|
||||||
|
#endif
|
||||||
shuffle_bytes_1230 = shuffle_bytes_1230_c;
|
shuffle_bytes_1230 = shuffle_bytes_1230_c;
|
||||||
shuffle_bytes_3012 = shuffle_bytes_3012_c;
|
shuffle_bytes_3012 = shuffle_bytes_3012_c;
|
||||||
shuffle_bytes_3210 = shuffle_bytes_3210_c;
|
shuffle_bytes_3210 = shuffle_bytes_3210_c;
|
||||||
#endif
|
|
||||||
rgb32tobgr16 = rgb32tobgr16_c;
|
rgb32tobgr16 = rgb32tobgr16_c;
|
||||||
rgb32tobgr15 = rgb32tobgr15_c;
|
rgb32tobgr15 = rgb32tobgr15_c;
|
||||||
yv12toyuy2 = yv12toyuy2_c;
|
yv12toyuy2 = yv12toyuy2_c;
|
||||||
|
Loading…
Reference in New Issue
Block a user