24 #define UNCHECKED_BITSTREAM_READER 0
25 #define BITSTREAM_READER_LE
63 uint32_t c0, uint32_t
c1, uint32_t
c2, uint32_t c3,
64 uint32_t u0, uint32_t u1, uint32_t u2, uint32_t u3)
67 const uint32_t ubits [4] = {u0, u1, u2, u3};
79 return jxl_u32(gb, 0, 1, 2, 18, 0, 0, 4, 6);
116 uint64_t height64 =
height;
121 return (uint32_t)((height64 * 12) / 10);
123 return (uint32_t)((height64 * 4) / 3);
125 return (uint32_t)((height64 * 3) / 2);
127 return (uint32_t)((height64 * 16) / 9);
129 return (uint32_t)((height64 * 5) / 4);
131 return (uint32_t)(height64 * 2);
201 jxl_u32(gb, 32, 16, 24, 1, 0, 0, 0, 6);
205 jxl_u32(gb, 8, 10, 12, 1, 0, 0, 0, 6);
216 uint32_t
type, name_len = 0;
225 jxl_u32(gb, 0, 3, 4, 1, 0, 0, 0, 3);
227 name_len =
jxl_u32(gb, 0, 0, 16, 48, 0, 4, 5, 10);
242 jxl_u32(gb, 1, 0, 3, 19, 0, 2, 4, 8);
250 int all_default, extra_fields = 0;
251 int xyb_encoded = 1, have_icc_profile = 0;
252 int animation_offset = 0;
253 uint32_t num_extra_channels;
292 jxl_u32(gb, 100, 1000, 1, 1, 0, 0, 10, 30);
293 jxl_u32(gb, 1, 1001, 1, 1, 0, 0, 8, 10);
294 jxl_u32(gb, 0, 0, 0, 0, 0, 3, 16, 32);
308 num_extra_channels =
jxl_u32(gb, 0, 1, 2, 1, 0, 0, 4, 12);
309 if (num_extra_channels > 4 && validate_level)
311 for (uint32_t
i = 0;
i < num_extra_channels;
i++) {
323 uint32_t color_space;
326 if (color_space > 63)
329 if (!have_icc_profile) {
331 uint32_t white_point =
jxl_enum(gb);
332 if (white_point > 63)
336 jxl_u32(gb, 0, 524288, 1048576, 2097152, 19, 19, 20, 21);
337 jxl_u32(gb, 0, 524288, 1048576, 2097152, 19, 19, 20, 21);
346 for (
int i = 0;
i < 6;
i++) {
347 jxl_u32(gb, 0, 524288, 1048576, 2097152, 19, 19, 20, 21);
379 for (
int i = 0;
i < 64;
i++) {
380 if (extensions & (UINT64_C(1) <<
i))
402 if (!have_icc_profile) {
404 if (bits_remaining &&
get_bits(gb, bits_remaining))
411 return animation_offset;