aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2014-03-29 12:35:11 +0200
committerMartin Storsjö <martin@martin.st>2014-03-30 12:45:40 +0300
commite0aa76d38a02090245284fc157afb9074e9ff073 (patch)
treeb9ca59ba5d88d03afbc7aa5dc968d75c8c7056b6 /libavcodec
parenta014b9614e6165fb8df9e756f46a95d516794678 (diff)
downloadffmpeg-e0aa76d38a02090245284fc157afb9074e9ff073.tar.gz
golomb: Fix the implementation of get_se_golomb_long
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ö <martin@martin.st> (cherry picked from commit 508a84e6726ab94a740c160b30fd8162265d1fef) Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/golomb.h4
1 files 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;
}