[FFmpeg-cvslog] golomb: Fix the implementation of get_se_golomb_long
Martin Storsjö
git at videolan.org
Thu Apr 10 04:53:34 CEST 2014
ffmpeg | branch: release/2.2 | Martin Storsjö <martin at martin.st> | Sat Mar 29 12:35:11 2014 +0200| [e0aa76d38a02090245284fc157afb9074e9ff073] | committer: Martin Storsjö
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 at libav.org
Signed-off-by: Martin Storsjö <martin at martin.st>
(cherry picked from commit 508a84e6726ab94a740c160b30fd8162265d1fef)
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e0aa76d38a02090245284fc157afb9074e9ff073
---
libavcodec/golomb.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/golomb.h b/libavcodec/golomb.h
index ce3500f..1754706 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;
}
More information about the ffmpeg-cvslog
mailing list