summaryrefslogtreecommitdiff
path: root/libavcodec/sgienc.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <ceffmpeg@gmail.com>2020-07-19 21:57:41 +0200
committerCarl Eugen Hoyos <ceffmpeg@gmail.com>2020-07-19 21:57:41 +0200
commitc4b6ee55c0a5dbf1a56c5be95eb19f86e762ddcb (patch)
tree91f07832de4b654d4ed165f1ac15b820ce7092b2 /libavcodec/sgienc.c
parent12614a589f5135a2e66b9caf93c54b8b46ee9d0a (diff)
lavc/sgienc: Fix default 16bit encoding.
Broken since 7c56b879
Diffstat (limited to 'libavcodec/sgienc.c')
-rw-r--r--libavcodec/sgienc.c10
1 files changed, 9 insertions, 1 deletions
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);