From: Loren Merritt Date: Fri, 18 Jul 2008 02:25:03 +0000 (-0600) Subject: fix bs_write_ue_big for values >= 0x10000. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95e859854267062a9f48143faf334cdff7f564e4;p=libx264 fix bs_write_ue_big for values >= 0x10000. (no immediate effect, since nothing writes such values yet) --- diff --git a/common/bs.h b/common/bs.h index ce86bd02..a30cf343 100644 --- a/common/bs.h +++ b/common/bs.h @@ -169,16 +169,17 @@ static inline void bs_write_ue_big( bs_t *s, unsigned int val ) int tmp = ++val; if( tmp >= 0x10000 ) { - bs_write32( s, 0 ); + size = 32; tmp >>= 16; } if( tmp >= 0x100 ) { - size = 16; + size += 16; tmp >>= 8; } size += x264_ue_size_tab[tmp]; - bs_write( s, size, val ); + bs_write( s, size>>1, 0 ); + bs_write( s, (size>>1)+1, val ); } /* Only works on values under 255. */