summaryrefslogtreecommitdiff
path: root/libavcodec/golomb.h
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 00:28:27 +0200
commit508a84e6726ab94a740c160b30fd8162265d1fef (patch)
treeb6106fc9fbb02d7a5f77d4dd7460c3bd4c92fddd /libavcodec/golomb.h
parent53c20f17c78d1d8a0fc2505868f201e69ff59cc5 (diff)
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>
Diffstat (limited to 'libavcodec/golomb.h')
-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;
}