diff options
author | Martin Storsjö <martin@martin.st> | 2014-03-29 12:35:11 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2014-03-30 00:28:27 +0200 |
commit | 508a84e6726ab94a740c160b30fd8162265d1fef (patch) | |
tree | b6106fc9fbb02d7a5f77d4dd7460c3bd4c92fddd /libavcodec | |
parent | 53c20f17c78d1d8a0fc2505868f201e69ff59cc5 (diff) | |
download | ffmpeg-508a84e6726ab94a740c160b30fd8162265d1fef.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>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/golomb.h | 4 |
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; } |