Checking for AV_PIX_FMT_X2RGB10 means the condition will succeed only for the version matching the host's endinaness, when only LE is supported, and thus the wrong path will be taken on BE systems.
Signed-off-by: James Almer <jamr...@gmail.com> --- libswscale/output.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c index b37568a10a..03aa76bd57 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -1669,13 +1669,13 @@ yuv2rgb_write(uint8_t *_dest, int i, int Y1, int Y2, dest[i * 2 + 0] = r[Y1 + dr1] + g[Y1 + dg1] + b[Y1 + db1]; dest[i * 2 + 1] = r[Y2 + dr2] + g[Y2 + dg2] + b[Y2 + db2]; - } else if (target == AV_PIX_FMT_X2RGB10 || target == AV_PIX_FMT_X2BGR10) { + } else if (target == AV_PIX_FMT_X2RGB10LE || target == AV_PIX_FMT_X2BGR10LE) { uint32_t *dest = (uint32_t *) _dest; const uint32_t *r = (const uint32_t *) _r; const uint32_t *g = (const uint32_t *) _g; const uint32_t *b = (const uint32_t *) _b; - dest[i * 2 + 0] = r[Y1] + g[Y1] + b[Y1]; - dest[i * 2 + 1] = r[Y2] + g[Y2] + b[Y2]; + AV_WL32(&dest[i * 2 + 0], r[Y1] + g[Y1] + b[Y1]); + AV_WL32(&dest[i * 2 + 1], r[Y2] + g[Y2] + b[Y2]); } else /* 8/4 bits */ { uint8_t *dest = (uint8_t *) _dest; const uint8_t *r = (const uint8_t *) _r; @@ -1913,8 +1913,8 @@ YUV2RGBWRAPPER(yuv2rgb,, 12, AV_PIX_FMT_RGB444, 0) YUV2RGBWRAPPER(yuv2rgb,, 8, AV_PIX_FMT_RGB8, 0) YUV2RGBWRAPPER(yuv2rgb,, 4, AV_PIX_FMT_RGB4, 0) YUV2RGBWRAPPER(yuv2rgb,, 4b, AV_PIX_FMT_RGB4_BYTE, 0) -YUV2RGBWRAPPER(yuv2, rgb, x2rgb10, AV_PIX_FMT_X2RGB10, 0) -YUV2RGBWRAPPER(yuv2, rgb, x2bgr10, AV_PIX_FMT_X2BGR10, 0) +YUV2RGBWRAPPER(yuv2, rgb, x2rgb10, AV_PIX_FMT_X2RGB10LE, 0) +YUV2RGBWRAPPER(yuv2, rgb, x2bgr10, AV_PIX_FMT_X2BGR10LE, 0) static av_always_inline void yuv2rgb_write_full(SwsInternal *c, uint8_t *dest, int i, int Y, int A, int U, int V, @@ -3604,13 +3604,11 @@ av_cold void ff_sws_init_output_funcs(SwsInternal *c, *yuv2packedX = yuv2rgb4b_X_c; break; case AV_PIX_FMT_X2RGB10LE: - case AV_PIX_FMT_X2RGB10BE: *yuv2packed1 = yuv2x2rgb10_1_c; *yuv2packed2 = yuv2x2rgb10_2_c; *yuv2packedX = yuv2x2rgb10_X_c; break; case AV_PIX_FMT_X2BGR10LE: - case AV_PIX_FMT_X2BGR10BE: *yuv2packed1 = yuv2x2bgr10_1_c; *yuv2packed2 = yuv2x2bgr10_2_c; *yuv2packedX = yuv2x2bgr10_X_c; -- 2.47.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".