aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/rangecoder.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2024-10-16 14:53:57 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2024-12-02 03:14:46 +0100
commit832649986c2bd20943e9983d452ff28c50e6a180 (patch)
tree358fb7e9e45b987de721075634e1989bc5e4f8d7 /libavcodec/rangecoder.h
parentc314a68d0462bff9a7a1fae37b71f98dcb4e7c04 (diff)
downloadffmpeg-832649986c2bd20943e9983d452ff28c50e6a180.tar.gz
avcodec/rangecoder: Move refill check out of refill() function
If the function is not inlined, this is more efficient. Also it allows calling refill() without the check Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/rangecoder.h')
-rw-r--r--libavcodec/rangecoder.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/rangecoder.h b/libavcodec/rangecoder.h
index 2248161bca..da13c453ed 100644
--- a/libavcodec/rangecoder.h
+++ b/libavcodec/rangecoder.h
@@ -112,7 +112,6 @@ static inline void put_rac(RangeCoder *c, uint8_t *const state, int bit)
static inline void refill(RangeCoder *c)
{
- if (c->range < 0x100) {
c->range <<= 8;
c->low <<= 8;
if (c->bytestream < c->bytestream_end) {
@@ -120,7 +119,6 @@ static inline void refill(RangeCoder *c)
c->bytestream++;
} else
c->overread ++;
- }
}
static inline int get_rac(RangeCoder *c, uint8_t *const state)
@@ -130,13 +128,15 @@ static inline int get_rac(RangeCoder *c, uint8_t *const state)
c->range -= range1;
if (c->low < c->range) {
*state = c->zero_state[*state];
- refill(c);
+ if (c->range < 0x100)
+ refill(c);
return 0;
} else {
c->low -= c->range;
*state = c->one_state[*state];
c->range = range1;
- refill(c);
+ if (c->range < 0x100)
+ refill(c);
return 1;
}
}