@@ -146,6 +146,9 @@ DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2UVOffset); | |||||
void ff_shuffle_bytes_2103_ssse3(const uint8_t *src, uint8_t *dst, int src_size); | void ff_shuffle_bytes_2103_ssse3(const uint8_t *src, uint8_t *dst, int src_size); | ||||
void ff_shuffle_bytes_0321_ssse3(const uint8_t *src, uint8_t *dst, int src_size); | void ff_shuffle_bytes_0321_ssse3(const uint8_t *src, uint8_t *dst, int src_size); | ||||
void ff_shuffle_bytes_1230_ssse3(const uint8_t *src, uint8_t *dst, int src_size); | |||||
void ff_shuffle_bytes_3012_ssse3(const uint8_t *src, uint8_t *dst, int src_size); | |||||
void ff_shuffle_bytes_3210_ssse3(const uint8_t *src, uint8_t *dst, int src_size); | |||||
av_cold void rgb2rgb_init_x86(void) | av_cold void rgb2rgb_init_x86(void) | ||||
{ | { | ||||
@@ -167,5 +170,8 @@ av_cold void rgb2rgb_init_x86(void) | |||||
if (EXTERNAL_SSSE3(cpu_flags)) { | if (EXTERNAL_SSSE3(cpu_flags)) { | ||||
shuffle_bytes_0321 = ff_shuffle_bytes_0321_ssse3; | shuffle_bytes_0321 = ff_shuffle_bytes_0321_ssse3; | ||||
shuffle_bytes_2103 = ff_shuffle_bytes_2103_ssse3; | shuffle_bytes_2103 = ff_shuffle_bytes_2103_ssse3; | ||||
shuffle_bytes_1230 = ff_shuffle_bytes_1230_ssse3; | |||||
shuffle_bytes_3012 = ff_shuffle_bytes_3012_ssse3; | |||||
shuffle_bytes_3210 = ff_shuffle_bytes_3210_ssse3; | |||||
} | } | ||||
} | } |
@@ -26,6 +26,9 @@ SECTION_RODATA | |||||
pb_shuffle2103: db 2, 1, 0, 3, 6, 5, 4, 7, 10, 9, 8, 11, 14, 13, 12, 15 | pb_shuffle2103: db 2, 1, 0, 3, 6, 5, 4, 7, 10, 9, 8, 11, 14, 13, 12, 15 | ||||
pb_shuffle0321: db 0, 3, 2, 1, 4, 7, 6, 5, 8, 11, 10, 9, 12, 15, 14, 13 | pb_shuffle0321: db 0, 3, 2, 1, 4, 7, 6, 5, 8, 11, 10, 9, 12, 15, 14, 13 | ||||
pb_shuffle1230: db 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12 | |||||
pb_shuffle3012: db 3, 0, 1, 2, 7, 4, 5, 6, 11, 8, 9, 10, 15, 12, 13, 14 | |||||
pb_shuffle3210: db 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 | |||||
SECTION .text | SECTION .text | ||||
@@ -78,3 +81,6 @@ jge .end | |||||
INIT_XMM ssse3 | INIT_XMM ssse3 | ||||
SHUFFLE_BYTES 2, 1, 0, 3 | SHUFFLE_BYTES 2, 1, 0, 3 | ||||
SHUFFLE_BYTES 0, 3, 2, 1 | SHUFFLE_BYTES 0, 3, 2, 1 | ||||
SHUFFLE_BYTES 1, 2, 3, 0 | |||||
SHUFFLE_BYTES 3, 0, 1, 2 | |||||
SHUFFLE_BYTES 3, 2, 1, 0 |