aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornu774 <honeycomb77@gmail.com>2014-05-09 21:47:41 +0900
committerReinhard Tartler <siretart@tauware.de>2014-05-10 12:03:46 -0400
commite780c3daafe0588e035e752c771ebfcd2201746a (patch)
tree8b2062195d96c7de7f7ecda52ae7cdde590bd29c
parent7f954ca502a16feeca44d4e9a7d450b404dabc94 (diff)
downloadffmpeg-e780c3daafe0588e035e752c771ebfcd2201746a.tar.gz
pcm-dvd: Fix 20bit decoding
Increment the pointer as needed. Bug-Id: 592 Signed-off-by: Luca Barbato <lu_zero@gentoo.org> (cherry picked from commit 9880a0d4b131ef36694d62f78060350a81f08b80) Signed-off-by: Reinhard Tartler <siretart@tauware.de>
-rw-r--r--Changelog1
-rw-r--r--libavcodec/pcm-dvd.c8
2 files changed, 5 insertions, 4 deletions
diff --git a/Changelog b/Changelog
index fd49c6fd44..30e63c9cf2 100644
--- a/Changelog
+++ b/Changelog
@@ -2,6 +2,7 @@ Entries are sorted chronologically from oldest to youngest within each release,
releases are sorted from youngest to oldest.
version 10.1:
+- pcm-dvd: Fix 20bit decoding (bug/592)
- avi: Improve non-interleaved detection (bug/666)
- arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
- arm: hpeldsp: prevent overreads in armv6 asm (bug/646)
diff --git a/libavcodec/pcm-dvd.c b/libavcodec/pcm-dvd.c
index 172e93ae82..0872d293b0 100644
--- a/libavcodec/pcm-dvd.c
+++ b/libavcodec/pcm-dvd.c
@@ -177,11 +177,11 @@ static void *pcm_dvd_decode_samples(AVCodecContext *avctx, const uint8_t *src,
dst32[2] = bytestream2_get_be16u(&gb) << 16;
dst32[3] = bytestream2_get_be16u(&gb) << 16;
t = bytestream2_get_byteu(&gb);
- *dst32 += (t & 0xf0) << 8;
- *dst32 += (t & 0x0f) << 12;
+ *dst32++ += (t & 0xf0) << 8;
+ *dst32++ += (t & 0x0f) << 12;
t = bytestream2_get_byteu(&gb);
- *dst32 += (t & 0xf0) << 8;
- *dst32 += (t & 0x0f) << 12;
+ *dst32++ += (t & 0xf0) << 8;
+ *dst32++ += (t & 0x0f) << 12;
}
} while (--blocks);
return dst32;