@ -33,6 +33,7 @@
# include "swscale.h"
# include "swscale_internal.h"
# include "libavutil/x86_cpu.h"
# include "libavutil/bswap.h"
extern const uint8_t dither_8x8_32 [ 8 ] [ 8 ] ;
extern const uint8_t dither_8x8_73 [ 8 ] [ 8 ] ;
@ -596,12 +597,18 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], int
const int isRgb = c - > dstFormat = = PIX_FMT_RGB32
| | c - > dstFormat = = PIX_FMT_RGB32_1
| | c - > dstFormat = = PIX_FMT_BGR24
| | c - > dstFormat = = PIX_FMT_RGB565
| | c - > dstFormat = = PIX_FMT_RGB555
| | c - > dstFormat = = PIX_FMT_RGB565BE
| | c - > dstFormat = = PIX_FMT_RGB565LE
| | c - > dstFormat = = PIX_FMT_RGB555BE
| | c - > dstFormat = = PIX_FMT_RGB555LE
| | c - > dstFormat = = PIX_FMT_RGB8
| | c - > dstFormat = = PIX_FMT_RGB4
| | c - > dstFormat = = PIX_FMT_RGB4_BYTE
| | c - > dstFormat = = PIX_FMT_MONOBLACK ;
const int isNotNe = c - > dstFormat = = PIX_FMT_NE ( RGB565LE , RGB565BE )
| | c - > dstFormat = = PIX_FMT_NE ( RGB555LE , RGB555BE )
| | c - > dstFormat = = PIX_FMT_NE ( BGR565LE , BGR565BE )
| | c - > dstFormat = = PIX_FMT_NE ( BGR555LE , BGR555BE ) ;
const int bpp = c - > dstFormatBpp ;
uint8_t * y_table ;
uint16_t * y_table16 ;
@ -709,6 +716,9 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], int
y_table16 [ i + 2048 ] = ( yval > > 3 ) < < bbase ;
yb + = cy ;
}
if ( isNotNe )
for ( i = 0 ; i < 1024 * 3 ; i + + )
y_table16 [ i ] = bswap_16 ( y_table16 [ i ] ) ;
fill_table ( c - > table_rV , 2 , crv , y_table16 + yoffs ) ;
fill_table ( c - > table_gU , 2 , cgu , y_table16 + yoffs + 1024 ) ;
fill_table ( c - > table_bU , 2 , cbu , y_table16 + yoffs + 2048 ) ;