diff options
author | Martin Storsjö <martin@martin.st> | 2014-03-29 12:35:11 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2014-03-30 12:45:40 +0300 |
commit | e0aa76d38a02090245284fc157afb9074e9ff073 (patch) | |
tree | b9ca59ba5d88d03afbc7aa5dc968d75c8c7056b6 /libavcodec | |
parent | a014b9614e6165fb8df9e756f46a95d516794678 (diff) | |
download | ffmpeg-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.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; } |