From 508a84e6726ab94a740c160b30fd8162265d1fef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Sat, 29 Mar 2014 12:35:11 +0200 Subject: [PATCH] golomb: Fix the implementation of get_se_golomb_long MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was only used in hevc muxing code so far. This makes the return values match what get_se_golomb returns for the same bitstream reader instances. The logic for producing a signed golomb code out of an unsigned one was based on the corresponding code in get_se_golomb, which operated directly on the bitstream reader buffer - not on the equivalent return value from get_ue_golomb. CC: libav-stable@libav.org Signed-off-by: Martin Storsjö --- libavcodec/golomb.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/golomb.h b/libavcodec/golomb.h index ce3500f8a9..1754706077 100644 --- a/libavcodec/golomb.h +++ b/libavcodec/golomb.h @@ -211,9 +211,9 @@ static inline int get_se_golomb_long(GetBitContext *gb) unsigned int buf = get_ue_golomb_long(gb); if (buf & 1) - buf = -(buf >> 1); + buf = (buf + 1) >> 1; else - buf = (buf >> 1); + buf = -(buf >> 1); return buf; }