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>
This commit is contained in:
Martin Storsjö 2014-03-29 12:35:11 +02:00
parent 53c20f17c7
commit 508a84e672

View File

@ -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;
}