From e780c3daafe0588e035e752c771ebfcd2201746a Mon Sep 17 00:00:00 2001 From: nu774 Date: Fri, 9 May 2014 21:47:41 +0900 Subject: [PATCH] pcm-dvd: Fix 20bit decoding Increment the pointer as needed. Bug-Id: 592 Signed-off-by: Luca Barbato (cherry picked from commit 9880a0d4b131ef36694d62f78060350a81f08b80) Signed-off-by: Reinhard Tartler --- Changelog | 1 + libavcodec/pcm-dvd.c | 8 ++++---- 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;