return ff_ue_golomb_vlc_code[buf];
} else {
- log = 2 * av_log2(buf) - 31;
+ int log = 2 * av_log2(buf) - 31;
- buf >>= log;
- buf--;
LAST_SKIP_BITS(re, gb, 32 - log);
CLOSE_READER(re, gb);
+ if (CONFIG_FTRAPV && log < 0) {
+ av_log(0, AV_LOG_ERROR, "Invalid UE golomb code\n");
+ return AVERROR_INVALIDDATA;
+ }
+ buf >>= log;
+ buf--;
return buf;
}
return ff_se_golomb_vlc_code[buf];
} else {
- log = av_log2(buf);
- int log = 2 * av_log2(buf) - 31;
++ int log = av_log2(buf);
+ LAST_SKIP_BITS(re, gb, 31 - log);
+ UPDATE_CACHE(re, gb);
+ buf = GET_CACHE(re, gb);
+
buf >>= log;
LAST_SKIP_BITS(re, gb, 32 - log);
*/
static inline void set_ue_golomb(PutBitContext *pb, int i)
{
- int e;
-
- assert(i >= 0);
+ av_assert2(i >= 0);
#if 0
if (i = 0) {