From c4b6ee55c0a5dbf1a56c5be95eb19f86e762ddcb Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Sun, 19 Jul 2020 21:57:41 +0200 Subject: [PATCH] lavc/sgienc: Fix default 16bit encoding. Broken since 7c56b879 --- libavcodec/sgienc.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libavcodec/sgienc.c b/libavcodec/sgienc.c index 13756f1608..40771d4666 100644 --- a/libavcodec/sgienc.c +++ b/libavcodec/sgienc.c @@ -219,7 +219,15 @@ FF_ENABLE_DEPRECATION_WARNINGS bytestream2_put_be32(&taboff_pcb, bytestream2_tell_p(&pbc)); for (x = 0; x < width * bytes_per_channel; x += bytes_per_channel) - encode_buf[x] = in_buf[depth * x]; + if (bytes_per_channel == 1) { + encode_buf[x] = in_buf[depth * x]; + } else if (HAVE_BIGENDIAN ^ put_be) { + encode_buf[x + 1] = in_buf[depth * x]; + encode_buf[x] = in_buf[depth * x + 1]; + } else { + encode_buf[x] = in_buf[depth * x]; + encode_buf[x + 1] = in_buf[depth * x + 1]; + } length = sgi_rle_encode(&pbc, encode_buf, width, bytes_per_channel);