MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / stbi__extend_receive

Function stbi__extend_receive

Source/Utils/stb_image.h:2152–2165  ·  view source on GitHub ↗

combined JPEG 'receive' and JPEG 'extend', since baseline always extends everything it receives.

Source from the content-addressed store, hash-verified

2150// combined JPEG 'receive' and JPEG 'extend', since baseline
2151// always extends everything it receives.
2152stbi_inline static int stbi__extend_receive(stbi__jpeg *j, int n)
2153{
2154 unsigned int k;
2155 int sgn;
2156 if (j->code_bits < n) stbi__grow_buffer_unsafe(j);
2157 if (j->code_bits < n) return 0; // ran out of bits from stream, return 0s intead of continuing
2158
2159 sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative)
2160 k = stbi_lrot(j->code_buffer, n);
2161 j->code_buffer = k & ~stbi__bmask[n];
2162 k &= stbi__bmask[n];
2163 j->code_bits -= n;
2164 return k + (stbi__jbias[n] & (sgn - 1));
2165}
2166
2167// get some unsigned bits
2168stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)

Callers 3

stbi__jpeg_decode_blockFunction · 0.85

Calls 1

stbi__grow_buffer_unsafeFunction · 0.85

Tested by

no test coverage detected